2011-03-29 10 views
4

웹 스피어 서버에 데이터 소스를 호스팅했으며 응용 프로그램 클라이언트를 통해 해당 데이터 소스를 사용하고자했습니다.JNDI 연결 풀에서 검색된 데이터베이스 연결 설정

JNDI 데이터 소스에서 데이터베이스 연결을 검색 한 후 연결 커밋 설정을 false로 변경합니다. 그 후에 나는이 연결을 사용할 것이고 나는 작업 완료 후에 연결을 닫을 것이다.

My Doubt은 연결을 종료하기 전에 연결 설정을 변경하는 것을 잊어 버렸을 때 발생합니다 (연결을 풀에 반환 함). 다른 클라이언트가이 데이터 소스에 액세스하고 사용자가 동일한 연결을 가져 오면 커밋 설정이 계속 유지되거나 서버가 이러한 연결 설정을 다시 설정합니다.

감사합니다. 맑음.

답변

3

일반적으로 풀의 연결은 클라이언트가 지나치게 관여하는 것을 처리하는 AS 전용 구현으로 래핑됩니다. 연결에서 특정 메서드가 호출되면 "더티 (dirty)"것으로 간주되어 풀로 반환되지 않고 대신 닫히고 다시 작성되거나 가능한 경우 원래 상태로 다시 설정됩니다. 이러한 상황을 처리하는 방법에 대한 설정이 종종 있습니다. Weblogic에서 감염된 연결을 제거하십시오.

그자가 정화의 효과는 운전자에게도 달려 있습니다. 따라서 1 연결 풀을 사용하여 간단한 테스트를 수행하는 것이 좋습니다. 연결을 autocommit = false로 설정하고 닫지 말고 종료하고 자동 커밋 속성의 실제 상태를 검사하는 테스트로 다른 클라이언트에서 사용하려고합니다.

또 하나주의해야 할 점은 해당 AS 랩퍼에서 Connection.close()가 연결을 닫지 않고 풀에 배치한다는 것입니다. 따라서 클라이언트가 close()를 호출하기 전에 연결을 끊고 (그 전에 자동 연결을 다시 설정하면) 연결이 다른 풀 클라이언트에서 사용 가능하지 않아 연결 유출이 발생할 수 있습니다.