MQTM構造体 − トリガメッセージ
MQTM構造体は,次のフィールドから構成されます。
フィールド(データタイプ) |
内容 |
初期値 |
---|---|---|
StrucId(MQCHAR4型) |
構造体識別子 |
MQTM_STRUC_ID |
Version(MQLONG型) |
構造体バージョン番号 |
MQTM_VERSION_1 |
QName(MQCHAR48型) |
イベント発生キュー名 |
ヌル文字列/空白 |
ProcessName(MQCHAR48型) |
プロセス名 |
ヌル文字列/空白 |
TriggerData(MQCHAR64型) |
トリガデータ |
ヌル文字列/空白 |
ApplType(MQLONG型) |
アプリケーションタイプ |
0 |
ApplId(MQCHAR256型) |
アプリケーション識別子 |
ヌル文字列/空白 |
EnvData(MQCHAR128型) |
環境データ |
ヌル文字列/空白 |
UserData(MQCHAR128型) |
ユーザデータ |
ヌル文字列/空白 |
概要
目的
この構造体には,トリガメッセージのデータが記述されます。キューマネジャは,トリガイベントが発生したときに,トリガモニタアプリケーションへトリガメッセージを通知します。
フォーマット名
MQFMT_TRIGGER
文字セットおよびマシンコード
MQTM構造体の文字データは,MQTM構造体を生成するキューマネジャの文字セットに従います。MQTM構造体の数値データは,MQTM構造体を生成するキューマネジャのマシンコードに従います。
MQTM構造体の文字セットおよびマシンコードは,次に示す構造体中のCodedCharSetIdおよびEncodingフィールドで指定されます。
-
MQMD構造体(MQTM構造体がメッセージデータの先頭にある場合)
-
MQTM構造体に先行するヘッダ構造体(その他のすべての場合)
使用方法
トリガモニタアプリケーションがほかのアプリケーションを起動するとき,トリガメッセージ内の幾つかの情報を,そのアプリケーションに渡す必要があります。そのアプリケーションで必要となる情報には,QName,TriggerData,UserDataなどがあります。トリガによるアプリケーション開始については,マニュアル「TP1/Message Queue プログラム作成の手引」を参照してください。
トリガメッセージのMQMD構造体
トリガメッセージのMQMD構造体のフィールドには,次の値が設定されます。これは,トリガメッセージを取り出したMQGET命令の,MsgDesc引数で返される値です。
MQMD構造体のフィールド |
値 |
---|---|
StrucId |
MQMD_STRUC_ID |
Version |
MQMD_VERSION_1 |
Report |
MQRO_NONE |
MsgType |
MQMT_DATAGRAM |
Expiry |
MQEI_UNLIMITED |
Feedback |
MQFB_NONE |
Encoding |
MQENC_NATIVE |
CodedCharSetId |
キューマネジャのCodedCharSetId属性の値 |
Format |
MQFMT_TRIGGER |
Priority |
MQPRI_PRIORITY_AS_Q_DEF(イニシエーションキューに定義された,省略時のメッセージ優先度) |
Persistence |
MQPER_NOT_PERSISTENT |
MsgId |
ユニークな値 |
CorrelId |
MQCI_NONE |
BackoutCount |
0 |
ReplyToQ |
空白 |
ReplyToQMgr |
空白 |
UserIdentifier |
空白 |
AccountingToken |
MQACT_NONE |
ApplIdentityData |
空白 |
PutApplType |
MQAT_QMGR |
PutApplName |
キューマネジャ名の先頭から28文字 |
PutDate |
トリガメッセージを通知した日付 |
PutTime |
トリガメッセージを通知した時刻 |
ApplOriginData |
空白 |
フィールド
構造体を構成するフィールドについて,アルファベット順に説明します。
● ApplId(MQCHAR256型) アプリケーション識別子
起動するアプリケーションを識別する文字列です。トリガメッセージを取り出したトリガモニタアプリケーションで使用します。キューマネジャはこのフィールドに,ProcessNameのプロセスオブジェクトのApplId属性の値を設定します。キューマネジャはこの内容を特に使用しません。
ApplIdの意味は,トリガモニタアプリケーションによって決まります。IBM MQが提供するトリガモニタでは,ApplIdを実行プログラムの名前にする必要があります。
このフィールドの長さは,MQ_PROCESS_APPL_ID_LENGTHに定義されています。
このフィールドの初期値は,C言語ではヌル文字列です。そのほかのプログラミング言語では,256個の空白です。
● ApplType(MQLONG型) アプリケーションタイプ
起動するアプリケーションの種類です。トリガメッセージを取り出したトリガモニタアプリケーションで使用します。キューマネジャはこのフィールドに,ProcessNameのプロセスオブジェクトのApplType属性の値を設定します。キューマネジャはこの内容を特に使用しません。
ApplTypeフィールドには,次の標準の値があります。また,ユーザが定義した値も使用できます。ただし,ユーザが定義できる値の範囲はMQAT_USER_FIRSTからMQAT_USER_LASTまでです。
MQAT_DOS:PC-DOS上のIBM MQクライアントアプリケーション
MQAT_OS2:OS/2またはプレゼンテーションマネジャアプリケーション
MQAT_WINDOWS:16ビットWindowsアプリケーション
MQAT_WINDOWS_NT:32ビットWindowsアプリケーション
MQAT_USER_FIRST:ユーザが定義できるアプリケーションタイプの最小値
MQAT_USER_LAST:ユーザが定義できるアプリケーションタイプの最大値
このフィールドの初期値は0です。
● EnvData(MQCHAR128型) 環境データ
起動するアプリケーションに関連する環境についての文字データです。トリガメッセージを取り出したトリガモニタアプリケーションで使用します。キューマネジャは,このフィールドにProcessNameのプロセスオブジェクトのEnvData属性の値を設定します。キューマネジャはこの内容を特に使用しません。
このフィールドの長さは,MQ_PROCESS_ENV_DATA_LENGTHに定義されています。
このフィールドの初期値は,C言語ではヌル文字列です。そのほかのプログラミング言語では,128個の空白です。
● ProcessName(MQCHAR48型) プロセス名
トリガイベントが発生したキューのプロセスオブジェクトの名称です。トリガメッセージを取り出したトリガモニタアプリケーションで使用します。キューマネジャはこのフィールドに,QNameのキューのProcessName属性の値を設定します。
フィールドの長さより名称が短い場合,余りが空白で埋められます。ヌル文字は使用されません。このフィールドの長さは,MQ_PROCESS_NAME_LENGTHに定義されています。
このフィールドの初期値は,C言語ではヌル文字列です。そのほかのプログラミング言語では,48個の空白です。
● QName(MQCHAR48型) イベント発生キュー名
トリガイベントが発生したキューの名称です。このキューの名称は,トリガモニタアプリケーションによって起動されたアプリケーションで使用します。キューマネジャは,このフィールドにトリガイベントが発生したキューのQName属性の値を設定します。
フィールドの長さより名称が短い場合,余りが空白で埋められます。ヌル文字は使用されません。このフィールドの長さは,MQ_Q_NAME_LENGTHに定義されています。
このフィールドの初期値は,C言語ではヌル文字列です。そのほかのプログラミング言語では,48個の空白です。
● StrucId(MQCHAR4型) 構造体識別子
次の値を取ります。
- MQTM_STRUC_ID
-
トリガメッセージの構造体識別子
C言語では,MQTM_STRUC_ID_ARRAYも定義されています。これは,MQTM_STRUC_IDと同じ値です。ただし,文字列ではなく文字の配列として定義されています。
このフィールドの初期値はMQTM_STRUC_IDです。
● TriggerData(MQCHAR64型) トリガデータ
任意の形式のデータです。トリガメッセージを取り出したトリガモニタアプリケーションで使用します。キューマネジャはこのフィールドに,QNameのキューのTriggerData属性の値を設定します。キューマネジャはこの内容を特に使用しません。
このフィールドの長さは,MQ_TRIGGER_DATA_LENGTHに定義されています。
このフィールドの初期値は,C言語ではヌル文字列です。そのほかのプログラミング言語では,64個の空白です。