機能説明
メッセージキュー内のメッセージを参照します。
記述形式
#include "mqdapi.h" int mqd_peekmsg(MQD_MessageQueue *queue, int mode, MQD_MessageHeader *mhbuffer, MQD_MessageBody *mbbuffer, long mblength, int cursor, MQD_Environment *env)
パラメタ
mqd_connectq関数から返されたメッセージキューへのポインタをそのまま指定します。
メッセージがない場合の対処を指定します。
メッセージがない場合は、すぐに復帰します。
メッセージが到着するまで待ちます。
メッセージヘッダを入れる領域へのポインタを指定します。領域は発行元が用意します。メッセージヘッダ(MQD_MessageHeader構造体)の詳細については、“8.3.29 パラメタの詳細説明”を参照してください。
メッセージ本体を入れる領域へのポインタを指定します。領域は発行元が用意します。メッセージ本体(MQD_MessageBody構造体)の詳細については、“8.3.29 パラメタの詳細説明”を参照してください。
mbbufferで指定した領域の長さを指定します。
メッセージを参照した後のカーソルの位置づけを指定します。
メッセージを参照した後カーソルを次のユニットの先頭メッセージに位置づけます。
メッセージを参照した後カーソルを動かしません。
メッセージを参照した後カーソルを次のメッセージに位置づけます。
例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。
MQD_ERR_SYNTAX
MQD_ERR_NOSYSTEM
MQD_ERR_NOCONNECT
MQD_ERR_INVALIDAPI
MQD_ERR_NOCONNECTQUE
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_NOQUE
MQD_ERR_NOMSG
MQD_ERR_QUEEND
MQD_ERR_QUERINHIBIT
MQD_ERR_PURGEMSG
MQD_ERR_MSGBODYLENGTH
MQD_ERR_PEEKMODE
MQD_ERR_CURSORMODE
MQD_ERR_OTHERTHR
復帰値
本関数の処理結果が以下の復帰値で通知されます。
正常時:0
異常時: -1
注意事項
正しく参照されなかった場合には、カーソル位置は保証されません。カーソルをメッセージキューの先頭メッセージに移動するためには、mqd_seekmsgを使用してください。
直前のトランザクションを取り消した場合には、カーソルを先頭メッセージに位置付けてから本関数を実行してください。
複数のアプリケーションが、同じメッセージキューから受信と参照を同時に行うことは避けてください。1ユニット複数メッセージの場合は、処理結果が保証されません。
エラー詳細コード“MQD_ERR_DEADLOCK”は、メッセージ格納ファイルとしてデータベースを使用している場合に限り通知されます。
エラー詳細コード“MQD_ERR_OTHERTHR”は、mqd_connectrdb関数を使用してMQDに接続している場合に限り通知されます。