java.sql.SQL 예외:Io 예외:파이프가 부러져서 재가동하지 않고 복구하는 방법?
애플리케이션에서 Oracle에 대한 연결을 사용하는 경우 연결이 끊어지고 다시 연결하려고 하면 예외가 발생합니다.
java.sql.SQLException: Io exception: Broken pipe
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:124)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:161)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:273)
at oracle.jdbc.driver.T4CStatement.fetch(T4CStatement.java:540)
at oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:264)
at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:196)
복구하려면 애플리케이션을 다시 시작해야 하는데, 다시 시작하지 않고도 복구가 가능합니까?감사해요.
예외의 원인이 될 수 있는 가능성은 다음과 같습니다.
네트워크 문제:이는 데이터베이스와 애플리케이션 서버 사이의 네트워크로 일정 시간 후 물리적 연결이 끊어지는 것입니다.이는 지정된 시간 후에 db 연결을 차단하도록 구성된 네트워크 뒤에서 실행되는 방화벽 때문일 수 있습니다.애플리케이션 서버를 다시 구성하기만 하면 연결을 항상 유지할 수 있는 방법을 고려해 볼 수 있습니다.Tomcat의 경우 다음을 추가해 볼 수 있습니다.
validationQuery="select 'validationQuery' from dua
l Tomcat 데이터 원본 컨프 파일(context.xml)에서데이터베이스 서버에 대한 연결이 재설정되는 중이며 데이터베이스 드라이버가 클라이언트에 통지하지 않습니다.이 경우 문제는 Oracle 드라이버가 DBMS에 대한 소켓임을 어떻게든 인식하고 있다는 것입니다(방화벽이 또 있을까요?).다른 쪽 끝에 의해 닫혔습니다.네트워크/DB 서버 타임아웃보다 짧은 연결 타임아웃(풀 내)을 설정하는 것을 해결책으로 고려해 볼 수 있습니다.
언급URL : https://stackoverflow.com/questions/9766168/java-sql-sqlexception-io-exception-broken-pipe-how-to-recover-without-restart
'programing' 카테고리의 다른 글
최대 절전 모드:JPA를 통해 MariaDB 커밋하기 (0) | 2023.09.12 |
---|---|
폴더를 통한 파워셸 루프, 각 폴더에 파일 생성 (0) | 2023.09.12 |
양식 없이 코드이그니터 CSRF 토큰을 얻는 중? (0) | 2023.09.12 |
engine='openpyxl'로 panda.read_filse를 작동시키는 방법은 기본적으로 나노초를 표시하지 않고 xlrd와 같이 작동합니까? (0) | 2023.09.12 |
VBA를 사용하여 xls 워크북을 xlsb로 저장해야 합니다. (0) | 2023.09.12 |