29.4. 失敗した KIE Server ノードの RUNNING 状態にあるジョブのフェイルオーバーの設定
デフォルトでは、クラスターで複数の KIE Server ノードを実行している場合は、1 つの KIE Server ノードに障害が発生しても、その他の KIE Server ノードは、失敗した KIE Server ノードから QUEUED
状態または RETRYING
状態のジョブを選択します。ただし、これらのノードは RUNNING
状態のジョブを選択しません。
別の KIE Server ノードに再度キューに置かれるように、RUNNING
状態のジョブを組み込むようにクラスターを設定できます。障害が発生した KIE Server ノードのプロセスにタイマー開始ノードがある場合、プロセスはいずれかのノードでのみ開始します。
前提条件
- KIE Server に Red Hat JBoss EAP クラスターを設定している。
手順
環境を準備します。
以下のエクステンションが
standalone.xml
ファイルに存在することを確認し、必要な場合は追加します。<extension module="org.jboss.as.clustering.infinispan"/> <extension module="org.jboss.as.clustering.jgroups"/>
standalone.xml
ファイルで、<subsystem xmlns="urn:jboss:domain:infinispan:9.0">
サブシステムを見つけ、以下の例のように、nodes
という名前のキャッシュとjobs
という名前のキャッシュを含むjbpm
という名前のキャッシュコンテナーエントリーを作成します。<cache-container name="jbpm"> <transport lock-timeout="60000"/> <replicated-cache name="nodes"> <transaction mode="BATCH"/> </replicated-cache> <replicated-cache name="jobs"> <transaction mode="BATCH"/> </replicated-cache> </cache-container>
レプリケートされたキャッシュと分散キャッシュの
jgroups
サブシステムを追加します。<subsystem xmlns="urn:jboss:domain:jgroups:7.0"> <channels default="ee"> <channel name="ee" stack="udp" cluster="ejb"/> </channels> <stacks> <stack name="udp"> <transport type="UDP" socket-binding="jgroups-udp"/> <protocol type="PING"/> <protocol type="MERGE3"/> <socket-protocol type="FD_SOCK" socket-binding="jgroups-udp-fd"/> <protocol type="FD_ALL"/> <protocol type="VERIFY_SUSPECT"/> <protocol type="pbcast.NAKACK2"/> <protocol type="UNICAST3"/> <protocol type="pbcast.STABLE"/> <protocol type="pbcast.GMS"/> <protocol type="UFC"/> <protocol type="MFC"/> <protocol type="FRAG3"/> </stack> <stack name="tcp"> <transport type="TCP" socket-binding="jgroups-tcp"/> <socket-protocol type="MPING" socket-binding="jgroups-mping"/> <protocol type="MERGE3"/> <socket-protocol type="FD_SOCK" socket-binding="jgroups-tcp-fd"/> <protocol type="FD_ALL"/> <protocol type="VERIFY_SUSPECT"/> <protocol type="pbcast.NAKACK2"/> <protocol type="UNICAST3"/> <protocol type="pbcast.STABLE"/> <protocol type="pbcast.GMS"/> <protocol type="MFC"/> <protocol type="FRAG3"/> </stack> </stacks> </subsystem>
以下のインターフェイスを設定します。
<interface name="private"> <inet-address value="${jboss.bind.address.private:127.0.0.1}"/> </interface>
以下のソケットを設定します。
<socket-binding name="jgroups-mping" interface="private" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45700"/> <socket-binding name="jgroups-tcp" interface="private" port="7600"/> <socket-binding name="jgroups-tcp-fd" interface="private" port="57600"/> <socket-binding name="jgroups-udp" interface="private" port="55200" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45688"/> <socket-binding name="jgroups-udp-fd" interface="private" port="54200"/>
Infinispan 拡張機能を KIE Server に追加します。
テキストエディターで
kie-server.war/WEB-INF/jboss-deployment-structure.xml
ファイルを開き、以下の依存関係をファイルに追加します。<module name="org.infinispan" services="export"/> <module name="org.jgroups" />
JAR ファイルをダウンロードします。
Red Hat カスタマーポータルの Software Downloads ページに移動し (ログインが必要)、ドロップダウンオプションから製品およびバージョンを選択します。
- 製品: Process Automation Manager
- Version: 7.12
-
Red Hat Process Automation Manager 7.12.0 Maven Repository (
rhpam-7.12.0-maven-repository.zip
) をダウンロードし、ZIP ファイルを展開します。 -
展開したファイルのあるディレクトリーに移動し、
maven-repository/org/kie/server/kie-server-services-jbpm-cluster/7.59.0.Final-redhat-00006/kie-server-services-jbpm-cluster-7.59.0.Final-redhat-00006.jar
ファイルをkie-server.war/WEB-INF/lib
ディレクトリーにコピーします。
クラスターは、RUNNING
状態のジョブにフェイルオーバーを使用するように設定されます。