7.1.1 キューおよびキューファイルの障害とユーザの処理
キューおよびキューファイルの障害に対するユーザの処理について説明します。
MQPUT命令で相手システムがメッセージを送信する場合を例にして,キューおよびキューファイルの障害発生個所について,次の図に示します。また,キューおよびキューファイルの障害とユーザの処理について,図のあとの表に示します。図中の障害の発生個所を示す番号は,表の発生個所と対応づけてあります。
発生個所 |
障害の種類 |
障害内容・原因 |
MQAの 障害処理 |
ユーザの処理 |
---|---|---|---|---|
1 |
転送キュー障害 |
転送キューの属性不正(登録禁止) |
MQPUTまたはMQPUT1エラーリターン |
MQSET命令またはmqasetコマンドで登録許可に変更後,アプリケーションを再実行してください。 |
転送キューの属性不正(使用方法が転送キュー(MQUS_TRANSMISSION)でない) |
転送キューを再作成後,アプリケーションを再起動してください。 転送キューの再作成方法
|
|||
入力用バッファ不足(メモリ不足) <26188-E>「入出力バッファが満杯」 |
MQAサービス定義で該当キューファイルグループの入出力バッファ数を大きくして,TP1/Message Queueを正常開始してください。 |
|||
2 |
転送キュー障害 |
転送ヘッダなし,転送ヘッダ不正(転送キューに対しMQPUT命令を呼び出し) <16334-E>「メッセージ異常検出」 |
送信側のデッドレターキューに登録,ログへメッセージ出力 |
リモートキューのローカル定義をオープンしMQPUT命令を呼び出すようアプリケーションを修正し,再実行してください。 |
2〜5 |
キューファイル障害 |
入出力エラー 送信側:<04200-E>「I/Oエラー」 受信側:<04200-E>「I/Oエラー」 |
キューファイルを障害閉塞状態とし,アプリケーションからのアクセスはエラー 受信側にデッドレターキューあり
受信側にデッドレターキューなし
|
「7.1.4 キューファイルの入出力エラー」を参照してください。 |
3 |
転送キュー障害 |
転送キューオーバフロー |
MQPUTエラーリターン,通信路を回復すると,メッセージを自動送信 |
回線またはチャネル状態を確認して回復してください。アプリケーションを再実行してください。 |
4 |
受信キュー障害 |
受信キューの属性不正(登録禁止) 送信側:<16335-W>「デッドレターキューに登録」 受信側:<16333-E>「キューファイル障害発生」 |
チャネル停止後送信側のデッドレターキューに登録,ログへメッセージ出力 |
MQSET命令またはmqasetコマンドで登録許可に変更後,アプリケーションを再実行してください。 |
入力用バッファ不足(メモリ不足) 受信側:<26188-E>「入出力バッファが満杯」 |
受信側のデッドレターキューに登録,ログへメッセージ出力 |
MQAサービス定義で該当キューファイルグループの入出力バッファ数を大きくして,TP1/Message Queueを正常開始してください。 |
||
受信キュー満杯
受信側:<16333-E>「キューファイル障害発生」 |
受信側のデッドレターキューに登録,ログへメッセージ出力 |
受信キューの最大メッセージ数を増やしてください。またはmqainitコマンドのメッセージ数を増やしてください。 |
||
受信キューなし
<16333-E>「キューファイル障害発生」 |
受信キューを再作成後,アプリケーションを再起動してください。 |
|||
5 |
イニシエーションキュー障害 |
イニシエーションキューの属性不正(使用方法が正常(MQUS_NORMAL)でない) 受信側:<04229-E>「イニシエーションキューの使用種別」 |
トリガメッセージを生成しないでログへメッセージ出力 |
イニシエーションキューを再作成後,アプリケーションを再起動してください。 |
イニシエーションキューの属性不正(キュータイプがローカルキュー(MQQT_LOCAL)でない) |
イニシエーションキューの再作成方法
|
|||
イニシエーションキューの属性不正(登録禁止) |
トリガメッセージを生成しない |
MQSET命令またはmqasetコマンドで登録許可に変更後,アプリケーションを再実行してください。 |
||
イニシエーションキューを指しているローカルキューの属性不正(プロセス名の指定なし) 受信側:<04228-E>「プロセス定義がない」 |
トリガメッセージを生成しないでログへメッセージ出力 |
イニシエーションキュー,ローカルキュー,プロセス定義のどれかを再作成後,アプリケーションを再起動してください。 |
||
イニシエーションキューを指しているローカルキューの属性不正(プロセス名の指定はあるがプロセス定義なし) 受信側:<04228-E>「プロセス定義がない」 |
イニシエーションキューおよびローカルキューの再作成方法 「イニシエーションキューの再作成方法」を参照してください。 プロセス定義の再作成方法 TP1/Message Queueを終了し,MQAサービス定義を修正後,TP1/Message Queueを正常開始してください。 |
|||
イニシエーションキュー満杯
受信側:<04241-E>「トリガメッセージの登録に失敗」 |
イニシエーションキューが存在するキューマネジャに定義されているデッドレターキューにトリガメッセージを登録し,ログへメッセージ出力 |
イニシエーションキューの最大メッセージ数を増やしてください。またはmqainitコマンドのメッセージ数を増やしてください。 |
||
イニシエーションキューなし
送信側:<04227-E>「イニシエーションキューがない」 |
トリガメッセージを生成しないでログへメッセージ出力 |
イニシエーションキューを作成後,アプリケーションを再起動してください。またはTP1/Message Queueを終了してイニシエーションキュー名を修正(mqachgqueコマンド,モデルキュー定義修正)後,TP1/Message Queueを正常開始してください。 |
||
6 |
デッドレターキュー障害 |
デッドレターキュー満杯
送信側:<16345-E>「エラーデータ受信」 受信側:<16333-E>「キューファイル障害発生」 |
ログへメッセージ出力 |
デッドレターキューの最大メッセージ数を増やしてください。またはmqainitコマンドのメッセージ数を増やしてください。 |
デッドレターキューなし
|
デッドレターキューを作成後,アプリケーションを再起動してください。またはTP1/Message Queueを終了し,デッドレターキュー名を修正(キューマネジャ定義修正)後,TP1/Message Queueを正常開始してください。 |
|||
デッドレターキューの属性不正(登録禁止) 送信側:<16345-E>「エラーデータ受信」 受信側:<16333-E>「キューファイル障害発生」 |
MQSET命令またはmqasetコマンドで登録許可に変更後,アプリケーションを再実行してください。 |