すべてのプログラムは少なくともステータスとメッセージを返します。ステータスは、文字列値または文字列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 #JSMQNAM

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
  • No labels