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