第19章 永続性
バイナリーの永続性、もしくはマーシャリングは、プロセスインスタンスのステータスをバイナリーのデータセットに変換します。バイナリーの永続性は、情報を永続的に保存、取得する際に使用するメカニズムです。同じメカニズムがセッションステータスや作業アイテムのステータスにも適用されています。
プロセスインスタンスの永続性を有効にすると、以下のようになります。
- 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、およびワークアイテムステータス。
永続化したデータを基に、障害発生時にはすべての実行中のプロセスインスタンスの実行ステータスを復元したり、メモリーから実行中のインスタンスを一時的に削除し、それらを後で復元することができます。
19.1. Process Server の永続性設定
Hibernate または JPA パラメーターをシステムプロパティーとして渡すと、Process Server の永続性を設定できます。
Process Server は以下の接頭辞でシステムプロパティーを確認でき、これらの接頭辞を持つ Hibernate または JPA パラメーターをすべて使用できます。
-
javax.persistence
-
hibernate
手順
Process Server の永続性を設定するには、以下のタスクのいずれかを実行します。
Red Hat JBoss EAP 設定ファイルを使用して Process Server の永続性を設定する場合は、以下のタスクを実行します。
-
Red Hat Process Automation Manager インストールディレクトリーで、
standalone-full.xml
ファイルに移動します。たとえば、Red Hat Process Automation Manager に Red Hat JBoss EAP インストールを使用する場合は$EAP_HOME/standalone/configuration/standalone-full.xml
に移動します。 standalone-full.xml
ファイルを開き、<system-properties>
タグの下に、システムプロパティーとして、Hibernate または JPA パラメーターを設定します。Hibernate パラメーターを使用した Process Server 永続性の設定例
<system-properties> ... <property name="hibernate.hbm2ddl.auto" value="create-drop"/> ... <system-properties>
JPA パラメーターを使用した Process Server 永続性の設定例
<system-properties> ... <property name="javax.persistence.jdbc.url" value="jdbc:mysql://mysql.db.server:3306/my_database?useSSL=false&serverTimezone=UTC"/> ... <system-properties>
コマンドラインを使用して Process Server の永続性を設定する場合は、以下のタスクを実行します。
以下のように
-Dkey=value
を使用してコマンドラインからパラメーターを直接渡します。Hibernate パラメーターを使用して Process Server の永続性を設定する例:
$EAP_HOME/bin/standalone.sh -Dhibernate.hbm2ddl.auto=create-drop
JPA パラメーターを使用して Process Server の永続性を設定する例:
$EAP_HOME/bin/standalone.sh -Djavax.persistence.jdbc.url=jdbc:mysql://mysql.db.server:3306/my_database?useSSL=false&serverTimezone=UTC
-
Red Hat Process Automation Manager インストールディレクトリーで、