無効な MQRFH2 ヘッダー

MQPUT、MQPUT1、または MQGET 呼び出しの処理の時点で、メッセージにある MQRFH2 ヘッダーの部分構文解析が実行され、中にあるフォルダーがチェックされ、フォルダーの中にプロパティーがあるかが判別されます。 無効な MQRFH2 ヘッダーについて

StrucLength フィールドが小さ過ぎるなどの理由で、構造が無効であるためにメッセージの部分構文解析が正常に完了できない場合は、以下のようになります。
  • アプリケーションに何らかの IBM® WebSphere® MQ 7 オプションが含まれていることが判別でき、既存のアプリケーションが失敗しない場合、MQPUT または MQPUT1 呼び出しは理由コード MQRC_RFH_ERROR で失敗します。
  • MQGET 呼び出しが正常に戻った場合は、エラーがある MQRFH2 は指定されたバッファーに戻されます。
特定のフォルダーにプロパティーが含まれているかどうかが検出できないために部分的な構文解析が失敗した場合 (例えば、フォルダーが <<jmsで始まるために、フォルダー名が判別される前に構文解析が失敗した場合)、以下のようにします。
  • アプリケーションに何らかの IBM WebSphere MQ 7 オプションが含まれていることが判別でき、既存のアプリケーションが失敗しない場合、MQPUT または MQPUT1 呼び出しは失敗し、理由コード MQRC_RFH_FORMAT_ERROR が戻ります。
  • MQGET 呼び出しが正常に戻った場合は、エラーがある MQRFH2 は指定されたバッファーに戻されます。
  • キュー・マネージャー内部において、正しく形式設定されていないフォルダーが原因でメッセージが拒否されることはありませんが、そのようなフォルダーは中にプロパティーが含まれていないかのように常に扱われます。
メッセージ中に以下に示す条件に当てはまるフォルダーが 1 つ以上含まれている場合、そのメッセージの 1 つのフォルダーに前述のような構文エラーが含まれていても、それは構文解析されず、検出もされないため、キュー・マネージャー・ネットワークを通過することがあります。
  • 有効
  • 構文解析成功
  • メッセージの処理で使用済み
このため、検出は保証されていません。

アプリケーションの 1 つが MQSETMP-メッセージ・プロパティーの設定または MQINQMP を使用してプロパティーにアクセスすると、 MQRFH2 フォルダーが完全に構文解析され、構文解析が完了しないエラーが検出されます。これは、API 呼び出しに対する適切な戻りコードによって示されます。 そのフォルダーに、アプリケーションで使用できるようにされたプロパティーはありません。

MQRFH2 フォルダーの構文解析が試行されて完全に行われ、認識されていないエレメント属性または認識されていないデータ・タイプがパーサーによって検出された場合でも、解析は続行され、警告が出されることなく正常に完了します。 これは、解析エラーにはなりません。