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

クラスタ環境のノード間でキャッシュが適切にレプリケートされていない

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

問題

  • 一方のノードからは、ドキュメントをアップロードしたり、Webコンテンツを作成したりする際に、もう一方のノードのコンテンツセクションの下で利用できるようになっています。 ただし、ページを作成し、アップロードされたドキュメントと既存のWebコンテンツをページに追加する場合、クラスター全体の コンテンツキャッシュを手動でクリアするか、サーバーを再起動しない限り、他のノードに反映されません。

環境への配慮

  • Liferay DXP 7.0 SP11 とFP80

決議

  • バニラバンドルを使用して動作を再現する手順です。
    • 2ノードのLiferayクラスタ環境で、両方のノードで同じパッチレベルを使用する
    • 同一データベース、同一ファイルリポジトリを2ノードに設定する[試験用簡易ファイルシステム]の設定
    • "cluster.link.enabled=true", "cluster.link.autodetect.address=www.google.com:80" のプロパティを portal-ext.propertiesに追加する。
  • 追加手順
    • すべてのノードでクラスタリンクを有効にすると、利用可能なノードはお互いにメッセージ/ハートビートを送信できるようになります。

      • クラスタリンクは JGroupsに依存します。 したがって、最新の Jgroups.jarをダウンロードしてください。 についてはこちら を参照してください。
      • ダウンロードした jgroups からjarから、JARの lib フォルダの下に、 jgroups-[version].Final.jar. それを展開して、 tcp.xmlを見つけます。 このtcp.xmlファイルをLiferay DXPからアクセス可能な場所に展開し、 $LIFERAY_HOME/tomcat-XXX/webapps/ROOT/WEB-INF/classesフォルダ の下に配置します。
      • ドキュメントの4番目の手順に従ってください。 tcp.xmlファイルを開き、以下のように設定します。
        <TCP bind_port="[some unused port]"
        ...
        /> like TCP bind_port="7800"
      • ドキュメントの5番目の手順に従ってください。 パラメータ singleton_name="liferay_tcp_cluster" を上記の同じタグに設定します。 注意: この名前は両方のノードで同じ名前でなければなりません。

      • タグ内 <TCPPING async_discovery="true", set initial_hosts="${jgroups.tcpping.initial_hosts.IP_of_node1[7800],IP_of_node2[7800]}"と設定し、ポートを 同じ とします。

      • ドキュメントの6番目のステップに従ってください。 上記の設定を有効にするには、 のグローバル設定ファイルiに以下のプロパティを追加します。例えば、 portal-ext.properties の両ノードにtcp.xmlファイルのそれぞれのパスを追加します。

        cluster.link.channel.properties.control=[CONFIG_FILE_PATH]/tcp.xml
        cluster.link.channel.properties.transport.0=[CONFIG_FILE_PATH]/tcp.xml
      • ドキュメントから UNICAST OVER TCPの設定 の部分に従ってください。

        • Setenv.bat (Linux の場合は Setenv.sh) を開き、両ノードの CATALINA_OPTS に以下の変更を加えます。

      -Djgroups.bind_addr=IP_of_respective_node -Djgroups.tcpping.initial_hosts=IP_of_node1[7800],IP_of_node2[7800]

      以上の設定を行った後、ノードを1つずつ起動していきます。 両方のノードから一時的なOSGi/stateディレクトリがある場合は削除してください。

追加情報

did-this-article-resolve-your-issue

legacy-knowledge-base