Hitachi

OpenTP1 Version 7 OpenTP1 メッセージキューイング機能 TP1/Message Queue 使用の手引


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サーバ開始処理でエラーになります。

mqaquegrp定義コマンドでキューファイル二重化構成を定義しているキューファイルにキュー(動的キュー)を作成する場合,MQAサービス定義ファイルにA系キューファイルを指定したmqaqueatl定義を指定するようにしてください。

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

オプション

● -q キュー記述子

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

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

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

指定例を次に示します。

-q "svrg01,svr01"

● -g 取り出し許可

 〜《allowed》

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

  • allowed

    取り出し操作は許可されます(属性値:MQQA_GET_ALLOWED)。

  • inhibited

    取り出し操作は禁止されます(属性値:MQQA_GET_INHIBITED)。

● -p 登録許可

 〜《allowed》

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

  • allowed

    登録操作は許可されます(属性値:MQQA_PUT_ALLOWED)。

  • inhibited

    登録操作は禁止されます(属性値:MQQA_PUT_INHIBITED)。

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

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

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

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

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

 〜《persistent》

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

  • persistent

    メッセージを永続にします(属性値:MQPER_PERSISTENT)。

  • notpersistent

    メッセージを永続にしません(属性値:MQPER_NOT_PERSISTENT)。

● -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属性)を指定します。

  • shareble

    キューを共用できます(属性値:MQQA_SHAREABLE)。

    MQOO_INPUT_SHAREDオプション指定の多重オープンができます。

  • notshareble

    キューを共用できません(属性値:MQQA_NOT_SHAREABLE)。

    MQOO_INPUT_SHAREDオプション指定のMQOPEN命令は,MQOO_INPUT_EXCLUSIVEと同様に処理されます。

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

 〜《exclusive》

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

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

  • exclusive

    排他アクセスのメッセージ取り出し用にオープンします(属性値:MQOO_INPUT_EXCLUSIVE)。

    MQOPEN命令呼び出し元アプリケーション自身またはほかのアプリケーションによって,キューがすでに入力用にオープンされていると,そのタイプがどのようなものであっても(MQOO_INPUT_SHAREDやMQOO_INPUT_EXCLUSIVE)理由コードMQRC_OBJECT_IN_USEでエラーになります。

  • shared

    共用アクセスのメッセージ取り出し用にオープンします(属性値:MQOO_INPUT_SHARED)。

    MQOPEN命令呼び出し元アプリケーション自身またはほかのアプリケーションによって,キューがMQOO_INPUT_SHAREDですでにオープンされている場合,命令は成功します。しかし,MQOO_INPUT_EXCLUSIVEでオープンされている場合は,理由コードMQRC_OBJECT_IN_USEでエラーになります。

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

 〜《fifo》

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

  • priority

    優先度の順序でメッセージが返されます(属性値:MQMDS_PRIORITY)。

    MQGET命令は,指定される選択基準を満足する最も優先度の高いメッセージを返します。各優先度のレベル内では,FIFO(先入れ先出し)の順序で返します。

  • fifo

    FIFO(先入れ先出し)の順序でメッセージが返されます(属性値:MQMDS_FIFO)。

    MQGET命令は,優先度を無視して,指定される選択基準を満足する先頭のメッセージを返します。

● -r キュー保持時間

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

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

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

● -k 定義タイプ

 〜《permanent》

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

  • permanent

    永続的動的キュー(属性値:MQQDT_PERMANENT_DYNAMIC)

  • temporary

    一時的動的キュー(属性値:MQQDT_TEMPORARY_DYNAMIC)

    一時的動的キューとは,MQAサーバの再開始または正常開始時に引き継がれないキューのことです。

● -u 使用種別

 〜《normal》

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

  • normal

    通常に使用(通常キュー)(属性値:MQUS_NORMAL)

    通常のアプリケーションが,メッセージの登録または取り出しをする場合に指定します。

  • transmission

    転送キューとして使用(属性値:MQUS_TRANSMISSION)

    リモートキューマネジャあてのメッセージを保持する場合に指定します。

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

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

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

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

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

● -c トリガ制御

 〜《on》

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

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

  • off

    トリガメッセージをキューに書き込みません(属性値:MQTC_OFF)。

    -tオプション(トリガタイプ)を指定してもトリガメッセージはキューに書き込まれません。

  • on

    トリガメッセージをキューに書き込みます(属性値:MQTC_ON)。

● -t トリガタイプ

 〜《every》

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

  • every

    メッセージごとに通知されます(属性値:MQTT_EVERY)。

    1個のメッセージがキューに到着するごとに,トリガメッセージが書き込まれます。

  • first

    キューが空でないときに通知されます(属性値:MQTT_FIRST)。

    キューが空(メッセージが1個もない)の状態から空でない(1個以上のメッセージがある)状態へ移行した場合に,トリガメッセージが書き込まれます。

    このモデルキューを基に転送キューを作成する場合は,firstを指定してください。

  • depth

    一定の格納数(下限値)を超えたときに通知されます(属性値:MQTT_DEPTH)。

    キューに一定数(トリガのためのメッセージ登録数の下限値)のメッセージがある場合にトリガメッセージが書き込まれます。トリガメッセージが書き込まれたあとに,それ以上のトリガメッセージが書き込まれないようにするために,再度明示的にトリガ処理を再開する(MQSET命令によるトリガ制御の変更)までトリガ制御属性にMQTC_OFFが設定されます。

  • none

    トリガメッセージは通知されません(属性値:MQTT_NONE)。

    キューにメッセージが到着しても,トリガメッセージは書き込まれません。この指定は,-cオプション(トリガ制御)でoffを指定した場合と同様の効果を持ちます。

● -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命令で,配布リスト付きのメッセージをキューに書き込めるかどうかを指定します。

  • support

    配布リストに対応します。

  • nosupport

    配布リストに対応しません。

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

 〜《fixed》

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

  • fixed

    キューがオープンされたハンドルにあて先を固定します。

  • not_fixed

    キューにメッセージが登録されるとき,メッセージ単位にあて先を決定します。

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

 〜《off》

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

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

  • off

    メッセージ滞留時間監視を実行しません。

  • on

    メッセージ滞留時間監視を実行します。

コマンド引数

● モデルキューの定義名

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

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

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

● キューファイル名

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

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

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

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

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

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