2016-08-10 2 views
0

연결 풀링에 C3P0을 사용하도록 구성된 ActiveWeb/ActiveJDBC 연결을 얻으려고합니다. 내가 Javalite에서 제공하는 설명서를 알고C3P0 데이터베이스 연결을 사용하는 Activeweb/ActiveJDBC

각 트랜잭션이 하나의 개방/폐쇄 연결을 할 것이라고뿐만 아니라 우리를 통해 데이터 소스를 열 수 있습니다 언급 않습니다

new DB("default").open(cpds); 

이 그것을 할 수 있다고 생각하는 날 리드 AppControllerConfig에 포함시켜 연결 개방/폐쇄기구를 가로채는 : DBConnectionFilterTest 열리고 연결을 종료 한 후 동작/전과 겹쳐 DBConnectionFilter 연장 정의 클래스가

addGlobalFilters(new DBConnectionFilterTest("default", true) ); 

.... 데이터 소스는 ComboPooledDataSource를 사용하여 생성자 내에서 구성됩니다.

누구든지이 구성에 대한 통찰력이 있거나 C3P0을 activeweb/activeJDBC와 통합하는 데 성공했는지 궁금합니다.

내가 지금까지 얻은 것 중 가장 먼 것은 C3P0을 발사하는 것입니다. 내 세션 모니터에서 5 개의 연결을 볼 수 있지만 트랜잭션을 수행 할 때 activeweb은 여전히 ​​새 연결을 시작합니다. C3P0 풀이 이동하지 않았습니다.

답변

1

연결을 열고 닫으려면 필터를 직접 작성하고 있으므로 요청이 완료되면 연결을 닫는 것을 잊지 마십시오. 이렇게하면 연결이 다시 풀로 반환됩니다. DBConnectionFilter 코드를 확인하십시오. 구체적으로는 onException()after()입니다. 어떤 이유로 연결을 닫지 않을 경우 ActiveWeb은 연결을 닫으려고 시도하지만 로그에 불만을 표시합니다.

개인적으로 저는 Tomcat의 내장 풀을 사용합니다. 로드가 많은 작업 환경에서는 문제없이 실행됩니다. DBConnectionFilter의 표준 구현이이 작업을 수행합니다.

+0

정보 주셔서 감사합니다! 나는 Jetty를 사용하고 있으며, 지금까지는 C3P0의 추가 구현 없이는 꽤 잘하고 있습니다. 나는 그것에 많은 부하 테스트를 던졌고, Jetty/Activeweb은 그것을 100 % 처리한다. – javastunt

+0

다행 이네! – ipolevoy

관련 문제