Hitachi

OpenTP1 Version 7 OpenTP1 メッセージキューイング機能 TP1/Message Queue プログラム作成の手引


9.7 登録に失敗する状況

メッセージを登録したいキューに登録が許可されていない場合には,MQPUT命令とMQPUT1命令は失敗し,MQRC_PUT_INHIBITEDの理由コードを返します。他アプリケーションからキューの属性を定期的に変更するように設計しているときなどには,あとから実行することによってメッセージの登録を成功させることができます。

また,メッセージを登録したいキューが満杯の場合は,MQPUT命令またはMQPUT1命令は失敗し,MQRC_Q_FULLを返します。

動的キュー(一時的動的キューまたは永続的動的キュー)が削除された場合,取得済みのオブジェクトハンドルを使用しているMQPUT命令は失敗し,MQRC_Q_DELETEDの理由コードを返します。この場合,使用しなくなったオブジェクトハンドルをクローズすることをお勧めします。

配布リストを使用する場合には,一つの問い合わせで複数の完了コードと理由コードが発生することがあります。これらはMQOPEN命令とMQPUT命令のCompCodeおよびReasonフィールドだけを使用しては対応できません。

複数のあて先にメッセージを登録するために配布リストを使用するときは,各あて先について,CompCodeおよびReasonフィールドが応答レコードにあります。完了コードがMQCC_FAILEDの場合は,あて先キューに何もメッセージが登録されていません。完了コードがMQCC_WARNINGの場合は,一つ以上のあて先キューにメッセージの登録が成功しています。理由コードがMQRC_MULTIPLE_REASONSの場合は,各あて先についての理由コードが異なります。そこで,エラーが発生したキューを特定しその理由を知るために,MQRR構造体を使用することをお勧めします。