mqaqueatlモデルキューの属性定義

形式

{{ mqaqueatl 〔-q  キュー記述子〕 〔-g  取り出し許可〕
            〔-p  登録許可〕
            〔-y  省略時のメッセージ優先度〕
            〔-e  省略時のメッセージ永続性〕  〔-a  プロセス名〕
            〔-d  最大メッセージ登録数〕  〔-l  最大メッセージ長〕
            〔-s  共用性〕  〔-o  省略時の取り出しオプション〕
            〔-m  メッセージ配布順序〕  〔-r  キュー保持時間〕
            〔-k  定義タイプ〕  〔-u  使用種別〕
            〔-i  イニシエーションキュー名〕
            〔-c  トリガ制御〕  〔-t  トリガタイプ〕
            〔-b  トリガのためのメッセージ優先度の下限値〕
            〔-n  トリガのためのメッセージ登録数の下限値〕
            〔-f  トリガデータ〕
            〔-j  配布リストのサポート〕
            〔-w  デフォルトのバインディング〕
            〔-v  メッセージ滞留時間監視の要否〕
            モデルキューの定義名 キューファイル名  }}

機能

オンライン中に動的に作成されるキュー(動的キュー)のモデルになる属性を指定します。

MQOPEN命令でモデルキューの定義名がオブジェクト名として指定された場合,作成される動的キューの属性は,モデルキューの属性定義の値になります。

この定義コマンドは複数指定できますが,モデルキューの定義名は重複して指定できません。重複して指定した場合,MQAサーバ開始処理でエラーになります。また,リモートキューのローカル定義名,および別名キュー名と重複した名称をモデルキューの定義名に指定した場合も,MQAサーバ開始処理でエラーになります。

TP1/Message Queue全体で登録できるキューの最大数は20,480個です。

オプション

● -q キュー記述子

 ~<1~64文字の文字列>

キューについてのユーザに任意の情報(QDesc属性)を指定します。キューマネジャはこの指定値を,一切チェックしません。省略した場合,キュー記述子は空白になります。

指定値に,(コンマ)を含む場合は文字列全体を"(引用符)で囲んでください。

指定例を次に示します。

-q "svrg01,svr01"

● -g 取り出し許可

 ~《allowed》

作成される動的キューに対する取り出し操作を許可するかどうか(InhibitGet属性)を指定します。

● -p 登録許可

 ~《allowed》

作成されるキューに対する登録操作を許可するかどうか(InhibitPut属性)を指定します。

● -y 省略時のメッセージ優先度

 ~<符号なし整数>((0~9))《0》

キューに登録されるメッセージの省略時の優先度(DefPriority属性)を指定します。優先度は,指定した値が小さいほど低く,大きいほど高くなります。

メッセージ記述子(MQMD構造体)にMQPRI_PRIORITY_AS_Q_DEFが指定され,メッセージがキューに登録される場合に,この指定値は使用されます。

● -e 省略時のメッセージ永続性

 ~《persistent》

キューに登録されるメッセージの省略時の永続性(DefPersistence属性)を指定します。

● -a プロセス名

 ~<1~48文字のMQ文字列>

プロセスオブジェクトの名称(ProcessName属性)を指定します。

ローカルキューマネジャのmqaprcdef定義コマンドで指定したプロセス名と同じ名称を指定してください。

プロセスオブジェクトは,トリガモニタアプリケーションを決定するために使用されます。トリガを使用する場合は,必ず指定してください。トリガが使用される場合に省略したとき,イニシエーションキュー障害になります。トリガが使用されない場合に省略したとき,プロセス名は空白になります。

● -d 最大メッセージ登録数

 ~<符号なし整数>((0~2147483647))《128》

キューに登録できるメッセージの最大値(MaxQDepth属性)を指定します。

ここで指定した数のメッセージがすでに格納されているキューに対してさらにメッセージを登録しようとすると,理由コードMQRC_Q_FULLでエラーになります。

● -l 最大メッセージ長

 ~<符号なし整数>((0~128000000))《4096000》

キューに登録されるメッセージの中に,入れることができるアプリケーションデータの最大値(MaxMsgLength属性)を指定します。キューに対してこの指定値を超える長さのメッセージを登録すると,理由コードMQRC_MSG_TOO_BIG_FOR_Qでエラーになります。

この指定値は,mqaquemgr定義コマンドの-lオプション(最大メッセージ長)の指定値以下にする必要があります。

転送キューの場合は,構造体データタイプを含んだ最大メッセージ長を設定してください。

● -s 共用性

 ~《notshareble》

キューが同時に何度も入力用にオープンできるかどうか(Shareability属性)を指定します。

● -o 省略時の取り出しオプション

 ~《exclusive》

キューを入力用にオープンする場合の省略時解釈値(DefInputOpenOption属性)を指定します。

キューオープン時のMQOPEN命令で,MQOO_INPUT_AS_Q_DEFオプションが指定された場合に,この値が使用されます。

● -m メッセージ配布順序

 ~《fifo》

メッセージがMQGET命令でアプリケーションに返される順序(MsgDeliverySequence属性)を指定します。

