Cosminexus サービスプラットフォーム システム構築・運用ガイド

[目次][用語][索引][前へ][次へ]

6.1.5 プロセスインスタンスを再実行する

ビジネスプロセス実行中に,実行基盤のあるマシンが停止したり,サービス部品の呼び出しに失敗したりなど障害が発生し中断したプロセスインスタンスを,一件ずつ再実行できます。

また,複数のプロセスインスタンスが同一のビジネスプロセス定義名である場合,複数のプロセスインスタンスを一括再実行できます。プロセスインスタンスの実行履歴の一括再実行は,コマンドでだけ実行できます。

なお,サービスリクエスタから,ビジネスプロセスの再実行を要求して,ビジネスプロセスプロセスを再実行することもできます。サービスリクエスタによるビジネスプロセスの再実行については,「5.5.3 ビジネスプロセスの再実行」を参照してください。

<この項の構成>
(1) 画面によるプロセスインスタンスの再実行
(2) コマンドによるプロセスインスタンスの再実行
(3) 再実行のタイミング
(4) プロセスインスタンス再実行時の応答電文の出力
(5) SOAPフォルトの発生時の情報

(1) 画面によるプロセスインスタンスの再実行

(a) 一件ずつ再実行する場合

画面によってプロセスインスタンスを一件ずつ再実行する手順を次に示します。

  1. プロセスインスタンスを検索します。
    検索結果一覧に検索結果が表示されます。
  2. 検索結果一覧から,状態が「実行中」であるプロセスインスタンスを選択して,[アクティビティ情報]ボタンをクリックします。
    詳細情報一覧にアクティビティ情報が表示されます。
  3. 詳細情報一覧から,アクティビティ種別が「サービス呼出」,かつ,状態が「実行中」のアクティビティが含まれていることを確認します。
  4. [再実行]ボタンをクリックします。
    プロセスインスタンス再実行の実行確認ダイアログが表示されます。
  5. [OK]ボタンをクリックします。
    プロセスインスタンスが再実行され,プロセスインスタンス再実行の実行結果ダイアログが表示されます。
  6. [OK]ボタンをクリックします。
    検索結果一覧が更新されます。再実行に失敗した場合も,一覧は更新されます。
(b) 注意事項

HCSCサーバで処理中のプロセスインスタンスに対しては,再実行しないでください。再実行する場合は,HCSCサーバからの応答やメッセージログでエラーの内容を確認し,エラーの原因を取り除いてから,プロセスインスタンスを再実行してください。

(2) コマンドによるプロセスインスタンスの再実行

(a) 一件ずつ再実行する場合

コマンドによってプロセスインスタンスを一件ずつ再実行する手順を次に示します。

  1. アクセスするHCSCサーバを決定します。
  2. cscpiselectコマンドで,実行中のサービス呼出アクティビティを含むプロセスインスタンスを検索します。
  3. 再実行対象のプロセスインスタンスのプロセスID,およびビジネスプロセス定義名を特定します。
  4. 次のコマンドを実行して再実行します。
     
    cscpireexec -user <ログインユーザID> -pass <ログインパスワード> -csc <HCSCサーバ名> {-processid <プロセスID>|-processidfile <プロセスIDファイル名>} {-processnamefile <ビジネスプロセス定義ファイル名>|-processname <ビジネスプロセス定義名>}
     

    注※ どちらか一つを指定します。


(例)次の条件で,コマンドを入力して,プロセスインスタンスを再実行します。
  • 取得対象のプロセスID:MyServer_010209010042_XXXPurchaseRegisterService_1142575786734_7018547949_143
  • ビジネスプロセス定義名:XXXPurchaseRegisterService
  • アクセスするHCSCサーバ:MyCSC
コマンド
 
cscpireexec -user <ログインユーザID> -pass <ログインパスワード> -csc MyCSC -processidfile process_id.txt -processname "XXXPurchaseRegisterService"
 
process_id.txtの内容
 
MyServer_010209010042_XXXPurchaseRegisterService_1142575786734_7018547949_143
 
出力結果
[図データ]

cscpireexecコマンドの詳細については,「10. コマンド」の「cscpireexec(プロセスインスタンスの再実行)」を参照してください。

(b) 一括して再実行する場合

コマンドによってプロセスインスタンスを一括再実行する手順を次に示します。

  1. アクセスするHCSCサーバを決定します。
  2. 再実行対象のプロセスインスタンスのビジネスプロセス定義名を特定します。
  3. 次のコマンドを実行して再実行します。
     
    cscpireexec -user <ログインユーザID> -pass <ログインパスワード> -csc <HCSCサーバ名> {-processname <ビジネスプロセス定義名>|-processnamefile <ビジネスプロセス定義ファイル名>}
     

    注※ どちらか一つを指定します。


(例)次の条件で,コマンドを入力して,プロセスインスタンスを一括して再実行します。
  • ビジネスプロセス定義名:XXXPurchaseRegisterService
  • アクセスするHCSCサーバ:MyCSC
コマンド
 
cscpireexec -user <ログインユーザID> -pass <ログインパスワード> -csc MyCSC -processname "XXXPurchaseRegisterService"> yyyymmdd_reexec_result.txt
 

cscpireexecコマンドの詳細については,「10. コマンド」の「cscpireexec(プロセスインスタンスの再実行)」を参照してください。

(c) 注意事項

HCSCサーバで処理中のプロセスインスタンスに対しては,再実行しないでください。再実行する場合は,HCSCサーバからの応答やメッセージログでエラーの内容を確認し,エラーの原因を取り除いてから,プロセスインスタンスを再実行してください。

(3) 再実行のタイミング

画面やコマンドで実行履歴を検索してから再実行するまでの間に生じる時間差によって,検索結果に表示されたプロセスインスタンス実行履歴の状態と,実際のプロセスインスタンス実行履歴の状態が異なることがあります。この場合,「完了」,または「フォルト終了」状態のプロセスインスタンスに対して,再実行をしても,実際には,再実行は失敗し実施されません。そのため,できる限り最新の情報を取得して再実行を実施します。

(4) プロセスインスタンス再実行時の応答電文の出力

プロセスインスタンスを再実行した結果,成功した場合もSOAPフォルトの発生で失敗した場合も,プロセスインスタンスから応答電文を受け取ることがあります。このような場合,HCSC-Manager定義ファイルに次に示す内容を設定して,応答電文をファイルに出力できます。

 
cscmng.pireexec.response.dir=応答電文格納ディレクトリ
cscmng.pireexec.response.encoding=応答電文格納文字コード
 

HCSC-Manager定義ファイルの作成については,「2.4.1(1) HCSC-Manager定義ファイルの作成」を,HCSC-Manager定義ファイルの詳細については,「9. 定義ファイル」の「HCSC-Manager定義ファイル」を参照してください。

なお,プロセスIDは長い文字列(最大240文字)になる可能性があります。応答電文出力ディレクトリに深いディレクトリ階層を設定すると,ファイルを生成できない場合があるため注意してください。再実行しても,応答電文ファイルが生成されない場合はメッセージが出力されます。

(5) SOAPフォルトの発生時の情報

プロセスインスタンスの再実行がSOAPフォルトの発生で失敗した場合,プロセスインスタンスから受け取るSOAPフォルト情報の種類と取り扱いを次に示します。