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

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

長期実行プロセスのアクティビティーで、障害が発生することがあります。 これらの障害が、囲んでいるスコープ内で障害ハンドラーによって 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'",
                        (String)null, (Integer)null, (TimeZone)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 です。 この値は、障害が発生した場合、アクティビティーは失敗状態になることを意味し ます。障害は、処理されるかプロセス・スコープ に到達するまで、アクティビティーの囲んでいる スコープに伝搬されます。次にプロセスは障害状態 になり、最終的に失敗状態になります。

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

(c) Copyright IBM Corporation 2005, 2006. All rights reserved.
(c) Copyright IBM Japan 2006
このインフォメーション・センターでは、Eclipse テクノロジー (http://www.eclipse.org) が採用されています。