[적용 예] Object Pooling

개요

Object Pooling Service 를 적용해서 데이타베이스 접속정보를 얻어온다.

Data Source Service 내부에 적용되어 있다.

설명

Source

GenericObjectPool connectionPool = new GenericObjectPool(null);
connectionPool.setMaxActive(maxActive); 
connectionPool.setMaxIdle(maxIdle); 
connectionPool.setMaxWait(maxWait); 
connectionPool.setWhenExhaustedAction(whenExhaustedAction);
connectionPool.setMinIdle(minIdle);
connectionPool.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
connectionPool.setTimeBetweenEvictionRunsMillis(timeBetweenEvctionRunsMillis);
connectionPool.setTestOnBorrow(testOnBorrow);
connectionPool.setTestOnReturn(testOnReturn);
connectionPool.setTestWhileIdle(testWhileIdle);
connectionPool.setNumTestsPerEvictionRun(numTestsPerEvictionRun);
 
ConnectionFactory connectionFactory = 
	 new DriverManagerConnectionFactory(url,user,password);
 
PoolableConnectionFactory poolableConnectionFactory =
   new PoolableConnectionFactory(connectionFactory,
					connectionPool,
					null,
					null,
					false,						
                    true);
 
PoolingDriver poolingDriver = new PoolingDriver();
 
poolingDriver.registerPool("database", connectionPool);
  1. setMaxWait : 최대 대기시간
  2. setWhenExhaustedAction : pool에서 할당할 객체가 없을 경우 어떻게 처리할지를 설정
  3. setMinIdle : pool에서 사용되지 않고 저장될 수 최소수
  4. setMinEvictableIdleTimeMillis : 사용되지 않는 커넥션을 추출할 때 이 속성에서 지정한 시간 이상 비활성화 상태인 객체만 추출
  5. setTimeBetweenEvictionRunsMillis : 사용되지 않은 커넥션을 추출하는 쓰레드의 실행 주기를 지정
  6. setTestOnBorrow : true일 경우 커넥션 풀에서 커넥션을 가져올 때 커넥션이 유효한지의 여부를 검사
  7. setTestOnReturn : true일 경우 커넥션 풀에 커넥션을 반환할 때 커넥션이 유효한지의 여부를 검사
  8. setTestWhileIdle : true일 경우 비활성화 커넥션을 추출할 때 커넥션이 유효한지의 여부를 검사해서 유효하지 않은 커넥션은 풀에서 제거
  9. setNumTestsPerEvictionRun : 사용되지 않는 커넥션을 몇 개 검사할지 지정
  10. 실제 DB와의 커넥션을 연결해주는 팩토리 생성
  11. Connection Pool이 PoolableConnection 객체를 생성할 때 사용할 PoolableConnectionFactory 생성
  12. Pooling을 위한 PoolingDriver 생성
  13. PoolingDriver에 connection pool을 등록
 
egovframework/rte/sample/cvpl/object_pooling/object_pooling.txt · 마지막 수정: 2023/12/21 05:21 (외부 편집기)
 
이 위키의 내용은 다음의 라이센스에 따릅니다 :CC Attribution-Noncommercial-Share Alike 3.0 Unported
전자정부 표준프레임워크 라이센스(바로가기)

전자정부 표준프레임워크 활용의 안정성 보장을 위해 위험성을 지속적으로 모니터링하고 있으나, 오픈소스의 특성상 문제가 발생할 수 있습니다.
전자정부 표준프레임워크는 Apache 2.0 라이선스를 따르고 있는 오픈소스 프로그램입니다. Apache 2.0 라이선스에 따라 표준프레임워크를 활용하여 발생된 업무중단, 컴퓨터 고장 또는 오동작으로 인한 손해 등에 대해서 책임이 없습니다.
Recent changes RSS feed CC Attribution-Noncommercial-Share Alike 3.0 Unported Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki