サービスおよびプロセス・インスタンスで無限ループを検出して処理するために使用できる、一連のループ検出プロパティーがあります。
サービス・エンジンは、サービスの実行時間が超過すると、 SystemOut.log にメッセージを出力するか、サービスを停止します。 エンジンが実行するアクションは、loop-detection-exception プロパティーによって決まります。true に設定されている場合、エンジンはサービスを停止して、例外を生成します。デフォルトでは、このプロパティーは false に設定されています。
サービス・エンジンが停止していることをサービスを含んでいる BPD インスタンスに対して通知するには、例外が使用されます。
<service-engine>
<loop-detection-duration>120</loop-detection-duration>
<loop-detection-exception>false</loop-detection-exception>
</service-engine>
<bpd-engine>
<loop-detection-duration>60</loop-detection-duration>
</bpd-engine>
BPD インスタンスは無限ループの状態ではないのに、「CWLLG0871W: ビジネス・プロセス定義 (BPD) インスタンス {0} が {1} 秒間にわたって実行されており、無限ループに入っている可能性があります」というメッセージが SystemOut.log に含まれる場合は、BPD エンジンの loop-detection-duration の値を変更することを検討してください。
例えば、4 分 (240 秒) を経過したらサービスを停止するようにサービス・エンジンを変更するには、以下のコードを 100Custom.xml ファイルに追加します。
<server merge="mergeChildren">
<service-engine merge="mergeChildren">
<loop-detection-duration merge="replace">240</loop-detection-duration>
<loop-detection-exception merge="replace">true</loop-detection-exception>
</service-engine>
</server>