9.6.10 再開可能なアクティビティのサポート
アクティビティ・プロセッサのインスタンスが例外の戻りコードで終了したときに、アクティビティに
属性が定義されている場合は、処理シーケンス実行を問題が発生した箇所から再開できる場合があります。アクティビティ定義で「アクティビティの詳細」を参照してください。
属性を設定する詳細については、処理シーケンスを再開できるかどうかに影響する条件の詳細については、「処理シーケンス実行の再開」を参照してください。
アクティビティに
を定義するかどうかは、以下のような要因を考慮して判断します。· 再開が必要なアクティビティ・プロセッサによって例外が返された場合のリスク
· リスクを考慮した場合、ビジネス・プロセス統合ソリューションでほぼ自動的に再開を処理する必要性があるか
· アクティビティが実行する作業の論理単位の性質
· その作業を実行するために必要な処理ステップの性質
· それらのステップを実装する方法、および問題が発生した箇所から正確な信頼性の高い形で処理を再開するために、変数プールの変数データまたはその他の手段を介して十分な情報を利用できるか
決定を行う際には、アクティビティ・プロセッサを
に記述するには、通常、高い技術とLANSA Composerの処理に関する十分な知識が必要だということ、およびエラーが発生しやすくなるということを理解する必要があります。以下の点を念頭に置いてください。
· LANSA Composerが処理シーケンスを再開できるかどうかは、アクティビティが前に返したエラー状態に左右されます(プログラムの異常終了によって終了した処理シーケンスは再開できません)。したがって、アクティビティの戻りコードでエラーが設定されるような状況がアクティビティ・プロセッサにない場合(および反復アクティビティでない場合)は、再開機能を実装してもあまり意味がありません。
· LANSA Composerに用意されている多くの一般的な転送およびアクティビティは再開可能です。ビジネス・プロセス統合ソリューションで問題が発生するリスクを検討した結果、独自のアクティビティ・プロセッサにカプセル化された領域で問題が発生するリスクよりも、通常の動作において問題が発生するリスクのほうが大きいという結論に達することもあるでしょう。その場合は、アクティビティ・プロセッサに再開機能を実装してもそれほどメリットはないでしょう。
· アクティビティの実行中に例外が発生するリスクは、想定される反復回数や通常の反復回数および反復のたびに処理シーケンス・コントローラによって実行される項目の数と性質に比例して大きくなります。反復アクティビティの場合はリスクが大きく(また、明確でない)ことが多いため、このようなアクティビティの場合は再開機能を実装するメリットが大きいでしょう。
アクティビティ・プロセッサに再開機能を実装する場合は、以下の点にご注意ください。
· 問題が発生した箇所から正確な信頼性の高い形で処理を再開するために、変数プールの変数値またはその他の手段を介して、アクティビティ・プロセッサが十分な情報を取得できるように、ソリューションを実装する必要があります。
· 適切なポイントから有効に処理を再開するために、ソリューションが(必要な限り)状態を再構築できるように、ソリューションを実装する必要があります。
· 反復アクティビティの場合は、問題が発生した反復から処理を再開する必要があります。
· DXACTBAS1 Ancestorクラスにはいくつかのプロパティがあり、アクティビティ・プロセッサがこれを参照して、再開処理が必要かどうか、必要な場合はどのポイントから再開するかを決定することができます。プロパティの一部を以下に示します。個々のプロパティの詳細については、Visual LANSA IDEの機能ヘルプを参照してください。
· CurrentIteration
· Restartable
· RestartingChild
· RestartingThis