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

データベースの切り替え中にLiferayアプリケーションサーバーが応答しなくなる

written-by

Kanchan Bisht

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

問題

  • Liferay アプリケーション サーバーでは、以下の例外が確認されています。 データベースの切り替え中に応答しなくなります。
  • ERROR [QuartzScheduler_PersistedQuartzSchedulerEngineInstance-ecmsndcappcp11617706920289_ClusterManager][PortalJobStore:3641] Couldn't rollback jdbc connection. This connection has been closed.
    org.postgresql.util.PSQLException: This connection has been closed.
    at org.postgresql.jdbc.PgConnection.checkClosed(PgConnection.java:766)
    at org.postgresql.jdbc.PgConnection.rollback(PgConnection.java:773)
    at org.jboss.jca.adapters.jdbc.BaseWrapperManagedConnection.jdbcRollback(BaseWrapperManagedConnection.java:1105)
    at org.jboss.jca.adapters.jdbc.WrappedConnection.rollback(WrappedConnection.java:863)
    at sun.reflect.GeneratedMethodAccessor740.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  • PostgreSQL データベースの 2 つのノードと、両方のデータベース ノード間の仮想 IP アドレスのセットアップがあり、データベースの切り替え中、Liferay アプリケーション サーバーを再起動するまで、アプリケーション サーバーは応答しません。

Environment

  • Liferay DXP 7.0

解決策

  • Liferay は、データベース クラスタリング ソリューションでテストされていません。 ただし、データベース クラスタが JNDI レベルで単一のデータベース接続として表示される場合は、機能していると見なすことができます。 DB の切り替え後に Liferay が失敗する理由は、Liferay がデータベース サーバーへの接続プールを構築し、システムの稼働中にそれを維持するためです。 データベース クラスタが単一の堅牢なデータベース サーバーとしてバックグラウンドで動作する場合、問題は発生しません。
    現在、このシナリオでは、PG クラスターが接続をレプリケートしていないため、ノードの 1 つがなくなると、接続プールからの接続が使用できなくなり、ログに以下の例外が記録されます。
    org.postgresql.util.PSQLException: This connection has been closed.
    これが、システムが有効なデータベース接続なしで残っている理由であり、再起動せずに Liferay ができることは何もありません。
  • この問題では、DB管理者に接続して、何が正しいパラメータになるかを確認する必要があります。または、LiferayレベルではなくDBレベルで行う必要があるため、影響を受ける環境アーキテクチャに基づいて構成を設定する必要があります。

追加情報

did-this-article-resolve-your-issue

legacy-knowledge-base