JBOSS
Processインスタンスのロックについて調べた。結論から言うと、org.jbpm.db.GraphSession.lockProcessInstaceは、JBPMのデータJBPM_PROCESSINSTANCEテーブルをselect for updateする実装だ。lockProcessInstanceの実装は以下のようになっており、肝はsession…
enchantMoonでメモしてみるシリーズ3弾。JBOSS ESBのアクションのインスタンスはアクションごとに1つだけという内容のメモ。 インスタンスが1つなので、ESBアクション内にフィールドを保持することは原則非常に危険。synchronizedとかでフィールドを保護す…
enchantMoonでメモしてみるシリーズ2弾。ActionHandler内にstaticなオブジェクトを定義した場合に、そのオブジェクトがどこまで共有されるかを実験してみた。 以下はその時の結果をメモ。結論としては、プロセス内だけで共有される。つまり同じ定義のプロセ…
jBPMがらみでいくつか纏めておくこともあるので、enchantMoonを使いつつメモを作成した。fork時にfork先がそれぞれ別のスレッドで実行されることについてのメモ。 fork後に分岐するルートの各ノードは別々のスレッドで実行されるため、fork前に保持していた…
ノードに対してactionを設定せずに、node-enterイベントに紐づけたActionHandlerの内部でleaveNodeするようにしたフローを実行すると、後続のノードに設定したActionHandlerが2度実行されているようで、期待している動作とは、ちょっと違った動きをしたので…
最近jBPMを使うことが増えたので、忘れないうちに色々まとめておこうと思う。 jBPMは複数のプロセス(フロー)がプロセス単位に動作する一種の状態マシンのようなもので、待機状態→実行状態→待機状態のようなサイクルで動作する。このサイクル中で待機状態と…