第18章 永続性

バイナリーの永続性、もしくはマーシャリングは、プロセスインスタンスのステータスをバイナリのデータセットに変換します。バイナリーの永続性は、情報を永続的に保存、取得する際に使用するメカニズムです。同じメカニズムがセッションステータスや作業アイテムのステータスにも適用されています。

プロセスインスタンスの永続性を有効にすると、以下のようになります。

  • Red Hat Process Automation Manager はプロセスインスタンス情報をバイナリーデータに変換します。パフォーマンスの理由から、Java の直列化ではなくカスタムの直列化が使用されます。
  • バイナリーデータはプロセスインスタンスに関する他のメタデータと併せて保存されます。このメタデータには、プロセスインスタンス ID、プロセス ID、プロセスの開始日が含まれます。

セッションには、タイマージョブのステータスや、ビジネスルールの評価に必要なデータなど、他の形式のステータスを格納することもできます。セッション状態は、セッションの ID およびメタデータとともにバイナリーデータセットとして別途保存されます。指定された ID でセッションを再読み込みすることにより、セッション状態を復元できます。セッション ID は、ksession.getId() を使用して取得します。

永続性が設定されていれば、Red Hat Process Automation Manager は以下を維持します。

  • Session state: セッション ID、最終変更日、ビジネスルールによる評価に必要なセッションデータ、タイマージョブのステータス。
  • Process instance state: プロセスインスタンス ID、プロセス ID、最終変更日、最終読み取りアクセス日、プロセスインスタンスの開始日、ランタイムデータ (実行されているノード、変数値、その他のプロセスインスタンスデータを含む実行ステータス)、およびイベントタイプ。
  • Work item runtime state: ワークアイテム ID、作成日、名前、プロセスインスタンス ID、およびワークアイテムステータス。

永続化したデータを基に、障害発生時にはすべての実行中のプロセスインスタンスの実行ステータスを復元したり、メモリーから実行中のインスタンスを一時的に削除し、それらを後で復元することができます。

18.1. KIE Server の永続性設定

Hibernate または JPA パラメーターをシステムプロパティーとして渡すと、KIE Server の永続性を設定できます。

KIE Server は以下の接頭辞でシステムプロパティーを確認でき、これらの接頭辞を持つ Hibernate または JPA パラメーターをすべて使用できます。

  • javax.persistence
  • hibernate

手順

  1. KIE Server の永続性を設定するには、以下のタスクのいずれかを実行します。

    Red Hat JBoss EAP 設定ファイルを使用して KIE Server の永続性を設定する場合は、以下のタスクを実行します。

    1. Red Hat Process Automation Manager インストールディレクトリーで、standalone-full.xml ファイルに移動します。たとえば、Red Hat Process Automation Manager に Red Hat JBoss EAP インストールを使用する場合は $EAP_HOME/standalone/configuration/standalone-full.xml に移動します。
    2. standalone-full.xml ファイルを開き、<system-properties> タグの下に、システムプロパティーとして、Hibernate または JPA パラメーターを設定します。

      Hibernate パラメーターを使用した KIE Server の永続性の設定例

      <system-properties>
          ...
              <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
          ...
      <system-properties>

      JPA パラメーターを使用した KIE Server の永続性の設定例

      <system-properties>
          ...
              <property name="javax.persistence.jdbc.url" value="jdbc:mysql://mysql.db.server:3306/my_database?useSSL=false&serverTimezone=UTC"/>
          ...
      <system-properties>

    コマンドラインを使用して KIE Server の永続性を設定する場合は、以下のタスクを実行します。

    1. 以下のように -Dkey=value を使用してコマンドラインからパラメーターを直接渡します。

      Hibernate パラメーターを使用して KIE Server の永続性を設定する例:

      $EAP_HOME/bin/standalone.sh -Dhibernate.hbm2ddl.auto=create-drop

      JPA パラメーターを使用して KIE Server の永続性を設定する例:

      $EAP_HOME/bin/standalone.sh -Djavax.persistence.jdbc.url=jdbc:mysql://mysql.db.server:3306/my_database?useSSL=false&serverTimezone=UTC