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

8.3.23 mqd_peekmsgex (複数のメッセージキューからメッセージを参照する)

機能説明

指定した複数のメッセージキューのいずれかのメッセージキューよりメッセージを参照します。

記述形式

#include "mqdapi.h"
int mqd_peekmsgex(MQD_MessageQueueex *queuegroup, int mode, int cond, int *queindex, MQD_MessageHeader *mhbuffer, MQD_MessageBody *mbbuffer, long mblength, MQD_Environment *env)

パラメタ

queuegroup

mqd_connectqex関数から返されたメッセージキューグループへのポインタをそのまま指定します。

mode

メッセージがない場合の対処を指定します。

MQD_Q_MODE_ASYNC: 非同期モード

メッセージキューグループ内のすべてのメッセージキューにメッセージがない場合には、すぐに復帰します。

MQD_Q_MODE_SYNC: 同期モード

メッセージキューグループ内のいずれかのメッセージキューにメッセージが到着するまで待ちます。

cond

メッセージの参照中止条件を指定します。

MQD_Q_COND_ANYQUEUE:

メッセージキューグループ内のいずれかのメッセージキューが、削除・切断・使用禁止またはアクセス禁止の場合、メッセージの参照を中止して復帰します。

MQD_Q_COND_ALLQUEUE:

メッセージキューグループ内のすべてのメッセージキューが、削除・切断・使用禁止またはアクセス禁止の場合、メッセージの参照を中止して復帰します。

queindex

メッセージキューのインデックスが通知されます。インデックスは、mqd_connectqex関数で指定したメッセージキュー名の配列のインデックスで、以下のように通知されます。

0,1,2,…,n:メッセージキューのインデックス
-1:メッセージキューに関係なく異常復帰した場合

mhbuffer

メッセージヘッダを入れる領域へのポインタを指定します。領域は発行元が用意します。メッセージヘッダ(MQD_MessageHeader構造体)の詳細については、“8.3.29 パラメタの詳細説明”を参照してください。

mbbuffer

メッセージ本体を入れる領域へのポインタを指定します。領域は発行元が用意します。メッセージ本体(MQD_MessageBody構造体)の詳細については、“8.3.29 パラメタの詳細説明”を参照してください。

mblength

mbbufferで指定した領域の長さを指定します。

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

queindexに“-1”を通知するエラー詳細コード

MQD_ERR_SYNTAX
MQD_ERR_NOSYSTEM
MQD_ERR_NOCONNECT
MQD_ERR_INVALIDAPI
MQD_ERR_DOWNRCV
MQD_ERR_DEADLOCK
MQD_ERR_BACKOUT
MQD_ERR_IO
MQD_ERR_NOMEMORY
MQD_ERR_PROCESSOVER
MQD_ERR_BUFFERLACK
MQD_ERR_TRANFILE
MQD_ERR_MSGFILE
MQD_ERR_UNITMSGOVER
MQD_ERR_UNITSUMOVER
MQD_ERR_MSGBODYLENGTH
MQD_ERR_PEEKMODE,
MQD_ERR_PEEKCOND


MQD_ERR_OTHERTHR

queindexにメッセージキューのインデックスを通知するエラー詳細コード

MQD_ERR_NOQUE
MQD_ERR_NOMSG
MQD_ERR_QUEEND
MQD_ERR_QUERINHIBIT
MQD_ERR_PURGEMSG
MQD_ERR_UNITNOTCONT

queindexにメッセージキューのインデックス、または、“-1”を通知するエラー詳細コード

MQD_ERR_NOCONNECTQUE

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時:0
異常時: -1

注意事項