デフォルトでは、OpenWFEru は起動しているビジネスプロセスの形式的なジャーナル(ログ)を保持しません。もしプロセスが壊れた場合、再度ビジネスプロセスを確立させるのは可能ですが、 expression pool (./work/expool/) 中のファイルを修復するあるレベルの専門性なしでは難しいことと言えます。
Journaling(ジャーナリング) は ビジネスプロセスを構成する全てのイベントの記録を保持する技術で、完全にもしくはある時点までの再実行を可能にするものです。
また、 journal(ジャーナル) は システム移行時(一つの動いているエンジン上のビジネスプロセスを他システムに)にも使えます。
engine.init_service("journal", Journal)
デフォルトでは、Journal は work/journal/ ディレクトリに置かれます。
プロセスが終了した時点で、その journal は削除されます。
journals は イベントをシリアライズされた順番のYAML で、人間の読める形式となっていますが J.K.Rowlingじゃありません.。
デフォルトでは、正式な OpenWFEru での journaling の実装では終了したビジネスプロセスの journal は廃棄します。
ただし、エンジンに指定した古い journal を保持するように指示できます。
engine.application_context[:keep_journals] = true
終了した journals はデフォルトで work/journal/done/ に置かれます。
(サジェスチョン : 古い終了した journal を圧縮するcron job)
journal はこんな感じです。 :
---
- :update
- 2007-03-26 17:40:16.054666 +09:00
- &id001 !ruby/OpenWFE::FlowExpressionId
s: (fei 0.9.8 engine/engine field:__definition Test 0 20070326-gobadayopa environment 0)
- !ruby/object:OpenWFE::Environment
apply_time:
attributes:
environment_id:
fei: *id001
parent_id:
variables: {}
---
- :update
- 2007-03-26 17:40:16.057057 +09:00
- &id001 !ruby/OpenWFE::FlowExpressionId
s: (fei 0.9.8 engine/engine field:__definition Test 0 20070326-gobadayopa environment 0)
- !ruby/object:OpenWFE::Environment
apply_time:
attributes:
environment_id:
fei: *id001
parent_id:
variables: {}
---
- :reply
- 2007-03-26 17:40:16.058434 +09:00
- &id001 !ruby/OpenWFE::FlowExpressionId
s: (fei 0.9.8 engine/engine field:__definition Test 0 20070326-gobadayopa participant 0.0.0)
- !ruby/object:OpenWFE::InFlowWorkItem
attributes:
___map_type: smap
__result__: |
alpha
flow_expression_id: *id001
last_modified:
participant_name: alpha
退屈だし、要約するのも大変だし…。
もっと簡単に journal を閲覧する (そして指定した journal を ‘replay’ する)ツールがあります。
...
( page under construction )