Oracle Workflow APIリファレンス リリース2.6.3.5 部品番号: B15622-01 |
![]() |
![]() |
![]() |
![]() |
![]() |
||
前へ | 次へ | 目次 | 索引 | 用語集 |
非同期プロセスには、フローを中断するアクティビティが含まれます。このため、ワークフロー・エンジンは非同期プロセスの実行を待機します。非同期プロセスを要求するアクティビティには、遅延アクティビティ、応答を必要とする通知、ブロック・アクティビティ、待機アクティビティなどがあります。ワークフロー・エンジンがこれらのアクティビティを検出すると、無期限に待機するのではなく、監査表を適切に設定したうえでコール元のアプリケーションに制御を返します。ワークフロー・プロセスは、再開されるまで未完了の状態になります。このプロセスは、通知システム(ユーザーが通知に応答したときなど)、バックグラウンド・エンジン(遅延アクティビティが実行されたときなど)、またはビジネス・イベント・システム(イベント・メッセージが受信キューからデキューされ、ワークフロー・プロセスに送信されたときなど)によって再開されます。非同期プロセスの場合、ユーザーはプロセスが完了するまで待機する必要がなく、アプリケーションの使用を続行できます。 ただし、プロセスの結果は、プロセスが完了するまで確認できません。
ワークフロー・エンジンでは、通常の同期プロセスと非同期プロセスの他に、強制同期プロセスと呼ばれる、特別な種類の同期プロセスも使用できます。強制同期プロセスは、開始から終了まで1つのSQLセッションで完了し、データベース表に対して挿入または更新を行いません。そのため、強制同期プロセスの実行速度は、通常の同期プロセスよりもかなり速くなります。プロセスの結果は、完了時にすぐに確認できます。 ただし、監査証跡は記録されません。
強制同期プロセスは、監査証跡を記録する必要がなく、特定の結果をすばやく出力するときに使用します。たとえば、Oracle Applicationsで、複数の製品で勘定科目生成処理ワークフローを使用して、様々な表から導出された一連の連結セグメントによって、有効なフレックスフィールド・コードを生成する場合です。 この場合は、勘定科目生成処理ワークフローが強制同期プロセスとなり、ここで計算が実行され、完了したフレックスフィールド・コードが、コールしたアプリケーションに即時に戻されます。
強制同期プロセスを作成するには、プロセスの項目キーを#SYNCHまたはwf_engine.eng_synchに設定する必要があります。これにより、必要なWF_ENGINE APIをコールすると、#SYNCH定数が戻されます。強制同期プロセスでは、データベースに対して書込みを行わないため、#SYNCHなどの重複した項目キーを使用しても問題ありません。 ただし、プロセス定義は次の制限事項に従う必要があります。
注意: 強制同期プロセスでエラーが見つかった場合は、同期モードで一意の項目キーを使用してプロセスに戻り、ワークフロー・モニターまたはスクリプトwfstat.sqlを使用してエラー・スタックをチェックする必要があります。同期プロセスが正常終了しているのに、強制同期プロセスでエラーが見つかった場合は、前述の制約に違反していることが原因と考えられます。 『Oracle Workflow管理者ガイド』のWfstat.sqlに関する項を参照してください。
注意: プロセス・インスタンスの項目キーに使用できるのは、1バイトのキャラクタのみです。マルチバイトの値を含めることはできません。
前へ | 次へ | 目次 | 索引 | 用語集 |