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 クラスターを設定している。

手順

  1. 環境を準備します。

    1. 以下のエクステンションが standalone.xml ファイルに存在することを確認し、必要な場合は追加します。

      <extension module="org.jboss.as.clustering.infinispan"/>
      <extension module="org.jboss.as.clustering.jgroups"/>
    2. 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>
    3. レプリケートされたキャッシュと分散キャッシュの 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>
    4. 以下のインターフェイスを設定します。

      <interface name="private">
          <inet-address value="${jboss.bind.address.private:127.0.0.1}"/>
      </interface>
    5. 以下のソケットを設定します。

      <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"/>
  2. Infinispan 拡張機能を KIE Server に追加します。

    1. テキストエディターで kie-server.war/WEB-INF/jboss-deployment-structure.xml ファイルを開き、以下の依存関係をファイルに追加します。

          <module name="org.infinispan" services="export"/>
          <module name="org.jgroups" />
    2. JAR ファイルをダウンロードします。

      1. Red Hat カスタマーポータルの Software Downloads ページに移動し (ログインが必要)、ドロップダウンオプションから製品およびバージョンを選択します。

        • 製品: Process Automation Manager
        • Version: 7.12
      2. Red Hat Process Automation Manager 7.12.0 Maven Repository (rhpam-7.12.0-maven-repository.zip) をダウンロードし、ZIP ファイルを展開します。
      3. 展開したファイルのあるディレクトリーに移動し、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 状態のジョブにフェイルオーバーを使用するように設定されます。