MQGMO - 読み取りメッセージ・オプション
MQGMO 構造体を使用すると、アプリケーションはキューからメッセージを除去する方法を制御できます。 この構造体は、MQGET 呼び出しの入出力パラメーターです。
バージョン
MQGMO の現行バージョンは MQGMO_VERSION_4です。 一部のフィールドは、特定のバージョンの MQGMO でのみ使用できます。 複数の環境でアプリケーションを移植する必要がある場合は、MQGMO のバージョンがすべての環境で整合していることを確認しなければなりません。 特定のバージョンの構造体にのみ存在するフィールドは、MQGMO - Get-message optionsおよびフィールドの説明でそのように識別される。
サポートされているプログラミング言語用に提供されているヘッダー・ファイル、COPY ファイル、および INCLUDE ファイルには、環境でサポートされている最新バージョンの MQGMO が含まれていますが、 Version フィールドの初期値は MQGMO_VERSION_1に設定されています。 バージョン 1 の構造体内に存在しないフィールドを使用するには、Version フィールドを必要なバージョンのバージョン番号に設定します。
文字セットとエンコード
MQGMO のデータは、 CodedCharSetId キュー・マネージャー属性で指定された文字セットと、MQENC_NATIVE で指定されたローカル・キュー・マネージャーのエンコードになっていなければなりません。 ただし、アプリケーションが MQ MQI クライアントとして実行されている場合、構造体はクライアントの文字セットとエンコードに従っている必要があります。
フィールド
| フィールド名と説明 | 定数の名前 | 定数の初期値 (存在する場合) |
|---|---|---|
| StrucId (構造体識別子) | MQGMO_STRUC_ID | 'GMO¬' |
| バージョン (構造バージョン番号) | MQGMO_VERSION_1 | 1 |
| MQGMO-Options フィールド (MQGET のアクションを制御するオプション) | MQGMO_NO_WAIT | 0 |
| WaitInterval (待機間隔) | なし | 0 |
| Signal1 (シグナル) | なし | z/OS® では NULL ポインター。 その他の場合は 0 |
| Signal2 (シグナル ID) | なし | 0 |
| ResolvedQName (宛先キューの解決名) | なし | ヌル・ストリングまたはブランク |
注:
Version が MQGMO_VERSION_2より前の場合、残りのフィールドは無視されます。 |
||
| MatchOptions (MQGET に使用される選択基準を制御するオプション) | MQMO_MATCH_MSG_ID + MQMO_MATCH_CORREL_ID | 3 |
| GroupStatus (取得したメッセージがグループ内にあるかどうかを示すフラグ) | MQGS_NOT_IN_GROUP | '¬' |
| SegmentStatus (取り出されたメッセージが論理メッセージのセグメントであるかどうかを示すフラグ) | MQSS_NOT_A_SEGMENT | '¬' |
| セグメンテーション (取得されたメッセージに対してさらにセグメンテーションが許可されるかどうかを示すフラグ) | MQSEG_INHIBITED | '¬' |
| Reserved1 (予約済み) | なし | '¬' |
注:
Version が MQGMO_VERSION_3より前の場合、残りのフィールドは無視されます。 |
||
| MsgToken (メッセージトークン) | MQMTOK_NONE | Null |
| ReturnedLength (戻されるメッセージ・データの長さ (バイト単位)) | MQRL_UNDEFINED | -1 |
注:
Version が MQGMO_VERSION_4より前の場合、残りのフィールドは無視されます。 |
||
| Reserved2 (予約済み) | なし | '¬' |
| MsgHandle (キューから取得されるメッセージのプロパティーが取り込まれるメッセージへのハンドル) | MQHM_NONE | 0 |
注:
|
||
言語ごとの宣言
MQGMO の C 宣言
typedef struct tagMQGMO MQGMO;
struct tagMQGMO {
MQCHAR4 StrucId; /* Structure identifier */
MQLONG Version; /* Structure version number */
MQLONG Options; /* Options that control the action of */
MQGET */
MQLONG WaitInterval; /* Wait interval */
MQLONG Signal1; /* Signal */
MQLONG Signal2; /* Signal identifier */
MQCHAR48 ResolvedQName; /* Resolved name of destination queue */
/* Ver:1 */
MQLONG MatchOptions; /* Options controlling selection */
criteria used for MQGET */
MQCHAR GroupStatus; /* Flag indicating whether message */
retrieved is in a group */
MQCHAR SegmentStatus; /* Flag indicating whether message */
retrieved is a segment of a logical */
message */
MQCHAR Segmentation; /* Flag indicating whether further */
segmentation is allowed for the */
message retrieved */
MQCHAR Reserved1; /* Reserved */
/* Ver:2 */
MQBYTE16 MsgToken; /* Message token */
MQLONG ReturnedLength; /* Length of message data returned */
(bytes) */
/* Ver:3 */
MQLONG Reserved2; /* Reserved */
MQHMSG MsgHandle; /* Message handle */
/* Ver:4 */
};
Signal1 フィールドは PMQLONGとして宣言されます。MQGMO の COBOL 宣言
** MQGMO structure
10 MQGMO.
** Structure identifier
15 MQGMO-STRUCID PIC X(4).
** Structure version number
15 MQGMO-VERSION PIC S9(9) BINARY.
** Options that control the action of MQGET
15 MQGMO-OPTIONS PIC S9(9) BINARY.
** Wait interval
15 MQGMO-WAITINTERVAL PIC S9(9) BINARY.
** Signal
15 MQGMO-SIGNAL1 PIC S9(9) BINARY.
** Signal identifier
15 MQGMO-SIGNAL2 PIC S9(9) BINARY.
** Resolved name of destination queue
15 MQGMO-RESOLVEDQNAME PIC X(48).
** Options controlling selection criteria used for MQGET
15 MQGMO-MATCHOPTIONS PIC S9(9) BINARY.
** Flag indicating whether message retrieved is in a group
15 MQGMO-GROUPSTATUS PIC X.
** Flag indicating whether message retrieved is a segment of a
** logical message
15 MQGMO-SEGMENTSTATUS PIC X.
** Flag indicating whether further segmentation is allowed for the
** message retrieved
15 MQGMO-SEGMENTATION PIC X.
** Reserved
15 MQGMO-RESERVED1 PIC X.
** Message token
15 MQGMO-MSGTOKEN PIC X(16).
** Length of message data returned (bytes)
15 MQGMO-RETURNEDLENGTH PIC S9(9) BINARY.
** Reserved
15 MQGMO-RESERVED2 PIC S9(9) BINARY.
** Message handle
15 MQGMO-MSGHANDLE PIC S9(18) BINARY.
Signal1 フィールドは POINTERとして宣言されます。MQGMO の PL/I 宣言
dcl
1 MQGMO based,
3 StrucId char(4), /* Structure identifier */
3 Version fixed bin(31), /* Structure version number */
3 Options fixed bin(31), /* Options that control the action of
MQGET */
3 WaitInterval fixed bin(31), /* Wait interval */
3 Signal1 fixed bin(31), /* Signal */
3 Signal2 fixed bin(31), /* Signal identifier */
3 ResolvedQName char(48), /* Resolved name of destination
queue */
3 MatchOptions fixed bin(31), /* Options controlling selection
criteria used for MQGET */
3 GroupStatus char(1), /* Flag indicating whether message
retrieved is in a group */
3 SegmentStatus char(1), /* Flag indicating whether message
retrieved is a segment of a logical
message */
3 Segmentation char(1), /* Flag indicating whether further
segmentation is allowed for the
message retrieved */
3 Reserved1 char(1), /* Reserved */
3 MsgToken char(16), /* Message token */
3 ReturnedLength fixed bin(31); /* Length of message data returned
(bytes) */
3 Reserved2 fixed bin(31); /* Reserved */
3 MsgHandle fixed bin(63); /* Message handle */
Signal1 フィールドは pointerとして宣言されます。MQGMO の高水準アセンブラー宣言
MQGMO DSECT
MQGMO_STRUCID DS CL4 Structure identifier
MQGMO_VERSION DS F Structure version number
MQGMO_OPTIONS DS F Options that control the action of
* MQGET
MQGMO_WAITINTERVAL DS F Wait interval
MQGMO_SIGNAL1 DS F Signal
MQGMO_SIGNAL2 DS F Signal identifier
MQGMO_RESOLVEDQNAME DS CL48 Resolved name of destination queue
MQGMO_MATCHOPTIONS DS F Options controlling selection criteria
* used for MQGET
MQGMO_GROUPSTATUS DS CL1 Flag indicating whether message
* retrieved is in a group
MQGMO_SEGMENTSTATUS DS CL1 Flag indicating whether message
* retrieved is a segment of a logical
* message
MQGMO_SEGMENTATION DS CL1 Flag indicating whether further
* segmentation is allowed for the message
* retrieved
MQGMO_RESERVED1 DS CL1 Reserved
MQGMO_MSGTOKEN DS XL16 Message token
MQGMO_RETURNEDLENGTH DS F Length of message data returned (bytes)
MQGMO_RESERVED2 DS F Reserved
MQGMO_MSGHANDLE DS D Message handle
MQGMO_LENGTH EQU *-MQGMO
ORG MQGMO
MQGMO_AREA DS CL(MQGMO_LENGTH)
MQGMO の高水準アセンブラー宣言
Type MQGMO
StrucId As String*4 'Structure identifier'
Version As Long 'Structure version number'
Options As Long 'Options that control the action of MQGET'
WaitInterval As Long 'Wait interval'
Signal1 As Long 'Signal'
Signal2 As Long 'Signal identifier'
ResolvedQName As String*48 'Resolved name of destination queue'
MatchOptions As Long 'Options controlling selection criteria'
'used for MQGET'
GroupStatus As String*1 'Flag indicating whether message'
'retrieved is in a group'
SegmentStatus As String*1 'Flag indicating whether message'
'retrieved is a segment of a logical'
'message'
Segmentation As String*1 'Flag indicating whether further'
'segmentation is allowed for the message'
'retrieved'
Reserved1 As String*1 'Reserved'
MsgToken As MQBYTE16 'Message token'
ReturnedLength As Long 'Length of message data returned (bytes)'
End Type
MQGMO の PROPCTL チャネル・オプション
PROPCTL チャネル属性を使用して、 IBM® MQ 9.2 キュー・マネージャーから旧バージョンの IBM MQのパートナー・キュー・マネージャーに送信されるメッセージに含めるメッセージ・プロパティーを制御します。
| PROPCTL | 説明 |
|---|---|
| ALL | このオプションは、以前のバージョンからパートナー・キュー・マネージャーに接続されたアプリケーションが、 IBM MQ 9.2 アプリケーションによってメッセージに入れられたプロパティーを処理できる場合に使用します。
アプリケーション設計に関する次の 2 つの問題を考慮する必要があります。
|
| COMPAT | このオプションは、以前のバージョンのパートナー・キュー・マネージャーに接続されたアプリケーションに、場合によって (常にではない) メッセージ・プロパティーを送信するために使用します。 メッセージ・プロパティーは、次の 2 つの条件が満たされる場合にのみ送信されます。
COMPAT チャネル・オプションが設定されている場合、 JMS アプリケーションは、チャネルを使用して IBM MQ 9.2 と以前のバージョンの間で相互運用を行うことができます。 チャネルは、メッセージ・プロパティーを使用するすべてのアプリケーションに使用可能になるわけではありません。予約済みフォルダーを使用するアプリケーションにのみ使用可能になります。 メッセージが送信されるか、またはプロパティーが送信されるかに関する規則は以下のとおりです。
注:
予約済みフォルダー名は、 mcd.、 jms.、 usr.、または mqext.で始まります。 これらのフォルダーは、 JMS インターフェースを使用するアプリケーション用に作成されます。 IBM MQ 9.2 では、これらのフォルダーに配置された名前と値のペアは、メッセージ・プロパティーとして扱われます。
|
| NONE | このオプションは、以前のバージョンのパートナー・キュー・マネージャーに接続されたアプリケーションにメッセージ・プロパティーが送信されないようにするために使用します。 名前と値のペアおよびメッセージ・プロパティーが含まれる
|
MQGMO の PROPCTL キュー・オプション
PROPCTL キュー属性を使用して、MQGMO メッセージ・プロパティー・オプションの設定なしで MQGET を呼び出すアプリケーションにメッセージ・プロパティーを返す方法を制御します。
| PROPCTL | 説明 |
|---|---|
| ALL | ALL オプションを使用すると、同じキューからメッセージを読み取るさまざまなアプリケーションが、そのメッセージをさまざまな方法で処理できるようになります。
メッセージ内のすべてのプロパティーがアプリケーションに返されます。
ALL は、受信側アプリケーションが |
| COMPAT (デフォルト) | COMPAT がデフォルト・オプションです。 以前のバージョンから変更されていないアプリケーションのように、 このオプションは、 JMS メッセージを読み取るために、以前のバージョンの MQI アプリケーションを作成した場合に使用します。
メッセージに新規ユーザー・プロパティー・フォルダーが含まれている場合、そのメッセージは新規または変更された IBM MQ 9.2 アプリケーションによって作成されたと推測できます。 これらの新しいプロパティーを受信アプリケーションが
COMPAT は、受信側アプリケーションが |
| FORCE | FORCE オプションを指定すると、すべてのメッセージ・プロパティーが IBM MQ 9.2 メッセージ・プロパティーを処理するようにアプリケーションを変更したが、以前と同様に FORCE は、受信側アプリケーションが |
| NONE | 既存のアプリケーションがすべてのメッセージ・プロパティーを無視してメッセージを処理し、新規または変更されたアプリケーションがメッセージ・プロパティーを照会できるようにするには、 NONE オプションを使用します。
NONE は、受信側アプリケーションが |
| V6COMPAT | このオプションは、送信時と同じ形式で このオプションは送信キューと受信キューの両方に、および中継の伝送キューがあればそのキューにも設定する必要があります。 このオプションは、キュー名解決パスのキュー定義に設定されている他のすべての PROPCTL オプションをオーバーライドします。 V6COMPAT オプションは、例外的な状況でのみ使用してください。 例えば、アプリケーションを以前のバージョンから IBM MQ 9.2にマイグレーションする場合、このオプションは以前のバージョンの動作を保持するため、有用です。 このオプションはメッセージ・スループットに影響することがあります。 また、このオプションが送信側キュー、受信側キュー、および中継伝送キューに設定されていることを確認する必要があるため、管理は一層難しくなります。 V6COMPAT は、受信側アプリケーションが |
メッセージ・プロパティと名前と値のペアの詳細については、 NameValueData (MQCHARn) を参照してください。
MQGMO のメッセージ・プロパティー・オプション
MQGMO メッセージ・プロパティー・オプションを使用して、メッセージ・プロパティーをアプリケーションに返す方法を制御します。
| MQGMO オプション | 説明 |
|---|---|
| MQGMO_PROPERTIES_AS_Q_DEF | 同じキューから読み取り、
|
| MQGMO_PROPERTIES_IN_HANDLE | アプリケーションは強制的にメッセージ・プロパティーを使用します。 このオプションは、変更済みのアプリケーションがメッセージ・ハンドルの作成に失敗したかどうかを検出するために使用します。 アプリケーションは、 MQINQMPを呼び出すのではなく、 |
| MQGMO_NO_PROPERTIES |
|
| MQGMO_PROPERTIES_FORCE_MQRFH2 | メッセージ・ハンドルが作成された場合でも、プロパティーは
|
| MQGMO_PROPERTIES_COMPATIBILITY | メッセージが JMS クライアントからのものである場合、 JMS プロパティーは
|