5.1.15 MQSeriesプログラム
すべてのプログラムは少なくともステータスとメッセージを返します。ステータスは、文字列値または文字列MQRで始まるMQ APIの理由コードになります。
· OK
· ERROR
· FATAL
· MQR2058 - 待ち行列マネージャー名が無効または不明
· MQR2086 - 待ち行列マネージャーが不明
· その他
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 |
メッセージ・タイプ |
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
また、以下も参照してください。