現在、Java サーバー アプリケーションで ORA-27101 に直面しています。起動すると、数日間は問題なく動作しましたが、その後障害が発生し、アプリケーションが失われました。これらの ORA はログにしか表示されません。データベースが 1 ~ 2 時間ダウンしていた可能性があります。しかし、その期間が過ぎても、アプリケーションが復活することはありませんでした。再起動後、すべてが再び正常になりました。
私の質問は次のとおりです。アプリケーションのそのような動作の原因は何ですか? この例外がアプリケーションに表示された場合、どうすればよいですか? 再起動が唯一の方法ですか、それともアプリケーション内でこれを処理できますか?
OS は Windows Server 2008 で、Oracle データベースは 11g です。いくつかの接続を管理するために、Oracle jdbc ドライバーとユニバーサル接続プールを使用しています。
そして最後にスタックトレース:
java.sql.SQLException: Exception while getting connection: oracle.ucp.UniversalConnectionPoolException: cannot get connection from datasource: java.sql.SQLRecoverableException: ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
at oracle.ucp.util.UCPErrorHandler.newSQLException(UCPErrorHandler.java:488)
at oracle.ucp.util.UCPErrorHandler.throwSQLException(UCPErrorHandler.java:163)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:928)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:863)
at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:855)