第10章 JMS メッセージブローカーで監査データの複製

KIE Server 監査データを Java Message Service (JMS) メッセージブローカー (ActiveMQ、Artemis など) に複製してから、外部データベーススキーマにデータをダンプし、アプリケーションスキーマから監査データを削除して Spring Boot アプリケーションのパフォーマンスを向上することができます。

メッセージブローカーのデータを複製するようにアプリケーションを設定すると、KIE Server でイベントが発生したときにそのイベントの記録は KIE Server データベーススキーマに保存され、メッセージブローカーに送信されます。その後、外部サービスを設定して、メッセージブローカーデータをアプリケーションのデータベーススキーマの正確なレプリカに使用できます。このデータは、イベントが KIE Server によって生成されるたびに、メッセージブローカーおよび外部データベースに追加されます。

注記

監査データのみがメッセージブローカーに保存されます。他のデータはレプリケートされません。

前提条件

  • 既存の Red Hat Process Automation Manager Spring Boot プロジェクトがある。

手順

  1. テキストエディターで Spring Boot アプリケーションの pom.xml ファイルを開きます。
  2. KIE Server Spring Boot 監査依存関係を pom.xml ファイルに追加します。

    <dependency>
      <groupId>org.kie</groupId>
      <artifactId>kie-server-spring-boot-autoconfiguration-audit-replication</artifactId>
      <version>${version.org.kie}</version>
    </dependency>
  3. JMS クライアントの依存関係を追加します。以下の例では、Advanced Message Queuing Protocol (AMQP) 依存関係を追加します。

    <dependency>
      <groupId>org.amqphub.spring</groupId>
      <artifactId>amqp-10-jms-spring-boot-starter</artifactId>
      <version>2.2.6</version>
    </dependency>
  4. JMS プールの依存関係を追加します。

    <dependency>
      <groupId>org.messaginghub</groupId>
      <artifactId>pooled-jms</artifactId>
    </dependency>
  5. KIE Server 監査レプリケーションがキューを使用するように設定するには、以下のタスクを完了します。

    1. 以下の行を、Spring Boot アプリケーションの application.properties ファイルに追加します。

      kieserver.audit-replication.producer=true
      kieserver.audit-replication.queue=audit-queue
    2. メッセージブローカークライアントに必要なプロパティーを追加します。以下の例は、AMPQ に KIE Server を設定する方法を示しています。ここで、<JMS_HOST_PORT> はブローカーがリッスンするポートで、<USERNAME> および <PASSWORD はブローカーのログイン認証情報になります。

      amqphub.amqp10jms.remote-url=amqp://<JMS_HOST_PORT>
      amqphub.amqp10jms.username=<USERNAME>
      amqphub.amqp10jms.password=<PASSWORD>
      amqphub.amqp10jms.pool.enabled=true
    3. 以下の行を、メッセージブローカーデータを使用するサービスの application.properties ファイルに追加します。

      kieserver.audit-replication.consumer=true
      kieserver.audit-replication.queue=audit-queue
    4. メッセージブローカークライアントに必要なプロパティーを、メッセージブローカーデータを使用するサービスの application.properties ファイルに追加します。以下の例は、AMPQ に KIE Server を設定する方法を示しています。ここで、<JMS_HOST_PORT> はメッセージブローカーがリッスンするポートで、<USERNAME> および <PASSWORD> はメッセージブローカーのログイン認証情報になります。

      amqphub.amqp10jms.remote-url=amqp://<JMS_HOST_PORT>
      amqphub.amqp10jms.username=<USERNAME>
      amqphub.amqp10jms.password=<PASSWORD>
      amqphub.amqp10jms.pool.enabled=true
  6. KIE Server 監査レプリケーションがトピックを使用するように設定するには、以下のタスクを実行します。

    1. 以下の行を、Spring Boot アプリケーションの application.properties ファイルに追加します。

      kieserver.audit-replication.producer=true
      kieserver.audit-replication.topic=audit-topic
    2. メッセージブローカークライアントに必要なプロパティーを、メッセージブローカーデータを使用するサービスの application.properties ファイルに追加します。以下の例は、AMPQ に KIE Server を設定する方法を示しています。ここで、<JMS_HOST_PORT> はメッセージブローカーがリッスンするポートで、<USERNAME> および <PASSWORD はメッセージブローカーのログイン認証情報になります。

      spring.jms.pub-sub-domain=true
      amqphub.amqp10jms.remote-url=amqp://<JMS_HOST_PORT>
      amqphub.amqp10jms.username=<USERNAME>
      amqphub.amqp10jms.password=<PASSWORD>
      amqphub.amqp10jms.pool.enabled=true
    3. 以下の行を、メッセージブローカーデータを使用するサービスの application.properties ファイルに追加します。

      kieserver.audit-replication.consumer=true
      kieserver.audit-replication.topic=audit-topic::jbpm
      kieserver.audit-replication.topic.subscriber=jbpm
      spring.jms.pub-sub-domain=true
    4. メッセージブローカークライアントに必要なプロパティーを、メッセージブローカーデータを使用するサービスの application.properties ファイルに追加します。以下の例は、AMPQ に KIE Server を設定する方法を示しています。ここで、<JMS_HOST_PORT> はメッセージブローカーがリッスンするポートで、<USERNAME> および <PASSWORD> はメッセージブローカーのログイン認証情報になります。

      amqphub.amqp10jms.remote-url=amqp://<JMS_HOST_PORT>
      amqphub.amqp10jms.username=<USERNAME>
      amqphub.amqp10jms.password=<PASSWORD>
      amqphub.amqp10jms.pool.enabled=true
      amqphub.amqp10jms.clientId=jbpm
  7. オプション: レプリケートされたデータが含まれる KIE Server を読み取り専用に設定するには、application.properties ファイルの org.kie.server.rest.mode.readonly プロパティーを true に設定します。

    org.kie.server.rest.mode.readonly=true

10.1. Spring Boot JMS 監査レプリケーションパラメーター

以下の表は、Spring Boot で Red Hat Process Automation Manager アプリケーションの JMS 監査レプリケーションを設定するために使用するパラメーターを説明しています。

表10.1 Spring Boot JMS 監査レプリケーションパラメーター

パラメーター説明

kieserver.audit-replication.producer

true, false

ビジネスアプリケーションが、JMS メッセージを複製してキューまたはトピックのいずれかに送信するプロデューサーとして動作するかどうかを指定します。

kieserver.audit-replication.consumer

true, false

ビジネスアプリケーションが、キューまたはトピックのいずれかから JMS メッセージを受信するコンシューマーとして動作するかどうかを指定します。

kieserver.audit-replication.queue

string

メッセージを送信または消費する JMS キューの名前。

kieserver.audit-replication.topic

string

メッセージを送信または消費する JMS トピックの名前。

kieserver.audit-replication.topic.subscriber

string

トピックサブスクライバーの名前。

org.kie.server.rest.mode.readonly

true, false

ビジネスアプリケーションの読み取り専用モードを指定します。