複数メッセージキューからのメッセージ参照は、指定した複数のメッセージキューのいずれかのメッセージキューよりメッセージの内容を参照する機能です。複数メッセージキューからのメッセージ参照は、プログラムインタフェースの“MQDPEEKMSGEX”または“mqd_peekmsgex”により行うことができます。メッセージの参照によって、メッセージがメッセージキューから削除されることはありません。
複数メッセージキューからのメッセージ参照の方法には以下があります。
同期モード
非同期モード
同期モードのメッセージ参照は、指定したメッセージキューのいずれかにメッセージがある場合には、当該のメッセージキューより直ちにメッセージを参照します。指定したすべてのメッセージキューにメッセージがない場合には、いずれかのメッセージキューにメッセージが到着するまで待ち合わせます。
非同期モードのメッセージ参照は、指定したメッセージキューのいずれかにメッセージがある場合には、当該のメッセージキューより直ちにメッセージを参照します。指定したすべてのメッセージキューにメッセージがない場合には、メッセージ到着を待ち合わせずにアプリケーションに復帰します。
複数メッセージキューからのメッセージ参照を中止する条件として以下があります。
指定した複数のメッセージキューのいずれかが、削除・切断・使用禁止またはアクセス禁止の場合はメッセージの参照を中止して、アプリケーションに復帰します。
指定した複数のメッセージキューのすべてが、削除・切断・使用禁止またはアクセス禁止の場合はメッセージの参照を中止して、アプリケーションに復帰します。
なお、複数メッセージキューからのメッセージ参照を行う場合は、以下のことに留意する必要があります。
事前に、プログラムインタフェースの“MQDCONNECTQEX”または“mqd_connectqex”によって複数のメッセージキューに接続する必要があります。
一つのアプリケーションで、同一のメッセージキューに対してCOBOL言語プログラムインタフェースの“MQDGETMSGEX”と“MQDPEEKMSGEX”を組み合わせて使用することはできません。また、C言語プログラムインタフェースの“mqd_getmsgex”と“mqd_peekmsgex”を組み合わせて使用することはできません。
メッセージの参照は、特定のメッセージキューに集中しないようにメッセージが存在するメッセージキューの中から任意に参照します。ただし、参照したメッセージが1ユニット複数メッセージの場合は、1ユニットすべてのメッセージを参照するまで同一のメッセージキューより参照します。
カーソルは、指定したメッセージキューごとに以下の動作になります。
メッセージ参照後、カーソルを次のメッセージに位置付けます。