멀티 스레드 환경에서 데이터베이스 연결 풀링을 처리하기 위해 c3p0을 사용하고 있습니다. 질문은 다른 풀링 라이브러리와 관련이 있지만, 이것이 내가 가지고있는 것입니다.연결 풀링 및 Thread.interrupt()
은 최근에 나는 C3P0 직접 또는 간접적으로 사용하는 등 스레드 interrupt 이온 처리를 구현하는 데 필요한 것, 그리고 interrupt()
는 c3p0Datasource.getConnection()
풀에서 나에게 Connection
를 가져 오기 위해 노력하고 잘 때 호출되는 경우, 그것이 InterruptedException
를 throw 것으로 나타났습니다.
물론,이 때문에 wait()
at java.lang.Object.wait(Native Method)
at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1414)
쿨의 발생합니다. 문제는이 문제를 어떻게 적절히 처리 할 것인가입니다. 두 경우 모두 스레드가 종료되기 전에 트랜잭션을 계속하고 싶습니다. b) 중단하려고합니다.
나는 잘 작동하고있는 것처럼 보이는 해결책을 시도했다. (답변으로 게시 됨) 사실,이 주제가 닫혀 있다고 생각한다. 그렇지 않으면 감사합니다!