legacy-knowledge-base
公開されました Sep. 10, 2025

SQLRecoverableException

written-by

Thanga Meena

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

legacy-article

learn-legacy-article-disclaimer-text

問題

  • サーバーは、以下の例外 java.sql.SQLRecoverableException でダウンしています。 この例外を引き起こす可能性のある根本原因は何ですか?
2021-10-12 10:25:54,807 SEVERE [Common.CommonUtils] (default task-48) null: java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:673)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:715)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:385)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:30)

Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection
at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:445)
at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:464)
at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:594)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:229)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1360)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:486)
... 48 more

Environment

  • Liferay DXP 7.0、データベース、サードパーティ ツール

解決策

  • 上記のスタック トレースのスニペットは、データベース リスナーが Liferay との接続をリッスンしていないときに発生したようです。
  • このケースの可能性が高いシナリオ例を説明すると、
    • ノードの1つがダウンしているときにこのエラーがスローされる可能性がある場合、データベースのフェイルオーバー後にLiferayが失敗する理由は、Liferayがデータベースサーバーに対して接続プールを構築し、システムが稼働している間それを維持するためです.
    • データベース クラスタが単一の堅牢なデータベース サーバーとしてバックグラウンドで動作する場合、問題は発生しません。
    • 接続がレプリケートされていない場合でも、ノードの 1 つがなくなると、接続プールからの接続が使用できなくなり、ログで接続が閉じられていることがわかります。
    • これは、システムがデータベース接続が機能していないままであり、再起動せずに Liferay ができることは何もないことを意味します。
    • さらに、DBサービスが再起動された場合、アプリケーションサーバーはDBサービスの再起動時に解放される特定のエントリのロックを有効にする必要があるため、Liferayを再起動してDB接続を再確立する必要があります。
java.sql.SQLRecoverableException: Closed Connection
  • 同じものに対して、以下のように異なる可能性があります:

    1) データベース サービスが実行されていないか、アクティブでないか、またはその時点で十分な接続がありません。

    2) ネットワークの停止

    3) 他のコンポーネント [ファイアウォール、ネットワーク デバイス、仮想マシン、ロード バランサー] が関係している可能性があります。これにより、一定期間非アクティブになった後、ネットワーク接続が強制的に閉じられる可能性があります。

追加情報

did-this-article-resolve-your-issue

legacy-knowledge-base