5.1.15 MQSeriesプログラム

LANSA Integrator

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

メッセージ・タイプ
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

また、以下も参照してください。

MQSeriesとDataQueueプログラムの例