● -r キュー保持時間

 ~<符号なし整数>((0~65535))《8》(単位:時間)

キューを保持する時間(RetentionInterval属性)を指定します。キューを作成してからここで指定した時間が経過すると,キューは破棄対象になります。ただし,キューマネジャがこの指定値に基づいてキューを削除したり,保持時間が終了していないキューの削除を制限したりはしません。

MQINQ命令でこの指定値とキューの作成時間が返却されるため,必要な操作は,アプリケーションの責任でしてください。

● -k 定義タイプ

 ~《permanent》

作成するキューが永続的か一時的か(DefinitionType属性)を指定します。

● -u 使用種別

 ~《normal》

キューが何のために使用されるか(Usage属性)を指定します。

● -i イニシエーションキュー名

 ~<1~48文字のMQ文字列>

トリガメッセージを書き込むイニシエーションキューの名称(InitiationQName属性)を指定します。省略した場合,イニシエーションキュー名は空白になります。

イニシエーションキューは,ローカルキューマネジャで定義されるローカルキューとして定義されます。

イニシエーションキュー名を定義したキューにメッセージが到着し,アプリケーションの起動が要求されると,キューマネジャはここで指定したイニシエーションキューにトリガメッセージを送信します。イニシエーションキューは,トリガメッセージの受信後に適切なアプリケーションを起動するトリガモニタアプリケーションによって監視される必要があります。

● -c トリガ制御

 ~《on》

キューを処理するアプリケーションを起動させるために,トリガメッセージをイニシエーションキューに書き込むかどうか(TriggerControl属性)を指定します。

この指定値は,MQSET命令で変更できます。

● -t トリガタイプ

 ~《every》

メッセージがキューに到着した場合,トリガメッセージをイニシエーションキューに書き込む条件(TriggerType属性)を指定します。

● -b トリガのためのメッセージ優先度の下限値

 ~<符号なし整数>((0~9))《0》

トリガタイプがdepthの場合の,トリガメッセージを書き込む下限値(TriggerMsgPriority属性)をメッセージ優先度で指定します。

キューに到着したメッセージの優先度が,ここで指定した優先度より低い場合は,トリガメッセージを書き込むほかの条件を満たしていても,トリガメッセージは書き込まれません。トリガメッセージを書き込む条件については,マニュアル「TP1/Message Queue プログラム作成の手引」を参照してください。

● -n トリガのためのメッセージ登録数の下限値

 ~<符号なし整数>((1~65535))《1》

トリガタイプがdepthの場合の,トリガメッセージが書き込まれる前にキューになければならないメッセージの個数(TriggerDepth属性)を指定します。

この指定値には,-bオプションで指定した優先度より低い優先度のメッセージは含まれません。

● -f トリガデータ

 ~<1~64文字の文字列>

キューにメッセージが到着すると,イニシエーションキューにトリガメッセージが書き込まれます。この時,キューマネジャによってトリガメッセージに挿入される,ユーザに任意のデータ(TriggerData属性)を指定します。省略した場合,トリガデータは空白になります。

指定値に,(コンマ)を含む場合は文字列全体を"(引用符)で囲んでください。

指定例を次に示します。

-f "svrg01,svr01"

● -j 配布リストのサポート

 ~《nosupport》

MQPUT命令,およびMQPUT1命令で,配布リスト付きのメッセージをキューに書き込めるかどうかを指定します。

● -w デフォルトのバインディング

 ~《fixed》

あて先クラスタキューのバインディング(DefBind属性)を制御します。オープンするキューがクラスタキューの場合に適用されます。

● -v メッセージ滞留時間監視の要否

 ~《off》

メッセージの滞留時間を監視するかどうかを指定します。

このオプションにonを指定する場合は,set形式のmqa_msg_stay_timeオペランドにメッセージ滞留時間を指定してください。

コマンド引数

● モデルキューの定義名

 ~<1~48文字のMQ文字列>

モデルキューの定義名を指定します。

MQOPEN命令で動的キューを作成する場合は,この引数で指定した名称をオブジェクト名として指定してください。

● キューファイル名

 ~<1~59文字の文字列>

動的キューを格納するキューファイル名を指定します。mqaquegrp定義コマンドで設定したキューファイル名を指定してください。

この引数は,-kオプション(定義タイプ)でtemporaryを指定した場合も指定してください。一時的動的キューの情報は,基本的にはメモリ上だけで管理されますが,一時的動的キューの情報を管理するバッファの都合で,ファイルに出力される場合があります。その場合,どのキューファイルに出力すればよいかをキューマネジャは知る必要があるため,この引数は一時的動的キューに対しても有効です。

メッセージをキューに登録する場合は,指定されたキューファイルが属するキューファイルグループのどれかのキューファイルに登録します。

キューファイルグループに複数のキューファイルが対応づけられている場合,どのキューファイルにメッセージを登録するかは,キューアクセス競合時の負荷分散を考慮して,MQAサービスが決定します。

キューファイルパス名およびキューファイル名にスペースを指定しないでください。また,ファイルパス名の"/"個所に"/"を追加したキューファイルパス名を指定しないでください。指定した場合,動作は保証されません。