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 を指定してください。 この値を指定すると、キュー・マネージャーでメッセージがいくつかのセグメントに分割されるようになります。
  • チャネル定義を調べてください。