5.2.13 MQSeriesプログラム

すべてのプログラムは少なくともステータスとメッセージを返します。ステータスは、文字列値または文字列MQRで始まるMQ APIの理由コードになります。

         など
JSMMQDEPTH - 待ち行列の深さ
 

パラメータ

記述

I/O

タイプ

長さ

小数点の位置

JSMQMGR

キュー・マネージャ

I

CHAR

48

 

JSMQNAME

待ち行列

I

CHAR

48

 

JSMDEPTH

待ち行列の深さ

O

DEC

8

0

JSMSTS

状態

O

CHAR

20

 

JSMMSG

メッセージ

O

CHAR

256

 

JSMMQDEPTHプログラムはスタンドアロンであるため、JSMサービスを開かずに呼び出すことができます。

CALL PGM(JSMMQDEPTH) PARM(#JSMQMGR #JSMQNAME #JSMDEPTH #JSMSTS #JSMMSG) NUM_LEN(*DEFINED)
 
JSMMQGET - 待ち行列からメッセージを取得する
 

パラメータ

記述

I/O

タイプ

長さ

小数点の位置

JSMQMGR

キュー・マネージャ

I

CHAR

48

 

JSMQNAME

待ち行列

I

CHAR

48

 

JSMWAIT

待ち時間(ミリ秒、無制限の場合は-1)

I

DEC

8

0

JSMMSIZE

メッセージ・サイズ(0は20K

値)。これはヘルパー・サイズです。サイズが小さすぎる場合、内部記憶域がメッセージ・サイズに再度割り当てられ、もう一度GET操作が行われます。

I

DEC

8

0

JSMMID

メッセージID(*BLANKまたはメッセージID)

I/O

CHAR

24

 

JSMCID

相関ID(*BLANKまたは相関ID)

I/O

CHAR

24

 

JSMRQMGR

応答待ち行列マネージャー

O

CHAR

48

 

JSMREPLYQ

応答待ち行列

O

CHAR

48

 

JSMMTYPE

メッセージ・タイプ

O

DEC

9

0

JSMSTS

状態

O

CHAR

20

 

JSMMSG

メッセージ

O

CHAR

256

 

LANSAファンクションやRPGプログラムでメッセージIDと相関IDを受信する場合、ロードされたJSMサービスにこれらの値を送信しないでください。値には有効なEBCDIC文字が含まれていないためです。
メッセージIDと相関IDを使用すると、この入力値のいずれかまたは両方に一致するメッセージを取得できます。次のメッセージが必要な場合は、JSMMQGETプログラムを呼び出す前にメッセージIDフィールドと相関IDフィールドを*BLANKに設定します。

CHANGE FIELD(#JSMQMGR) TO('MY.QMANAGER')
CHANGE FIELD(#JSMQNAME) TO('MY.QUEUE')
CHANGE FIELD(#JSMWAIT) TO(-1)
CHANGE FIELD(#JSMSIZE) TO(0)
CHANGE FIELD(#JSMMID) TO(*BLANK)
CHANGE FIELD(#JSMCID) TO(*BLANK)
 
CALL PGM(JSMMQGET) PARM(#JSMQMGR #JSMQNAME #JSMWAIT #JSMMSIZE #JSMMID #JSMCID #JSMRQMGR #JSMREPLYQ #JSMMTYPE #JSMSTS #JSMMSG) NUM_LEN(*DEFINED)
 
JSMMQPUT - 待ち行列にメッセージを入れる

パラメータ

記述

I/O

タイプ

長さ

小数点の位置

JSMQMGR

キュー・マネージャ

I

CHAR

48

 

JSMQNAME

待ち行列

I

CHAR

48

 

JSMCCSID

メッセージCCSID (待ち行列のデフォルトの場合は0)

I

DEC

8

0

JSMPST

持続性(デフォルトの場合はY

N

*BLANK)

I

CHAR

1

 

JSMPTY

優先順位(待ち行列のデフォルトの場合は0~9

-1)

I

DEC

8

0

JSMMID

メッセージID (新しいメッセージIDの場合は*BLANK)

I

CHAR

24

 

JSMCID

相関ID (*BLANKまたは値)

I

CHAR

24

 

JSMMTYPE

メッセージ・タイプ 8 - MQMT_DATAGRAM 65536-999999999 - ユーザー定義

I

DEC

9

0

JSMRQMGR

応答待ち行列マネージャー

I

CHAR

48

 

JSMREPLYQ

応答待ち行列

I

CHAR

48

 

JSMSTS

状態

O

CHAR

20

 

JSMMSG

メッセージ

O

CHAR

256

 

任意

 

 

 

 

 

JSMEXPIRY

有効期限、ミリ秒、無制限の場合は-1 (デフォルト)

I

DEC

9

0

JSMUSER

ユーザー

I

CHAR

12

 

任意のJSMEXPIRYパラメータを使用する場合、JSMUSERパラメータも渡す必要があります。JSMUSERパラメータを渡さないと、JSMMQPUT操作は失敗します。

CHANGE FIELD(#JSMCCSID) TO(0)
CHANGE FIELD(#JSMMTYPE) TO(8)
CHANGE FIELD(#JSMMID) TO(*BLANK)
CHANGE FIELD(#JSMCID) TO(*BLANK)
CHANGE FIELD(#JSMPST) TO(Y)
CHANGE FIELD(#JSMPTY) TO(4)
CHANGE FIELD(#JSMRQMGR) TO(*BLANK)
CHANGE FIELD(#JSMREPLYQ) TO(*BLANK)
 
CALL PGM(JSMMQPUT) PARM(#JSMQMGR #JSMQNAME #JSMCCSID #JSMPST #JSMPTY #JSMMID #JSMCID #JSMMTYPE #JSMRQMGR #JSMREPLYQ #JSMSTS #JSMMSG) NUM_LEN(*DEFINED)
 
MQSeriesの MQCONN または MQPUT API 呼び出しが失敗した場合、現在のメッセージが復元ファイルJSMMQPUT (ある場合)に入れられます。メッセージの長さが32000バイトを超えると、データは切り捨てられます。
物理ファイルJSMMQPUTのDDSソースは、JSMライブラリのQDDSRCファイルにあります。
DATE       8A      CCYYMMDD
TIME       6A      HHMMSS
JOBNUMBER  6A      000000
QUEUE      48A
MANAGER    48A
CCSID      8P 0
PERSIST    1A
PRIORITY   8P 0
USERID     12A
EXPIRY     9P 0
MESSAGEID  24A
CORRLATEID 24A
MSGTYPE    9P 0
RELYMGR    48A
RELYQUEUE  48A
MSGLENGTH  9P 0
MESSAGE    32000A