アクティビティーの強制完了

このタスクを実行する理由と時期

長期実行プロセスのアクティビティーで、障害が発生することがあります。 これらの障害が、囲んでいるスコープ内で障害ハンドラーによって catch されておらず、関連した アクティビティー・テンプレートが、エラー発生時にアクティビティーが停止するように指定している場合、 アクティビティーは修復することができるように停止状態になります。この状態で、 アクティビティーの完了を強制することができます。

例えば、アクティビティーが応答しない場合、実行状態のアクティビティーを強制的に完了することもできます。

特定のタイプのアクティビティーでは、追加要件が 存在します。
staff アクティビティー
送信されるはずだったメッセージ、または引き起こ されるはすだった障害など、強制完了呼び出しで パラメーターを渡すことができます。
script アクティビティー
強制完了呼び出しで、パラメーターを渡すことは できません。ただし、修復する必要がある変数を 設定する必要があります。
invoke アクティビティー
invoke アクティビティーが実行状態の場合、 サブプロセスでない非同期サービスを呼び出す invoke アクティビティーを強制的に完了することもできます。 例えば、非同期サービスが呼び出されて応答がない 場合、こうすることがあります。

このタスクのステップ

  1. 停止状態の停止アクティビティーをリストします。
    QueryResultSet result =
         process.query("DISTINCT ACTIVITY.AIID",
                       "ACTIVITY.STATE = ACTIVITY.STATE.STATE_STOPPED AND
                        PROCESS_INSTANCE.NAME='CustomerOrder'",
                        null, null, null);

    このアクションは、 CustomerOrder プロセス・インスタンスに対して停止 アクティビティーを戻します。

  2. 例えば、停止したスタッフ・アクティビティーなどのアクティビティーを完了します。

    この例では、出力メッセージが渡されます。

    if (result.size() > 0)
    {
       result.first();
       AIID aiid = (AIID) result.getOID(1);
       ActivityInstanceData activity = process.getActivityInstance(aiid);
      ClientObjectWrapper output =
            process.createMessage(aiid, activity.getOutputMessageTypeName());
      DataObject myMessage = null;
      if ( output.getObject()!= null && output.getObject() instanceof DataObject )
       {
         myMessage = (DataObject)output.getObject();
         //set the parts in your message, for example, an order number
         myMessage.setInt("OrderNo", 4711);
       }
    
       boolean continueOnError = true;
       process.forceComplete(aiid, output, continueOnError);
    }

    このアクションによって、 アクティビティーが完了します。エラーが発生した場合 、continueOnError パラメーター によって、forceComplete 要求の処理中にエラーが発生した場合に実行するアクションが 決まります。

    例では 、continueOnError が true です。 この値は、forceComplete 要求の処理中にエラーが発生 した場合、アクティビティーは失敗状態になることを意味し ます。障害は、処理されるかプロセス・スコープ に到達するまで、アクティビティーの囲んでいる スコープに伝搬されます。次にプロセスは障害状態 になり、最終的に失敗状態になります。

関連概念
ビジネス・プロセスおよびタスク関連オブジェクトに対する照会

ご利用条件 |


(c) Copyright IBM Corporation 2005, 2006.
本製品では Eclipse テクノロジーが採用されています。(http://www.eclipse.org)