プロセスの Type プロパティを、「短時間のみ有効」または「長期間有効」に設定することができます。基本的に、短時間のみ有効なプロセスに実行時に必要となるサーバーリソースは、長期間有効のプロセスに比べて少なくなります。可能であれば、プロセスは短時間のみ有効となるように設定してください。
ただし、指定した値は、実行時にプロセスを実行する方法および保存されるデータに影響を及ぼします。また、プロセスのメインブランチのタイプもこの値によって決定するほか、ゲートウェイ要素を使用してプロセスダイアグラムに追加できるブランチのタイプも決定します。プロセスの Type プロパティを設定するときは、これらの要因すべてを考慮する必要があります。
注意: プロセスデータモデルの
id ノードに格納される値は、短時間のみ有効なプロセスの場合は常に -1 となります。長期間有効なプロセスの場合は、この値は英数字文字列です(
プロセスデータモデルを参照)。
実行
プロセスの実行に要する時間の長さは、Type プロパティを設定するときに考慮する必要のある要因の 1 つです。
プロセスを「短時間のみ有効」に設定するのは、実行に要する時間がごく短い(ミリ秒単位である)場合です。短時間のみ有効なプロセスは、1 つのトランザクションで実行されます(トランザクションおよびブランチのタイプを参照)。実行時間が短ければ、トランザクションの中でシステム障害が発生するリスクは低くなります。
プロセスを「長期間有効」に設定するのは、実行に長時間かかる操作がある場合です。長期間有効プロセスの中の操作は、それぞれ別のトランザクションで実行されます。
プロセスを「長期間有効」に設定する必要があるのは、プロセスの進行が、そのプロセスの実行とは独立して(プロセスの外部で)動作する(非同期実行)リソースからのメッセージングによって決まる場合です。
例えば、プロセスで User サービスまたはイベントレシーバーを使用する場合は、「長期間有効」に設定してください。
User サービスの Assign Task 操作が完了するのは、関連付けられたタスクがユーザーによって Workspace を使用して送信されたときです。
イベントレシーバーとイベントスタートポイントは、イベントがスローされるのを待ってプロセスを続行します。
クライアントの起動
プロセスの Type プロパティは、クライアントソフトウェアとプロセスインスタンスとがどのように相互作用するかに影響を及ぼします。
クライアントソフトウェアが短時間のみ有効なプロセスを起動すると、クライアントソフトウェアはプロセスインスタンスが完了するまで待ってから自身の実行を続行します。プロセスインスタンスが完了すると、ただちにプロセス出力データがクライアントに返されます。
クライアントソフトウェアが長時間有効なプロセスを起動すると、クライアントソフトウェアの実行はプロセスインスタンスの実行中も続行します。クライアントソフトウェアは、プロセス完了後にプロセス出力データを取得する必要があります。
データ永続化
プロセスデータがデータベースに保存されるかどうかは、プロセスの Type プロパティによって決まります。プロセスの操作間でデータを受け渡す場合は、そのデータをデータベースに保存する必要があります。また、組織によっては、プロセスインスタンスの中で発生したあらゆるものの記録を取ることがポリシーで定められていることがあります。それ以外の場合は、詳細な記録を残すことよりも記憶容量の節約が重要かどうかを開発者が決定できます。
プロセスが長期間有効と設定されるのは、操作間でデータの受け渡しが必要である場合や、プロセスインスタンスの完全な記録を残す必要がある場合です。
プロセスが短時間のみ有効と設定されるのは、操作間でデータの受け渡しをしない場合や、プロセスインスタンスの記録が必要ない場合です。
プロセスのタイプ
|
保存される情報
|
長期間有効
|
すべてのプロセス情報が保存されます。
プロセスインスタンスのデータ
ブランチインスタンスのデータ
操作インスタンスのデータ
|
短時間のみ有効
|
プロセスの情報は保存されません。
|
注意: 短時間のみ有効なプロセスの情報はデータベースに保存されないので、実行時に使用されるリソースは少なくなり、したがって実行効率が向上します。
ブランチのタイプ
プロセスが長期間有効か短時間のみ有効かによって、サポートされるブランチのタイプは次のように異なります。
短時間のみ有効なプロセスでサポートされるのは、トランザクションブランチのみです。短時間のみ有効なプロセスのメインブランチは、トランザクションブランチです。
長期間有効なプロセスでは、非同期、同期およびトランザクションのブランチがサポートされます。
注意: 短時間のみ有効なプロセスにはゲートウェイ要素を追加できません。2 つ以上のブランチを並行して実行するには、長期間有効なプロセスを使用する必要があります。