2012-08-09 2 views
2

가능한 중복 :
Prepared statement pooling in dbcpPreparedStatement의 풀

내가 내부 사용을 위해 Tomcat의 데이터베이스 연결 풀링 메커니즘을 사용하는 웹 응용 프로그램을 구축하고있다. 준비된 문을 풀링하여 응용 프로그램이 데이터를보다 효율적으로 검색 할 수 있도록 노력하고 있습니다.

연결에서 결과 집합과 문을 닫으면 연결이 풀로 반환됩니다. 해당 플래그가 설정되면 포기 된 연결도 닫히고 풀로 반환됩니다. 연결을 종료한다는 것은 모든 데이터베이스 커서와 준비된 문을 포함하여 캐시 된 문을 해제한다는 것을 의미합니다. 그래서 prepared statement pooling의 요점은 무엇입니까?

답변

8

일반적인 대답 :

연결 개체는 정말 폐쇄 만이 (닫기)와 준비된 명령문 풀링은 연결 기준으로 당에 작동하고 그들이 연결만큼 캐시 전화를 풀에 반환되지 않습니다 객체는 활성 상태로 유지됩니다.

+5

여기에서 핵심적인 통찰력은 풀이 제공하는 객체가 실제 연결 및 명령문이 아니라 래퍼라는 것입니다. 당신이 그들을 닫을 때, 당신은 실제 물건을 닫지 않고 풀로 돌려 놓습니다. –

+0

나는이 대답을 어디에서나 기대했지만 그것을 찾을 수 없었다. 나는 아파치 코 몬즈 DBCP에 대해 Connection close()를 호출하면 연결을 닫지 않고 객체를 반환하는 {PoolableConnection}이라는 래퍼 클래스를 읽었지만 확실하지는 않다. 정보 주셔서 감사합니다. – BegaluruBoy

관련 문제