ページの先頭行へ戻る
Interstage Application Server MessageQueueDirector説明書

6.9.4 メッセージを受信(参照)するアプリケーションに関する注意事項

  MQDはメッセージキューごと、プライオリティごとにメッセージを管理しています。カーソルはプライオリティの高いメッセージから順番に移動しますが、一端プライオリティの高いメッセージを通りすぎると、カーソルをメッセージキューの先頭に戻さない限り、そのあと高いプライオリティのメッセージが格納されても、そのメッセージを受信(参照)することはできません。

  上記仕様のため、一つのメッセージキューに複数のプライオリティのメッセージを格納する場合には、以下に示すようにアプリケーションを作成してください。

  カーソルをメッセージキューの先頭に戻さなかった場合には、受信アプリケーションにエラーコード MQD_ERR_QUEEND が通知される場合があります。その際にはカーソルをメッセージキューの先頭に移動させてから、再度受信を実行すると、メッセージを受信することができます。カーソルをメッセージキューの先頭に戻すには、mqd_seekmsg(COBOLの場合はMQDSEEKMSG)をカーソルをメッセージキューの先頭メッセージに移動するモードで使用してください。

  受信アプリケーションにエラーコード MQD_ERR_QUEEND が通知されるパターンは以下の通りです。

  よりプライオリティの高いメッセージが、メッセージキューに格納されたため、エラーコード MQD_ERR_QUEEND が通知されるパターンを以下に例で示します。

図6.14 カーソルとアプリケーションの関係