2017-12-07 14 views
0

IBM 설명서 별 : 제거 정책 부실 연결 또는 치명적인 연결 오류가 감지 될 때 연결을 제거하는 방법을 지정합니다. 유효한 값은 EntirePool 및 FailingConnectionOnly입니다.서버가 어떻게 연결이 끊어 졌는지 알 수 있습니까?

질문 : 서버가 어떻게 연결이 끊어 졌는지 알 수 있습니까? 연결이 끊어 지거나 시간이 경과함에 따라 즉시 (즉시?) 풀을 제거합니까?

수확 시간이 180 초라면 말하십시오. 수확 스레드가 마지막으로 오후 3시 5 분에 실행되었고 연결이 오후 3시 6 분에 부실하다고 가정하면 서버가 오후 3시 6 분에 풀을 제거하거나 오후 3시 8 분에만 제거가 수행됩니까? 클라이언트가 3:06에서 3:08 사이에 연결이 끊긴 연결 개체가 발생할 위험이 있습니까?

내가 말하는 겁니다 IBM의 문서는 다음과 같습니다 https://www.ibm.com/support/knowledgecenter/en/ssw_i5_54/rzamy/50/admin/help/udat_conpoolset.html

답변

1

부실 연결은 다음과 같은 방법으로 식별됩니다

  1. JDBC 작업이 SQLRecoverableException 또는 SQLNonTransientConnectionException, 또는 일반되는 SQLException에 제기하는 수행 응용 프로그램 서버에 내장 된 SQL 상태 또는 오류 코드 SQL 상태 및 오류 코드의 특정 목록은 DatabaseHelper의 SQLState 매핑과 데이터베이스 별 다양한 하위 클래스를 참조하십시오.
  2. JDBC 드라이버의 ConnectionEventListener.connectionErrorOccurred는 연결이 잘못되었다는 신호를 응용 프로그램 서버에 알립니다.

응용 프로그램 서버에서 연결이 잘못되었다는 것을 알게되면 해당 연결을 풀에 반환하지 않습니다. 공유 범위 외부의 후속 요청은 동일한 연결을 얻지 못합니다.

제거 정책은 부실 연결이 발생할 때 풀에있는 다른 연결에서 응용 프로그램 서버가 수행하는 작업을 결정합니다. 응용 프로그램 서버는 풀 (EntirePool 옵션)에서 모든 연결을 적극적으로 제거하거나 다른 서버를 그곳에 남겨 둘 수 있습니다 (FailingConnectionOnly 옵션). 풀에있는 모든 연결을 확인한 후 (ValidateAllConnections 옵션) 전달할 수 있습니다.

위의 특성 값은 WebSphere Application Server Liberty에 대한 것입니다. traditional을 사용하는 경우 ValidateAllConnections는 FailingConectionOnly와 defaultPretestOptimizationOverride = true의 조합으로 수행됩니다.