機能説明
メッセージを受信します。メッセージを受信するとカーソルは次のメッセージに移動します。
記述形式
---------------------------------------------------------------------------------------- CALL "MQDGETMSG" USING メッセージキューアドレス格納域名,受信モード格納域名, メッセージヘッダ域名, メッセージ本体域名, 領域長格納域名, 復帰情報域名, 復帰値格納域名 ----------------------------------------------------------------------------------------
パラメタ
MQDCONNECTQプログラムから通知されたメッセージキューアドレスをそのまま指定します。
メッセージがない場合の対処を指定します。
1: 非同期モード。メッセージがない場合には、すぐに復帰します。
2: 同期モード。メッセージが到着するまで待ちます。
メッセージヘッダを入れる領域を指定します。領域は発行元が用意します。メッセージヘッダの詳細については、“8.2.29 パラメタの詳細説明”を参照してください。
メッセージ本体を入れる領域を指定します。領域は発行元が用意します。メッセージ本体の詳細については、“8.2.29 パラメタの詳細説明”を参照してください。
メッセージ本体域の領域の長さを指定します。
例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(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), 145 (GETMODE)
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), 145 (GETMODE)
本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。
復帰値
本プログラムの処理結果が、復帰値格納域と特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。
正常時: 0
異常時: -1
注意事項
正しく受信されなかった場合には、カーソル位置は保証されません。カーソルをメッセージキューの先頭メッセージに移動するためには、MQDSEEKMSGを使用してください。
直前のトランザクションを取り消した場合には、カーソルを先頭メッセージに位置付けてから本プログラムを実行してください。
一つのアプリケーションが、複数のメッセージキューから受信する場合、必ずメッセージキューごとにユニット内の全メッセージを受信するようにしてください。
複数のアプリケーションが、同じメッセージキューから同時に受信することは避けてください。1ユニット複数メッセージの場合は、処理結果が保証されません。単一メッセージの場合は、先に受信要求を行ったアプリケーションにメッセージが渡ります。
エラー詳細コード“29”は、メッセージ格納ファイルとしてデータベースを使用している場合に、グローバルトランザクション処理中に限り通知されます。
エラー詳細コード“31”は、Symfoware/RDBトランザクション連携機能を使用している場合に限り通知されます。