• 文字サイズ変更
  • S
  • M
  • L

FAQのNo.から検索


  • No : 26033
  • 公開日時 : 2016/12/01 00:01
  • 更新日時 : 2020/09/29 17:10
  • 印刷

【DataSpider BPM】 DataSpider BPM のサービス停止時に実行していたスクリプトがもう一度実行されました

「メッセージ中間イベント(DataSpider Servista)」で DataSpider Servistaのスクリプトを実行しています。
 
実行しているスクリプトで時間がかかっていたのでレスポンスを受信する前にDataSpider BPM のサービスを停止したところ、次に起動したときに、サービス停止時に実行していた「メッセージ中間イベント(DataSpider Servista)」からスクリプトがもう一度実行されました。
 
原因と対処方法を教えてください。
 
カテゴリー : 

回答

■原因
 
バージョン 2.2 以前の場合、製品の仕様となります。
サービス停止時に「メッセージ送信中間イベント(DataSpider Servista)」を実行していて、結果が取得できなかった場合、サービスが起動した時点で、そのタスクをもう一度実行します。このため、スクリプトが再度実行されます。
 
■対処方法
 
バージョン 2.3 にアップグレードすることで、対象のタスクが「処理失敗」として終了し、サービスを起動した際には、次のタスクが実行されます。このため、サービス起動時にスクリプトは再度実行されません。
 
アップグレードが難しい場合には、以下の回避策をご検討ください。
  •  プロセス ID による重複実行の回避
「メッセージ送信中間イベント(DataSpider Servista)」のプロセスIDは、プロセスモデルが開始した際に発番されるため、同一プロセスで、同一のタスクを複数回実行した場合でも、同一の値となります。
 
このため、DataSpider BPM と、DataSpider Servista の連携について以下のように修正することで、重複した実行を避けることができます。
  • DataSpider BPM
「メッセージ送信中間イベント(DataSpider Servista)」で、実行するスクリプトに「プロセスID」を渡すように設定してください。
  • DataSpider Servista
  • 「メッセージ送信中間イベント(DataSpider Servista)」から送信されてきた「プロセスID」を登録するファイルかデータベースを用意します。
  • スクリプトの最初に、送信されてきた「プロセスID」でファイルかデータベースを検索し、既に存在している場合には、スクリプトを終了する処理を追加します。
 
■補足
 
「メッセージ送信中間イベント(DataSpider Servista)」の使用頻度が低い場合にはDataSpider BPM のサービスを停止する前に、スクリプトが稼働中でないか確認してから停止することで、事象を回避することもできます。
 
DataSpider Servista で実行しているスクリプトを確認するためには、DataSpider Studio のタスクマネージャから「スクリプトプロセス」を確認するか、CLI Consoleから、psコマンドを実行してください。 
 
 
参考情報
 
・タスクマネージャ
 
・CLI Console
 
目的別で検索
トラブルシューティング