2012-03-19 17 views
6

W mojej aplikacji używam połączenia z Oracle, gdy stracił połączenie i spróbuj ponownie połączyć Otrzymuję wyjątek:java.sql.SQLException: wyjątek Io: Uszkodzona rura, jak odzyskać bez restartu?

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) 

Aby odzyskać muszę ponownie uruchomić aplikację, nie można odzyskać bez restartu? Dzięki.

Odpowiedz

3

następne mogą być możliwości, które mogłyby być przyczyną wyjątek:

  1. problemem sieciowe: To jest sieć między serwerem bazy danych i aplikacji powoduje fizycznego połączenia są porzucane po pewnym okresie czasu. Prawdopodobnie jest to spowodowane firewallem działającym za siecią, która jest skonfigurowana do zabijania połączeń db po określonym czasie. Możesz rozważyć obejście problemu, aby utrzymać połączenie przy życiu przez cały czas, po prostu przez ponowną konfigurację serwera aplikacji. W przypadku Tomcat możesz spróbować dodać validationQuery="select 'validationQuery' from dua l do pliku konfiguracyjnego źródła danych Tomcat (context.xml)

  2. Połączenia z serwerem bazy danych są resetowane, a klient nie jest powiadamiany przez sterownik bazy danych. Problem w tym przypadku polega na tym, że sterownik Oracle odkrywa, że ​​jest to gniazdo do DBMS w jakiś sposób (zapora ponownie, być może?) Została zamknięta na drugim końcu. Można rozważyć ustawienie limitu czasu połączenia (w puli) krótszym niż limit czasu serwera/bazy danych jako rozwiązanie.

+0

"Połączenia z serwerem bazy danych są resetowane, a klient nie jest powiadamiany przez sterownik bazy danych." Jak zatem nazywasz ten wyjątek? – EJP

Powiązane problemy