BPM / EIP 構成
各ワークスペースは、独自の BPMN プロセスエンジン(Camunda) と EIP 統合エンジン(Apache Camel) を持ちます。ここでは、その構成と、ランタイムイベントの連携(EventAdmin ブリッジ)を説明します。
BPM の構成
設定ファイルは <workspace>/etc/bpm/bpm.yml(初回起動時に自動生成)。エンジンのデータは <workspace>/var/bpm/ に格納されます。
| キー | 既定 | 説明 |
|---|---|---|
jdbcURL |
jdbc:h2:<workspace>/var/bpm/data |
JDBC URL。\${workspace.name} などの変数置換に対応 |
username |
sa |
DB ユーザー |
password |
(空) | DB パスワード |
driverClassName |
URL から解決 | OSGi バンドルのドライバ(例 org.postgresql.Driver)では指定が必要 |
history |
audit |
Camunda の履歴レベル |
共有 DB(クラスター)の例:
jdbcURL: jdbc:postgresql://db:5432/bpm_\${workspace.name}
username: bpm
password: secret
driverClassName: org.postgresql.Driver
history: audit
履歴レベルの変更に関する重要な注意
履歴レベル(none / activity / audit / full / auto)は、初回起動時に DB へ保存されます。以降の起動で設定と DB の値が食い違うと、エンジンは起動に失敗します(この検査は無効化できません)。
意図的に変更する場合は、ワークスペースを停止し、DB の ACT_GE_PROPERTY(NAME_='historyLevel')を更新してから bpm.yml を合わせて再起動します。あるいは history: auto にすると、常に DB に保存済みのレベルを採用します。
EIP の構成
EIP エンジンは <workspace>/etc/eip/eip.yml の enabled で有効・無効を切り替えます(既定は有効)。ルートの設計は EIP Modeler、監視は EIP Console から行います。
ランタイムイベント(EventAdmin ブリッジ)
BPM・EIP の両エンジンは、ランタイムのライフサイクルを OSGi EventAdmin に発行します。トピックとプロパティの規約は両エンジンで共通で、workspace プロパティで横断的に購読できます。
トピックの命名
完全修飾型名の . を / に置き換え、末尾に大文字のアクションを付けます。
<fully/qualified/Type>/<ACTION>
BPM のトピック(例)
| 対象 | トピックルート | アクション |
|---|---|---|
| プロセスインスタンス | org/camunda/bpm/engine/runtime/ProcessInstance |
STARTED, ENDED |
| ユーザータスク | org/camunda/bpm/engine/task/Task |
CREATED, ASSIGNED, COMPLETED, UPDATED, DELETED |
| インシデント | org/camunda/bpm/engine/runtime/Incident |
CREATED, RESOLVED, ... |
プロセス・アクティビティ・ユーザータスクのイベントは履歴レベルに依存せず発行されます。変数・インシデントのイベントは履歴レベル(audit 以上)に従います。
EIP のトピック(例)
| 対象 | トピックルート | アクション |
|---|---|---|
| CamelContext | org/apache/camel/CamelContext |
STARTED, STOPPED, ... |
| ルート | org/apache/camel/Route |
ADDED, STARTED, STOPPED, ... |
| 交換 | org/apache/camel/Exchange |
CREATED, COMPLETED, FAILED, ... |
CamelContext / Route / Service イベントは既定で有効です。Exchange とステップのイベントは大量になるため既定で無効で、必要に応じて有効化します。
購読する
OSGi の EventHandler を event.topics フィルター付きで登録します。ワイルドカードが使えます。
org/camunda/bpm/engine/task/Task/*
org/apache/camel/Exchange/FAILED
すべてのイベントは workspace プロパティを持つため、両エンジンを統一的に扱えます。