2031 (07EF) (RC2031): MQRC_MSG_TOO_BIG_FOR_Q_MGR
説明
キューにメッセージを書き込む MQPUT 呼び出しまたは MQPUT1 呼び出しが発行されましたが、メッセージがキュー・マネージャーの最大長より大きく、MQMD 内の MsgFlags フィールドに MQMF_SEGMENTATION_ALLOWED が指定されていませんでした。 セグメント化が許可されていない場合、メッセージの長さは、キュー・マネージャーの MaxMsgLength 属性とキューの MaxMsgLength 属性の小さい方を超えることはできません。
この理由コードは、MQMF_SEGMENTATION_ALLOWED を指定した 場合に、メッセージ内にあるデータの性質が原因で、キュー・マネージャーがキュー・マネージャーの制限に適合する長さのいくつかのセグメントにメッセージを分割できない場合にも戻されることがあります。
- ユーザー定義形式の場合、キュー・マネージャーが作成できる最小のセグメントは 16 バイトです。
- 組み込み形式の場合、キュー・マネージャーが作成できる最小のセグメントは、それぞれの形式によって異なりますが、MQFMT_STRING (最小セグメント・サイズは 16 バイト) 以外は、どの形式でも 16 バイトより大きくなります。
MQRC_MSG_TOO_BIG_FOR_Q_MGR は、レポート・メッセージのメッセージ記述子内の Feedback フィールドにも戻されることがあります。
この場合は、メッセージ・チャネル・エージェントが、リモート・キューにメッセージを書き込もうとしたときにエラーを検出したことを示します。
さらに、メッセージが通過するチャネルが、 キュー・マネージャーによって実際にサポートされるよりも小さい値に最大メッセージ長を制限しており、 メッセージ長がこの値より大きな場合にも、この理由コードが戻される。
完了コード
MQCC_FAILED
プログラマー応答
BufferLength パラメーターが正しく指定されているかどうかを調べてください。このパラメーターが正しく指定されている場合は、次のいずれかの処置を取ってください。
- キュー・マネージャーの MaxMsgLength 属性の値を増やします。キューの MaxMsgLength 属性も増やす必要がある場合があります。
- メッセージを複数の小さなメッセージに分割してください。
- MQMD の
MsgFlagsフィールドで MQMF_SEGMENTATION_ALLOWED を指定してください。 この値を指定すると、キュー・マネージャーでメッセージがいくつかのセグメントに分割されるようになります。 - チャネル定義を調べてください。