キューの属性
キューマネジャは次に示すキュータイプをサポートします。
- ローカルキュー
-
メッセージを保存する物理的なキューです。ローカルキューマネジャにあります。
ローカルキューマネジャに接続したアプリケーションは,このタイプのキューにメッセージを登録したり取り出したりできます。キューのQType属性値はMQQT_LOCALです。
- クラスタキュー
-
メッセージを保存する物理的なキューです。ローカルキューマネジャにあったり,ローカルキューマネジャと同じクラスタ内の一つ以上のキューマネジャにあったりします。
ローカルキューマネジャに接続したアプリケーションは,キューの場所に関係なく,このタイプのキューにメッセージを登録できます。ローカルキューマネジャにクラスタキューがある場合は,ローカルキューと同じ動作をし,ローカルキューマネジャに接続したアプリケーションはクラスタキューからメッセージを取り出せます。キューのQType属性値はMQQT_CLUSTERです。
- リモートキューのローカル定義
-
これは物理的なキューではなく,リモートキューマネジャにあるキューのローカル定義です。リモートキューのローカル定義にある情報は,リモートキューマネジャへのメッセージの送信経路をローカルキューマネジャに知らせます。
ローカルキューマネジャに接続したアプリケーションは,このタイプのキューにメッセージを登録できます。メッセージは実際にはローカルの転送キューに登録されます。転送キューはリモートキューマネジャへのメッセージの転送に使用されるキューです。キューのQType属性値はMQQT_REMOTEです。
また,リモートキューのローカル定義は次に示す目的でも使用できます。
-
応答キューの別名
定義名が応答キュー名の場合です。名称解決については,マニュアル「TP1/Message Queue プログラム作成の手引」を参照してください。
-
キューマネジャの別名
定義名がキューマネジャの別名の場合です。名称解決については,マニュアル「TP1/Message Queue プログラム作成の手引」を参照してください。
-
- 別名キュー
-
これは物理的なキューではなく,ローカルキュー,クラスタキューまたはリモートキューのローカル定義の別名です。別名が解決するキューの名前は,別名キューの属性定義にあります。
ローカルキューマネジャに接続したアプリケーションは,このタイプのキューにメッセージを登録できます。メッセージは実際には別名が解決されたキューに登録されます。別名がローカルキューまたはローカルのクラスタキューに解決される場合,アプリケーションは別名キューからメッセージを取り出せます。キューのQType属性値はMQQT_ALIASです。
- モデルキュー
-
これは物理的なキューではなく,ローカルキューを生成するための属性の定義です。
このタイプのキューにメッセージは登録できません。
キュー属性には,すべてのキューに適用できる属性と,特定のキュータイプに適用できる属性があります。各タイプに適用できる属性を次の表に示します。属性をアルファベット順に示します。
|
属性 |
説明 |
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|---|---|
|
ベースキュー名 |
× |
× |
○ |
× |
× |
|
|
キューが属するクラスタの名称 |
○ |
× |
○ |
○ |
× |
|
|
作成日付 |
○ |
× |
× |
× |
× |
|
|
作成時刻 |
○ |
× |
× |
× |
× |
|
|
メッセージ登録数 |
○ |
× |
× |
× |
× |
|
|
デフォルトバインディング |
○ |
× |
○ |
○ |
○ |
|
|
定義タイプ |
○ |
○ |
× |
× |
× |
|
|
省略時の取り出しオプション |
○ |
○ |
× |
× |
× |
|
|
省略時のメッセージ永続性 |
○ |
○ |
○ |
○ |
○ |
|
|
省略時のメッセージ優先度 |
○ |
○ |
○ |
○ |
○ |
|
|
配布リストのサポート |
○ |
○ |
× |
× |
× |
|
|
ロールバック回数記録方法 |
○ |
○ |
× |
× |
× |
|
|
取り出し許可 |
○ |
○ |
○ |
× |
× |
|
|
登録許可 |
○ |
○ |
○ |
○ |
○ |
|
|
イニシエーションキュー名 |
○ |
○ |
× |
× |
× |
|
|
最大メッセージ長 |
○ |
○ |
× |
× |
× |
|
|
最大メッセージ登録数 |
○ |
○ |
× |
× |
× |
|
|
メッセージ配布順序 |
○ |
○ |
× |
× |
× |
|
|
入力オープン数 |
○ |
× |
× |
× |
× |
|
|
出力オープン数 |
○ |
× |
× |
× |
× |
|
|
プロセス名 |
○ |
○ |
× |
× |
× |
|
|
キュー記述子 |
○ |
○ |
○ |
○ |
○ |
|
|
キュー名 |
○ |
× |
○ |
○ |
○ |
|
|
キュータイプ |
○ |
× |
○ |
○ |
○ |
|
|
リモートキューマネジャ名 |
× |
× |
× |
○ |
× |
|
|
リモートキュー名 |
× |
× |
× |
○ |
× |
|
|
キュー保持時間 |
○ |
○ |
× |
× |
× |
|
|
キューの有効範囲 |
○ |
× |
○ |
○ |
× |
|
|
取り出し時の共用性 |
○ |
○ |
× |
× |
× |
|
|
トリガ制御 |
○ |
○ |
× |
× |
× |
|
|
トリガデータ |
○ |
○ |
× |
× |
× |
|
|
トリガのためのメッセージ登録数の下限値 |
○ |
○ |
× |
× |
× |
|
|
トリガのためのメッセージ優先度の下限 |
○ |
○ |
× |
× |
× |
|
|
トリガタイプ |
○ |
○ |
× |
× |
× |
|
|
使用種別 |
○ |
○ |
× |
× |
× |
|
|
転送キュー名 |
× |
× |
× |
○ |
× |
- (凡例)
-
○:該当します。
×:該当しません。
- 注
-
-
モデルキューの欄は,モデルキューから生成されるローカルキューがどの属性を継承するかを示します。
-
クラスタキューの欄は,クラスタキューが照会用,または照会と登録用にオープンされるときに照会可能な属性を示します。クラスタキューが照会とあわせて,取り出し,検索,または設定の一つ以上のためにオープンされる場合は,代わりにローカルキューの欄を参照してください。
-
- 〈このページの構成〉
属性
● BaseQName(MQCHAR48型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
× |
× |
○ |
× |
× |
- (凡例)
-
○:該当します。
×:該当しません。
別名キューの実体を示します。ローカルキューマネジャに定義されたキューの名称です。キューを含むオブジェクトの命名規則については,マニュアル「TP1/Message Queue プログラム作成の手引」を参照してください。このキューのキュータイプは,次のどれかです。
この属性の値を照会するときは,MQINQ命令でMQCA_BASE_Q_NAMEセレクタを使用してください。
この属性の長さは,MQ_Q_NAME_LENGTHに定義されています。
● ClusterName(MQCHAR48型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
× |
○ |
○ |
× |
キューが所属しているクラスタの名称です。この属性はモデルキューには適用されません。
この属性の値を照会するときは,MQINQ命令でMQCA_CLUSTER_NAMEセレクタを使用してください。この属性の長さはMQ_CLUSTER_NAME_LENGTHに定義されています。
● CreationDate(MQCHAR12型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
× |
× |
× |
× |
キューを作成した日付です。形式は次のとおりです。
- YYYY−MM−DD△△
-
△△は2文字の空白を表します。この2文字の空白を埋めた12バイトです。
例:1995−09−30△△
例は,1995年9月30日を示します。
この属性の値を照会するときは,MQINQ命令でMQCA_CREATION_DATEセレクタを使用してください。
この属性の長さは,MQ_CREATION_DATE_LENGTHに定義されています。
● CreationTime(MQCHAR8型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
× |
× |
× |
× |
キューを作成した時刻です。形式は次のとおりです。
- HH.MM.SS
-
24時間時計を使用し,10時より前の時刻は先頭が0となります。
例:21.10.20
この属性は8文字列を使用します。また,現地時間を使用します。
この属性の値を照会するときは,MQINQ命令でMQCA_CREATION_TIMEセレクタを使用してください。
この属性の長さは,MQ_CREATION_TIME_LENGTHに定義されています。
● CurrentQDepth(MQLONG型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
× |
× |
× |
× |
現時点でキューに格納しているメッセージの個数です。MQPUT命令のときとMQGET命令のロールバックのときに,数が増加します。検索用ではないMQGET命令のときとMQPUT命令のロールバックのときに数が減少します。つまり,まだトランザクションがコミットしていないときでも,その中から登録したメッセージは,この数に算入されます。ただし,コミットしていないときのメッセージはMQGET命令で取り出せません。同様に,トランザクションはコミットしていなくてもMQGET命令で取り出された場合はこの数から除かれます。
保持時間を経過したが破棄されていないメッセージも,取り出しはできませんが数に含まれます。MQMD構造体のExpiryフィールドについては,「1. データタイプ」の「MQMD構造体 − メッセージ記述子」を参照してください。
この属性の値は,キューマネジャの操作で変動します。
この属性の値を照会するときは,MQINQ命令でMQIA_CURRENT_Q_DEPTHセレクタを使用してください。
● DefBind(MQLONG型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
× |
○ |
○ |
○ |
MQOPEN命令でMQOO_BIND_AS_Q_DEFが指定され,キューがクラスタキューである場合に使用されるデフォルトのバインディングです。次のどちらかの値を取ります。
MQBND_BIND_ON_OPEN:バインディングはMQOPEN命令で固定されます。
MQBND_BIND_NOT_FIXED:バインディングは固定されません。
この属性の値を照会するときは,MQINQ命令でMQIA_DEF_BINDセレクタを使用してください。
● DefinitionType(MQLONG型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
○ |
× |
× |
× |
キューを定義する種類を示します。次のどれかの値を取ります。
- MQQDT_PREDEFINED
-
定義済みキュー
システム管理者が作成する永続的キューです。システム管理者だけが削除できます。
- MQQDT_PERMANENT_DYNAMIC
-
永続的動的キュー
アプリケーションが呼び出すMQOPEN命令によって,モデルキューの名称で作成される永続的キューです。キューの名称は,オブジェクト記述子であるMQOD構造体に指定します。そのモデルキューのDefinitionType属性はMQQDT_PERMANENT_DYNAMICです。永続的動的キューは,MQCLOSE命令で削除できます。詳細については,「2. メッセージキューイング機能の命令」の「MQCLOSE命令 − オブジェクトのクローズ」の説明を参照してください。
- MQQDT_TEMPORARY_DYNAMIC
-
一時的動的キュー
アプリケーションが呼び出すMQOPEN命令によって,モデルキューの名称で作成される一時的キューです。キューの名称は,オブジェクト記述子に指定します。そのモデルキューのDefinitionType属性はMQQDT_TEMPORARY_DYNAMICです。一時的動的キューは,キューを作成したアプリケーションがMQCLOSE命令を呼び出したときに,自動的に削除されます。
モデルキューは常に定義済みであるため,モデルキュー定義のこの属性はMQQDT_PREDEFINEDです。MQINQ命令でモデルキューの属性を照会した場合,このモデルキューを基にして生成された動的キューの属性が照会されます。
この属性の値を照会するときは,MQINQ命令でMQIA_DEFINITION_TYPEセレクタを使用してください。
● DefInputOpenOption(MQLONG型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
○ |
× |
× |
× |
取り出し用にキューをオープンしたときの排他方法の省略時解釈値です。MQOPEN命令でMQOO_INPUT_AS_Q_DEFを指定したときに,この属性値が使用されます。次のどちらかの値を取ります。
- MQOO_INPUT_EXCLUSIVE
-
排他アクセスのメッセージ取り出し用にオープンします。
そのキューは,以降のMQGET命令で使用します。そのキューがMQOO_INPUT_SHAREDオプションまたはMQOO_INPUT_EXCLUSIVEオプションのどちらの場合も,ほかのアプリケーションによってすでに取り出し用にオープンされていると,理由コードMQRC_OBJECT_IN_USEでMQOPEN命令は失敗します。
- MQOO_INPUT_SHARED
-
共用アクセスのメッセージ取り出し用にオープンします。
そのキューは,以降のMQGET命令で使用します。そのキューがほかのアプリケーションによってすでにオープンされていても,MQOO_INPUT_SHAREDオプションでオープンされている場合は,MQOPEN命令は成功します。MQOO_INPUT_EXCLUSIVEでオープンされていると,理由コードMQRC_OBJECT_IN_USEでMQOPEN命令は失敗します。
この属性の値を照会するときは,MQINQ命令でMQIA_DEF_INPUT_OPEN_OPTIONセレクタを使用してください。
● DefPersistence(MQLONG型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
○ |
○ |
○ |
○ |
キュー内のメッセージに対する省略時の永続性です。登録時のメッセージ記述子でMQPER_PERSISTENCE_AS_Q_DEFを指定したときに,この属性値が使用されます。
キューの実名をたどるまでに複数の定義がある場合,最初に登録したキューの定義のこの属性が,MQPUTまたはMQPUT1命令の発行時に省略時のメッセージ永続性になります。これは,次に示すオブジェクトに登録する場合に発生します。
-
別名キュー
-
ローカルキュー
-
リモートキューのローカル定義
-
キューマネジャの別名
-
転送キュー(例えばDefXmitQNameキュー)
次のどちらかの値を取ります。
- MQPER_PERSISTENT
-
永続メッセージにします。
メッセージは,システム障害が発生したりキューマネジャを再開始したりしても失われません。一時的動的キューは再開始時に失われるので,永続メッセージは一時的動的キューに格納できません。永続メッセージは,永続的動的キューおよび定義済みキューに登録できます。
- MQPER_NOT_PERSISTENT
-
永続メッセージにしません。
メッセージは,システム障害が発生したりキューマネジャを再開始したりすると失われます。再開始の時点で補助記憶装置にメッセージが残っている場合でも,同様です。
永続メッセージと非永続メッセージを,同じキューに格納できます。
この属性の値を照会するときは,MQINQ命令でMQIA_DEF_PERSISTENCEセレクタを使用してください。
● DefPriority(MQLONG型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
○ |
○ |
○ |
○ |
キュー内のメッセージに対する省略時の優先度です。登録時のメッセージ記述子でMQPRI_PRIORITY_AS_Q_DEFを指定したときに,この属性値が使用されます。
キューの実名をたどるまでに複数の定義がある場合,最初に登録したキューの定義のこの属性が,省略時のメッセージ優先度になります。これは,次に示すキューに登録する場合に発生します。
-
別名キュー
-
ローカルキュー
-
リモートキューのローカル定義
-
キューマネジャの別名
-
転送キュー(例えばDefXmitQNameキュー)
MsgDeliverySequence属性がMQMDS_PRIORITYのキューでは,メッセージのキュー内の位置は,その優先度に依存します。MsgDeliverySequence属性がMQMDS_FIFOのキューでは,すべてのメッセージは,実体のキューのDefPriority属性の優先度で登録されます。このときは,メッセージ記述子に指定した優先度は関係ありません。詳細については,MsgDeliverySequence属性の説明を参照してください。
メッセージ優先度の範囲は,0からMaxPriority属性の値までです。詳細については,この章の「キューマネジャの属性」でMaxPriority属性の説明を参照してください。
この属性の値を照会するときは,MQINQ命令でMQIA_DEF_PRIORITYセレクタを使用してください。
● DistLists(MQLONG型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
○ |
× |
× |
× |
配布リストメッセージを,キューに登録できるかどうか示します。
属性は,チャネルのもう一方のキューマネジャが配布リストをサポートしているか,MCAによってローカルキューに通知するために設定されます。チャネルの向こう側のキューマネジャ(相手キューマネジャ)は,送信MCAによってローカル転送キューから取り出されたあと,メッセージを受け取ります。
DistLists属性は,送信MCAによって,相手キューマネジャ上の受信MCAと接続する時に,常に設定されます。送信MCAは,ローカルキューマネジャが相手キューマネジャが正しく処理できるメッセージだけを転送キューに登録するようにします。
この属性は主に転送キューに使用されますが,記述された処理は,キューに対して定義された使用方法(Usage属性)とは関係なく実行されます。
次の値を取ります。
- MQDL_SUPPORTED
-
配布リストはサポートされています。
配布リストメッセージはキューに格納され,そのままの形式で相手キューマネジャに転送されます。したがって,メッセージを複数のあて先に送信するときの処理を削減します。
- MQDL_NOT_SUPPORTED
-
配布リストはサポートされていません。
配布リストメッセージは,キューに格納されていません。これは,相手キューマネジャが配布リストをサポートしていないためです。アプリケーションが配布リストメッセージを登録し,メッセージがこのキューに登録されると,キューマネジャは配布リストを分割します。そして,代わりにキューにメッセージを登録します。したがって,メッセージを複数のあて先に送信するときの処理が増加します。ただし,メッセージが相手キューマネジャによって正しく処理されることは保証されます。
DistLists属性の値を確定するためには,MQINQ命令で,MQIA_DIST_LISTSセレクタを使用してください。
この属性の値を変更するにはMQSET命令を使用します。
● HardenGetBackout(MQLONG型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
○ |
× |
× |
× |
メッセージ記述子(MQMD構造体)のBackoutCountフィールドのロールバック回数に関連する情報です。
TP1/Message Queueでは,この属性は常に次の値になります。
- MQQA_BACKOUT_NOT_HARDENED
-
バックアウト回数がカウントされない場合があります。このキューにあるメッセージのバックアウト回数が正確であることを保証するような記録はしません。回数は実際の値よりも小さい場合があります。
この属性の値を照会するときは,MQINQ命令でMQIA_HARDEN_GET_BACKOUTセレクタを使用してください。
● InhibitGet(MQLONG型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
○ |
○ |
× |
× |
このキューからの取り出しを許可するかどうかを制御します。
この属性は,ローカルキュー,モデルキュー,または別名キューのときだけ有効です。
別名キューでMQGET命令が成功するためには,別名キューとそのベースキューの両方で取り出しが許可されている必要があります。
次のどちらかの値を取ります。
- MQQA_GET_INHIBITED
-
取り出しを禁止します。
MQGET命令は,理由コードMQRC_GET_INHIBITEDで失敗します。MQGET命令でMQGMO_BROWSE_FIRSTまたはMQGMO_BROWSE_NEXTオプションを指定した場合も含みます。
- 注意事項
-
トランザクション内のMQGET命令が成功したあとに,InhibitGet属性がMQQA_GET_INHIBITEDに変更された場合でも,そのトランザクションはコミットできます。
- MQQA_GET_ALLOWED
-
取り出しを許可します。
この属性の値を照会するときは,MQINQ命令でMQIA_INHIBIT_GETセレクタを使用してください。この属性を変更するときは,MQSET命令を使用してください。
● InhibitPut(MQLONG型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
○ |
○ |
○ |
○ |
このキューへの登録を許可するかどうかを制御します。
キューの実名をたどるまでに複数の定義がある場合,MQPUT命令およびMQPUT1が成功するためには,キューマネジャの別名の定義も含む,すべての定義で登録が許可されている必要があります。
次のどちらかの値を取ります。
- MQQA_PUT_INHIBITED
-
登録を禁止します。
MQPUT命令およびMQPUT1命令は,理由コードMQRC_PUT_INHIBITEDで失敗します。
- 注意事項
-
トランザクション内のMQPUT命令が成功したあとに,InhibitPut属性がMQQA_PUT_INHIBITEDに変更された場合でも,そのトランザクションはコミットできます。
- MQQA_PUT_ALLOWED
-
登録を許可します。
この属性の値を照会するときは,MQINQ命令でMQIA_INHIBIT_PUTセレクタを使用してください。この属性を変更するときは,MQSET命令を使用してください。
● InitiationQName(MQCHAR48型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
○ |
× |
× |
× |
ローカルキューマネジャに定義されたキューの名称です。つまり,キュータイプがMQQT_LOCALのキューです。イニシエーションキューは,キューマネジャがトリガメッセージを通知するあて先のキューです。トリガメッセージは,メッセージの到着を契機にアプリケーションを起動したいときに,それを要求すると通知されます。トリガメッセージの受信を契機として適切なアプリケーションを起動するために,トリガモニタアプリケーションでイニシエーションキューを監視する必要があります。
この属性の値を照会するときは,MQINQ命令でMQCA_INITIATION_Q_NAMEセレクタを使用してください。
この属性の長さは,MQ_Q_NAME_LENGTHに定義されています。
● MaxMsgLength(MQLONG型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
○ |
× |
× |
× |
このキューに格納するメッセージの,アプリケーションデータの最大長です。
キューのMaxMsgLength属性は,キューマネジャのMaxMsgLength属性とは異なる値を設定できます。また,キューに登録できる最も長い物理メッセージは,ローカルキューおよびメッセージキューマネジャのMaxMsgLength属性の値より小さくなります。
MaxMsgLengthの長さを超えるメッセージを登録しようとした場合,命令は,次のどちらかで失敗します。
-
メッセージがキューに対して大き過ぎる場合,理由コードMQRC_MSG_TOO_BIG_FOR_Qで失敗します。
-
メッセージがキューマネジャに対しては大きいが,キューに対しては大きくない場合は,理由コードMQRC_MSG_TOO_BIG_FOR_Q_MGRで失敗します。
この属性値の範囲は,0からキューマネジャのMaxMsgLength属性の値までです。
詳細については,「2. メッセージキューイング機能の命令」の「MQPUT命令 − メッセージの登録」でBufferLength引数の説明を参照してください。
この属性の値を照会するときは,MQINQ命令でMQIA_MAX_MSG_LENGTHセレクタを使用してください。
● MaxQDepth(MQLONG型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
○ |
× |
× |
× |
キューに同時に格納できるメッセージの最大数です。MaxQDepthの個数を格納しているキューにさらに登録しようとした場合,理由コードMQRC_Q_FULLで命令は失敗します。
コミット単位の処理およびメッセージのフラグメンテーションによって,キューにある物理メッセージ数がMaxQDepthを超える数になります。ただし,これはメッセージの取り出しには影響しません。キューにあるすべてのメッセージは,MQGET命令で取り出し可能です。
この属性の値は,0以上です。
この属性の値を照会するときは,MQINQ命令でMQIA_MAX_Q_DEPTHセレクタを使用してください。
● MsgDeliverySequence(MQLONG型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
○ |
× |
× |
× |
MQGET命令でアプリケーションに返されるメッセージの順序を示します。
- MQMDS_FIFO
-
FIFO順序(先入れ先出し)でメッセージが返されます。
該当するメッセージの中で最も早く到着したものが,MQGET命令で返されます。このとき,優先度は無視されます。
- MQMDS_PRIORITY
-
優先度の順序でメッセージが返されます。
該当するメッセージの中で最も優先度の高いものが,MQGET命令で返されます。同じ優先度のメッセージでは,FIFO順序(先入れ先出し)で返されます。
キューにメッセージが格納されているときに関連する属性が変更されると,配布順序は次のようになります。
MQGET命令で返されるメッセージの順序は,メッセージを格納したときのMsgDeliverySequence属性とDefPriority属性の値で決まります。
-
メッセージ到着時のMsgDeliverySequence属性がMQMDS_FIFOの場合,DefPriority属性のメッセージ優先度で格納されます。
-
メッセージ到着時のMsgDeliverySequence属性がMQMDS_PRIORITYの場合,メッセージ記述子のPriorityフィールドの優先度で格納されます。また,MQMD構造体のPriorityフィールドの値に影響することはありません。メッセージが最初に登録されたときの優先度を保ちます。
キューにメッセージが格納されているときにMsgDeliverySequence属性が変更されても,キュー内のメッセージの順序は変更されません。
DefPriority属性が変更されると,MsgDeliverySequence属性がMQMDS_FIFOの場合でも,必ずしもメッセージがFIFO順序で配布されるとは限りません。優先度の高いメッセージが,先に配布されることがあります。
この属性の値を照会するときは,MQINQ命令でMQIA_MSG_DELIVERY_SEQUENCEセレクタを使用してください。
● OpenInputCount(MQLONG型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
× |
× |
× |
× |
MQGET命令の取り出し用にそのキューを使用している,現時点のハンドルの個数です。このハンドルの総数は,ローカルキューマネジャがつかんでいます。
このキューの別名キューが取り出し用にオープンされた場合のハンドルも,この数に含まれます。検索など,取り出し以外の目的でオープンされた場合は,この数には含まれません。
この属性の値は,キューマネジャの操作で変動します。
この属性の値を照会するときは,MQINQ命令でMQIA_OPEN_INPUT_COUNTセレクタを使用してください。
● OpenOutputCount(MQLONG型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
× |
× |
× |
× |
MQPUT命令の登録用にそのキューを使用している,現時点のハンドルの個数です。このハンドルの総数は,ローカルキューマネジャがつかんでいます。リモートキューマネジャのキューを登録用にオープンした場合は,この数に含まれません。
このキューの別名キューが登録用にオープンされた場合のハンドルも,この数に含まれます。照会など,登録以外の目的でオープンされた場合は,この数に含まれません。
この属性の値は,キューマネジャの操作で変動します。
この属性の値を照会するときは,MQINQ命令でMQIA_OPEN_OUTPUT_COUNTセレクタを使用してください。
● ProcessName(MQCHAR48型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
○ |
× |
× |
× |
ローカルキューマネジャに定義されたプロセスオブジェクトの名称です。プロセスオブジェクトは,キューに対してサービスするプログラムを識別します。トリガについては,マニュアル「TP1/Message Queue プログラム作成の手引」を参照してください。
この属性の値を照会するときは,MQINQ命令でMQCA_PROCESS_NAMEセレクタを使用してください。
この属性の長さは,MQ_PROCESS_NAME_LENGTHに定義されています。
● QDesc(MQCHAR64型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
○ |
○ |
○ |
○ |
補足説明を記述するフィールドです。キューマネジャはこの内容を特に使用しません。このフィールドには,表示できる文字だけを使用してください。ヌル文字は使用できません。必要に応じて余りを空白で埋めてください。
- 注意事項
-
キューマネジャの文字セットにない,つまりキューマネジャのCodedCharSetId属性で定義されていない文字は,ほかのキューマネジャへ送信したとき,正しく変換されないことがあります。
この属性の値を照会するときは,MQINQ命令でMQCA_Q_DESCセレクタを使用してください。
この属性の長さは,MQ_Q_DESC_LENGTHに定義されています。
● QName(MQCHAR48型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
× |
○ |
○ |
○ |
ローカルキューマネジャに定義されたキューの名称です。キューを含むオブジェクトの命名規則については,マニュアル「TP1/Message Queue プログラム作成の手引」を参照してください。同じキューマネジャに定義されたキューの場合,キュー名の中に同じ文字列を含みます。このため,ローカルキューと別名キューが同じ名称になることはありません。
この属性の値を照会するときは,MQINQ命令でMQCA_Q_NAMEセレクタを使用してください。
この属性の長さは,MQ_Q_NAME_LENGTHに定義されています。
● QType(MQLONG型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
× |
○ |
○ |
○ |
次のどれかの値を取ります。
この属性の値を照会するときは,MQINQ命令でMQIA_Q_TYPEセレクタを使用してください。
● RemoteQMgrName(MQCHAR48型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
× |
× |
× |
○ |
× |
RemoteQName属性に示すキューを定義しているリモートキューマネジャの名称です。
アプリケーションがリモートキューのローカル定義をオープンする場合,オープンした時点でRemoteQMgrName属性が空白ではない必要があります。また,ローカルキューマネジャ名でもいけません。オープンした時点でXmitQName属性が空白の場合は,RemoteQMgrName属性と同じ名称のローカルキューが必要です。このキューは,転送キューとして使用されます。
この定義をキューマネジャの別名として使用する場合,RemoteQMgrName属性は,別名を付けられるキューマネジャの名称です。ローカルキューマネジャの名称でもかまいません。オープンした時点でXmitQName属性が空白の場合は,RemoteQMgrName属性と同じ名称のローカルキューが必要です。このキューは,転送キューとして使用されます。
この定義を応答キューの別名として使用する場合は,このRemoteQMgrName属性のキューマネジャ名が,ReplyToQMgrフィールドに設定されます。
- 注意事項
-
キューの定義を作成・修正したときには,この属性の内容が正しいかどうかはチェックされません。
この属性の値を照会するときは,MQINQ命令でMQCA_REMOTE_Q_MGR_NAMEセレクタを使用してください。
この属性の長さは,MQ_Q_MGR_NAME_LENGTHに定義されています。
● RemoteQName(MQCHAR48型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
× |
× |
× |
○ |
× |
RemoteQMgrName属性で示すリモートキューマネジャに定義されているキューの名称です。
アプリケーションがリモートキューのローカル定義をオープンする場合,オープンした時点でRemoteQName属性が空白ではない必要があります。
この定義をキューマネジャの別名として使用する場合,オープンした時点でRemoteQName属性が空白である必要があります。
この定義を応答キューの別名として使用する場合は,このRemoteQName属性のキュー名が,ReplyToQフィールドに設定されます。
- 注意事項
-
キューの定義を作成・修正したときには,この属性の内容が正しいかどうかはチェックされません。
この属性の値を照会するときは,MQINQ命令でMQCA_REMOTE_Q_NAMEセレクタを使用してください。
この属性の長さは,MQ_Q_NAME_LENGTHに定義されています。
● RetentionInterval(MQLONG型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
○ |
× |
× |
× |
キューを保持する時間です。この時間が経過すると,キューは破棄できる状態になります。
これは,キューが作成された日付および時刻からの時間で,単位は時間です。キューが作成された日付と時刻は,CreationDate属性とCreationTime属性にそれぞれ記録されています。
アプリケーションまたはオペレータは,必要がなくなったキューをRetentionInterval属性の値で判断して削除できます。
- 注意事項
-
キューマネジャがこの属性に従ってキューを削除することはありません。また,キュー保持時間が経過していないキューの削除を抑制することもありません。キューはユーザの判断で削除してください。
キュー保持期間は,不要になった永続的動的キューの増加を避けるために使用してください。なお,定義済みキューの場合でも使用できます。
この属性の値を照会するときは,MQINQ命令でMQIA_RETENTION_INTERVALセレクタを使用してください。
● Scope(MQLONG型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
× |
○ |
○ |
× |
セルディレクトリの範囲でこのキューに登録するかどうかを制御します。
次の値を取ります。
- MQSCO_Q_MGR
-
キューマネジャの範囲で使用します。
キューの定義は,キューマネジャの範囲で有効です。つまり,定義したキューマネジャ以外には認識されません。ほかのキューマネジャが登録用にこのキューをオープンするには,キューマネジャ名を指定するか,キューのローカル定義を使用する必要があります。
この属性の値を照会するときは,MQINQ命令でMQIA_SCOPEセレクタを使用してください。
● TriggerControl(MQLONG型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
○ |
× |
× |
× |
トリガメッセージをイニシエーションキューに通知させるかどうかを示します。トリガメッセージは,キューに対応するサービスのアプリケーションを起動(開始)する契機となります。トリガによるアプリケーション開始については,マニュアル「TP1/Message Queue プログラム作成の手引」を参照してください。
次のどちらかの値を取ります。
- MQTC_OFF
-
トリガメッセージを要求しません。
このキューのイベントでは,トリガメッセージは通知されません。この場合,TriggerType属性は無効です。
- MQTC_ON
-
トリガメッセージを要求します。
該当するトリガイベントがこのキューに発生したときに,トリガメッセージが通知されます。
この属性の値を照会するときは,MQINQ命令でMQIA_TRIGGER_CONTROLセレクタを使用してください。この属性を変更するときは,MQSET命令を使用してください。
● TriggerData(MQCHAR64型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
○ |
× |
× |
× |
任意の形式で設定できるトリガメッセージのデータです。キューマネジャはトリガメッセージを通知するときに,メッセージ内にこのデータを組み込みます。
キューマネジャはこの内容を特に使用しません。イニシエーションキューを監視するトリガモニタアプリケーション,またはトリガモニタアプリケーションによって起動(開始)されたアプリケーションで使用します。トリガによるアプリケーション開始については,マニュアル「TP1/Message Queue プログラム作成の手引」を参照してください。
このデータ内では,ヌル文字を使用できません。必要なら,余りを空白で埋めてください。
この属性の値を照会するときは,MQINQ命令でMQCA_TRIGGER_DATAセレクタを使用してください。この属性を変更するときは,MQSET命令を使用してください。
この属性の長さは,MQ_TRIGGER_DATA_LENGTHに定義されています。
● TriggerDepth(MQLONG型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
○ |
× |
× |
× |
トリガメッセージが通知されるまでの,キューのメッセージ登録数です。TriggerType属性がMQTT_DEPTHのときに使用されます。TriggerDepth属性の値は,1以上です。TriggerType属性がMQTT_DEPTH以外のときは,この属性は使用されません。トリガについては,マニュアル「TP1/Message Queue プログラム作成の手引」を参照してください。
この属性の値を照会するときは,MQINQ命令でMQIA_TRIGGER_DEPTHセレクタを使用してください。この属性を変更するときは,MQSET命令を使用してください。
● TriggerMsgPriority(MQLONG型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
○ |
× |
× |
× |
この属性値より低い優先度のメッセージでは,トリガメッセージは通知されません。つまり,キューマネジャがトリガメッセージを通知するかどうかを判断するとき,優先度の低いメッセージは無視されます。この属性値の範囲は,0からMaxPriority属性の値までです。この属性値が0の場合,すべてのメッセージについて,トリガメッセージを通知するかどうかが判断されます。トリガについては,マニュアル「TP1/Message Queue プログラム作成の手引」を参照してください。
この属性の値を照会するときは,MQINQ命令でMQIA_TRIGGER_MSG_PRIORITYセレクタを使用してください。この属性を変更するときは,MQSET命令を使用してください。
● TriggerType(MQLONG型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
○ |
× |
× |
× |
トリガメッセージを通知させる条件を示します。トリガについては,マニュアル「TP1/Message Queue プログラム作成の手引」を参照してください。
次のどれかの値を取ります。
- MQTT_NONE
-
トリガメッセージは通知されません。
このキューにメッセージが到着しても,トリガメッセージは通知されません。つまり,TriggerControl属性がMQTC_OFFの場合と同様です。
- MQTT_FIRST
-
空ではないときに通知されます。
このキューが空,つまり,メッセージがない状態から,空ではない,つまり,メッセージがある状態に変化したときに,トリガメッセージが通知されます。
- MQTT_EVERY
-
メッセージごとに通知されます。
メッセージがこのキューに到着するごとに,トリガメッセージが通知されます。
- MQTT_DEPTH
-
一定の格納数を超えたときに通知されます。
このキューに一定数(TriggerDepth属性の値)を超えてメッセージが格納されたときに,トリガメッセージが通知されます。トリガメッセージが通知されると,TriggerControl属性がMQTC_OFFになります。これによって,通知が連続することがなくなります。TriggerControl属性は,設定し直すまでMQTC_OFFのままです。
この属性の値を照会するときは,MQINQ命令でMQIA_TRIGGER_TYPEセレクタを使用してください。この属性を変更するときは,MQSET命令を使用してください。
● Usage(MQLONG型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
○ |
○ |
× |
× |
× |
キューの使用種別を示します。次のどちらかの値を取ります。
- MQUS_NORMAL
-
通常キュー
このキューは,通常のアプリケーションがメッセージを登録・取り出しするために使用されます。転送キューではありません。
- MQUS_TRANSMISSION
-
転送キュー
このキューは,リモートキューマネジャへ送信するメッセージを格納するために使用されます。通常のアプリケーションがメッセージをリモートキューへ送信するとき,メッセージはローカルキューマネジャによって一時的に転送キューに特別な形式で格納されます。その後,MCAが,転送キューからメッセージを取り出してリモートキューマネジャへ送信します。転送キューについては,マニュアル「TP1/Message Queue プログラム作成の手引」を参照してください。
アプリケーションは,転送キューをMQOO_OUTPUTオプションでオープンして,メッセージを直接それに登録できます。ユティリティアプリケーションがこれに当たります。そのアプリケーションは,メッセージデータの形式が正しいかどうか,注意する必要があります。詳細については,「1. データタイプ」の「MQXQH構造体 − 転送キューヘッダ」を参照してください。メッセージデータの形式が正しくない場合,転送処理中に障害が発生することがあります。コンテキストオプションMQPMO_*のどれかを指定しないと,コンテキストは付けられません。
この属性の値を照会するときは,MQINQ命令でMQIA_USAGEセレクタを使用してください。
● XmitQName(MQCHAR48型)
|
ローカルキュー |
モデルキュー |
別名キュー |
リモートキューのローカル定義 |
クラスタキュー |
|---|---|---|---|---|
|
× |
× |
× |
○ |
× |
この属性は,リモートキューのローカル定義またはキューマネジャの別名の場合に使用できます。オープンした時点でこの属性が空白ではない場合,メッセージを送信するための転送キューを示します。
XmitQName属性が空白の場合,RemoteQMgrName属性と同じ名称のキューが,代わりに転送キューとして使用されます。
キューマネジャの別名の場合で,RemoteQMgrName属性がローカルキューマネジャ名のとき,この属性は無視されます。
また,応答キューの別名の場合も,この属性は無視されます。
この属性の値を照会するときは,MQINQ命令でMQCA_XMIT_Q_NAMEセレクタを使用してください。
この属性の長さは,MQ_Q_NAME_LENGTHに定義されています。