共通APIを利用した非同期メッセージの送信でエラーが発生した場合、送信メッセージをJMSキューに退避します。これにより送信エラーが発生した場合、業務を停止することなく継続できます。
エラーを回避後、コマンドを実行して、退避用のJMSキューに格納されている送信メッセージを再送信できます。
なお、送信エラー発生時にメッセージをJMSキューへ退避するかどうは、環境設定ファイルで指定できます。
環境設定ファイルの詳細は、“ISI 導入ガイド”を参照してください。
退避できるのは、非同期通信で、JMS-Rのキューを使用している場合だけです。
退避した非同期メッセージを再送信するには、以下の手順で行います。
図1.62 再送信の手順
ステータスの変更(発行禁止)
esiclisetstatusコマンドを実行して、リカバリを実行するサービスエンドポイントまたはキューに対する非同期メッセージ送信APIの発行許可ステータスを「非同期メッセージ送信API発行禁止状態」にします。これにより、特定のキューや、特定のサービスエンドポイントへのメッセージの発行ができないようにします。
esiclisetstatusコマンドの詳細は、“ISI リファレンス”を参照してください。
退避用のキューのバックアップ
esiclibackupコマンドを実行して、退避用のJMSキューに格納されている送信メッセージを指定したファイル(zip形式)にバックアップします。万一のために、バックアップを実施します。その後問題が発生しなければ、バックアップを利用することはありません。
esiclibackupコマンドの詳細は、“ISI リファレンス”を参照してください。
退避用のキューから再送信
esiclirecoveryコマンドを実行して、退避用のJMSキューに格納されている送信メッセージを、特定のキューや、特定のサービスエンドポイント単位に、JMS-Rのキューへ格納します。格納されたメッセージは自動的に処理を開始します。
また、退避用のJMSキューに格納されていたメッセージは、コマンドが正常に終了すると削除されます。
esiclirecoveryコマンドの詳細は、“ISI リファレンス”を参照してください。
ステータスの変更(発行許可)
esiclisetstatusコマンドを実行して、リカバリを完了したサービスエンドポイントまたはキューに対する非同期メッセージ送信APIの発行許可ステータスを「非同期メッセージ送信API発行許可状態」にします。
esiclisetstatusコマンドの詳細は、“ISI リファレンス”を参照してください。
非同期メッセージの保証では、以下の点に注意してください。
一度メッセージ送信でエラーが発生した場合、esiclirecoveryコマンドで退避用のJMSキュー内のメッセージを再送信しない限り、エラー発生後に送信された非同期メッセージは、すべて退避用のJMSキューに格納されます。
esiclirecoveryコマンドで退避用のJMSキュー内のメッセージ送信が完了すると、エラーが発生したサービスエンドポイントまたはキューに対して、共通APIのメッセージ送信APIからのメッセージ送信が可能になります。