すべてのプログラムは少なくともステータスとメッセージを返します。ステータスは、文字列値または文字列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 | 値) | 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 #JSMQNAMJSMMQPUT - 待ち行列にメッセージを入れる
パラメータ | 記述 | 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