機能説明
メッセージキュー内のメッセージを参照します。
記述形式
---------------------------------------------------------------------------------------- CALL "MQDPEEKMSG" USING メッセージキューアドレス格納域名, 参照モード格納域名, メッセージヘッダ域名, メッセージ本体域名, 領域長格納域名, カーソル情報格納域名, 復帰情報域名, 復帰値格納域名 ----------------------------------------------------------------------------------------
パラメタ
MQDCONNECTQプログラムから通知されたメッセージキューアドレスをそのまま指定します。
メッセージがない場合の対処を指定します。
1: 非同期モード。メッセージがない場合には、すぐに復帰します。
2: 同期モード。メッセージが到着するまで待ちます。
メッセージヘッダを入れる領域を指定します。領域は発行元が用意します。メッセージヘッダの詳細については、“8.2.29 パラメタの詳細説明”を参照してください。
メッセージ本体を入れる領域を指定します。領域は発行元が用意します。メッセージ本体の詳細については、“8.2.29 パラメタの詳細説明”を参照してください。
メッセージ本体域の領域の長さを指定します。
メッセージを参照した後のカーソルの位置づけを指定します。
1: メッセージを参照した後カーソルを次のユニットの先頭メッセージに位置づけます。
2: メッセージを参照した後カーソルを動かしません。
3: メッセージを参照した後カーソルを次のメッセージに位置づけます。
例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細については、“8.4 復帰情報の説明”を参照してください。
16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 21 (INVALIDAPI), 22 (NOCONNECTQUE), 25 (DOWNRCV), 29 (DEADLOCK), 30 (BACKOUT), 32 (IO), 33 (NOMEMORY), 36 (PROCESSOVER), 38 (BUFFERLACK), 39 (TRANFILE), 40 (MSGFILE), 51 (UNITMSGOVER), 52 (UNITSUMOVER), 66 (NOQUE), 68 (NOMSG), 70 (QUEEND), 73 (QUERINHIBIT), 74 (PURGEMSG), 135 (MSGBODYLENGTH), 146 (PEEKMODE), 147 (CURSORMODE)
16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 21 (INVALIDAPI), 22 (NOCONNECTQUE), 25 (DOWNRCV), 29 (DEADLOCK), 30 (BACKOUT), 31 (OTHERTHR), 32 (IO), 33 (NOMEMORY), 36 (PROCESSOVER), 38 (BUFFERLACK), 39 (TRANFILE), 40 (MSGFILE), 51 (UNITMSGOVER), 52 (UNITSUMOVER), 66 (NOQUE), 68 (NOMSG), 70 (QUEEND), 73 (QUERINHIBIT), 74 (PURGEMSG), 135 (MSGBODYLENGTH), 146 (PEEKMODE), 147 (CURSORMODE)
本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。
復帰値
本プログラムの処理結果が、復帰値格納域と特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。
正常時: 0
異常時: -1
注意事項
正しく参照されなかった場合には、カーソル位置は保証されません。カーソルをメッセージキューの先頭メッセージに移動するためには、MQDSEEKMSGを使用してください。
直前のトランザクションを取り消した場合には、カーソルを先頭メッセージに位置付けてから本プログラムを実行してください。
複数のアプリケーションが、同じメッセージキューから受信と参照を同時に行うことは避けてください。1ユニット複数メッセージの場合は、処理結果が保証されません。
エラー詳細コード“29”は、メッセージ格納ファイルとしてデータベースを使用している場合に、グローバルトランザクション処理中に限り通知されます。
エラー詳細コード“31”は、Symfoware/RDBトランザクション連携機能を使用している場合に限り通知されます。