[SQL] 오라클 DB : java.sql.SQLException의 : 폐쇄 연결
SQL오라클 DB : java.sql.SQLException의 : 폐쇄 연결
java.sql.SQLException의 이유 : 오라클 청산 연결 ??
(가) 데이터베이스 연결을 통해 실패에서 우리는이 오류를 얻고있다. 우리는뿐만 아니라 다른 데이터베이스에 대한 동일한 코드를 사용합니다. 그러나 데이터베이스의 한으로이 문제를보고. 연결이 때문에 긴 활동 기간을 제한 할 수도 있습니다 그리고 우리가 그것을 사용하려고하기 때문이다? Pls는 당신이 세부 사항을 더 필요하면 알려주세요 ...
15 분에 AbandonedConnectionTimeout 세트 InactivityTimeout은 30 분으로 설정
해결법
-
==============================
1.그것은 연결이 성공적으로 어떤 점에서 설립,하지만 당신은 거기 커밋하려고 할 때, 연결이 더 이상 열려되었음을 의미합니다. 매개 변수는 연결 풀 설정과 같은 소리를 언급했다. 그렇다면, 그들은이 문제에 관련이없는 것. 가장 큰 원인은 유휴 일정 시간 후 연결을 죽이고 데이터베이스 사이에 방화벽입니다. 가장 일반적인 수정은 연결이 그것에서 체크 아웃 할 때 연결 풀은 검증 쿼리를 실행하는 것입니다. 이것은 즉시 만 풀에서 좋은 연결을 얻을 보장 EVICT 죽은 connnections를 확인하고 있습니다.
그것은 연결이 성공적으로 어떤 점에서 설립,하지만 당신은 거기 커밋하려고 할 때, 연결이 더 이상 열려되었음을 의미합니다. 매개 변수는 연결 풀 설정과 같은 소리를 언급했다. 그렇다면, 그들은이 문제에 관련이없는 것. 가장 큰 원인은 유휴 일정 시간 후 연결을 죽이고 데이터베이스 사이에 방화벽입니다. 가장 일반적인 수정은 연결이 그것에서 체크 아웃 할 때 연결 풀은 검증 쿼리를 실행하는 것입니다. 이것은 즉시 만 풀에서 좋은 연결을 얻을 보장 EVICT 죽은 connnections를 확인하고 있습니다.
-
==============================
2.당신은 연결을 확인해야합니다.
당신은 연결을 확인해야합니다.
Oracle을 사용하는 경우 그것은 가능성이 당신이 Oracle's 범용 연결 풀을 사용하는 것입니다. 다음은 당신이 그렇게 할 수 있다고 가정합니다.
연결을 확인하는 가장 쉬운 방법은 그것을 차용하면서 연결의 유효성을 검사해야한다는 오라클을 알려주는 것이다. 이 작업은 수행 할 수 있습니다
pool.setValidateConnectionOnBorrow(true);
당신이 짧은 기간 동안 접속을 유지한다면 그것은 단지 작동합니다. 당신은 긴 시간 동안 연결을 빌릴 경우, 당신이 그것을 누르고있는 동안 연결이 상처 입는 것 같다. 이 경우 당신은 명시 적으로 연결을 확인해야
if (connection == null || !((ValidConnection) connection).isValid())
자세한 내용은 Oracle 설명서를 참조하십시오.
from https://stackoverflow.com/questions/6785340/oracle-db-java-sql-sqlexception-closed-connection by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 지난 일요일 찾기 (0) | 2020.07.03 |
---|---|
[SQL] 절에 SQL에 튜플을 사용하여 (0) | 2020.07.03 |
[SQL] MySQL은 어떻게 클러스터 된 인덱스를 만들려면 어떻게해야합니까? (0) | 2020.07.03 |
[SQL] SQL : 다 대다 테이블 및 쿼리 (0) | 2020.07.03 |
[SQL] SQL Server에 대한 CONCAT_WS () (0) | 2020.07.03 |