Hitachi

OpenTP1 Version 7 OpenTP1 メッセージキューイング機能 TP1/Message Queue プログラム作成リファレンス


キューマネジャの属性

キューマネジャ自身にも,多数の属性があります。これらは,MQOT_Q_MGRオブジェクトをオープンするときと,オープン時に返されたハンドルを使用してMQINQ命令を呼び出すときに必要です。

〈このページの構成〉

属性

● CodedCharSetId(MQLONG型) 文字セット識別子

キューマネジャで使用される文字セットを定義します。この文字セットは,オブジェクトの名称,キューの作成日付・作成時刻などの,MQIで定義するすべての文字列で使用されます。文字セットは,オブジェクト名として有効な1バイト文字を持つ必要があります。この識別子は,メッセージ内のアプリケーションデータには適用されません。

この属性の値を照会するときは,MQINQ命令でMQIA_CODED_CHAR_SET_IDセレクタを使用してください。

● DeadLetterQName(MQCHAR48型) デッドレターキュー名

ローカルキューマネジャに定義されたキューの名称です。メッセージがあて先キューに届かなかったときに,そのメッセージがこのキューへ転送されます。

例えば,次の場合にこのキューへ転送されます。

  • メッセージがキューマネジャに到着したが,キューマネジャにあて先キュー(受信キュー)が定義されていなかった場合

  • メッセージがキューマネジャに到着したが,次の理由などであて先キュー(受信キュー)に格納できなかった場合

− キューが満杯のとき

− 登録が禁止されていたとき

− 送信側のノードが,キューへ登録する権限を持っていなかったとき

また,アプリケーションから直接メッセージをデッドレターキューへ登録することもできます。

報告メッセージも,通常のメッセージと同様に扱われます。つまり,報告メッセージが目的のキューに格納できなかった場合も,デッドレターキューへ転送されます。なお,この場合の目的のキューは,通常,登録元メッセージのメッセージ記述子のReplyToQフィールドに指定されたキューになります。

注意事項

保持時間が終了したメッセージが破棄されるときは,このキューへは転送されません。ただし,登録元のアプリケーションが要求していれば,保持時間終了報告メッセージ(MQRO_EXPIRATION)が生成され,ReplyToQフィールドのキューに登録されます。

MQPUT命令またはMQPUT1命令で返される理由コードで,直後にエラーが判明する場合は,メッセージはデッドレターキューへ転送されません。例えば,登録が禁止されているローカルキューへ登録した場合などは,理由コードで直後にエラーが判明します。

デッドレターキューに格納されたメッセージの中には,そのアプリケーションデータの先頭に,MQDLH構造体が付けられているものがあります。この構造体には,デッドレターキューへメッセージが転送された理由が示されます。MQDLH構造体については,「1. データタイプ」の「MQDLH構造体 − デッドレターヘッダ」を参照してください。

このキューは,Usage属性がMQUS_NORMALのローカルキューである必要があります。

キューマネジャがデッドレターキューをサポートしていない場合,または定義していない場合は,この名称はすべて空白です。

TP1/Message Queueのすべてのキューマネジャは,デッドレターキューをサポートしていますが,初期値としては定義されていません。

デッドレターキューが未定義,満杯,そのほかの理由で使用できないとき,MCAによって転送されたメッセージは,代わりに転送キューで保持されます。

この属性の値を照会するときは,MQINQ命令でMQCA_DEAD_LETTER_Q_NAMEセレクタを使用してください。

この属性の長さは,MQ_Q_NAME_LENGTHに定義されています。

● DefXmitQName(MQCHAR48型) 省略時の転送キュー名

リモートキューマネジャへメッセージを送信するときに使用される転送キューの名称です。ほかに転送キューの指定がないときに使用されます。

省略時の転送キューがない場合,この名称は空白です。

この属性の値を照会するときは,MQINQ命令でMQCA_DEF_XMIT_Q_NAMEセレクタを使用してください。

この属性の長さは,MQ_Q_NAME_LENGTHに定義されています。

● DistLists(MQLONG型) 配布リストのサポート

MQPUT命令およびMQPUT1命令で,ローカルキューマネジャが配布リストをサポートしているかどうかを示します。値は次のどちらかです。

MQDL_SUPPORTED

配布リストはサポートされています。

MQDL_NOT_SUPPORTED

配布リストはサポートされていません

この属性の値を確定するためには,MQINQ命令で,MQIA_DIST_LISTSセレクタを使用してください。値を変更する場合は,MQSET命令を使用してください。

● MaxHandles(MQLONG型) 最大ハンドル数

一つのタスクで同時にオープンできるハンドルの最大数です。

この属性値の範囲は,1〜999999999です。

この属性の値を照会するときは,MQINQ命令でMQIA_MAX_HANDLESセレクタを使用してください。

● MaxMsgLength(MQLONG型) 最大メッセージ長

キューマネジャで扱えるメッセージの最大長です。キューのMaxMsgLength属性は,これより大きい値をとれません。

この属性の値を照会するときは,MQINQ命令でMQIA_MAX_MSG_LENGTHセレクタを使用してください。

● MaxPriority(MQLONG型) 最大メッセージ優先度

キューマネジャがサポートするメッセージ優先度の最大値です。優先度の範囲は,0からMaxPriority属性の値までです。

この属性の値を照会するときは,MQINQ命令でMQIA_MAX_PRIORITYセレクタを使用してください。

● MaxUncommittedMsgs(MQLONG型) トランザクション完了待ち最大メッセージ数

TP1/Message Queueでは,この属性は使用されません。

この属性値は,常に0です。

この属性の値を照会するときは,MQINQ命令でMQIA_MAX_UNCOMMITTED_MSGSセレクタを使用してください。

● Platform(MQLONG型) プラットフォーム

キューマネジャが動作しているプラットフォームのアーキテクチャを示します。

MQPL_AIX:AIX

MQPL_MVS:MVS/ESA

MQPL_OPEN_TP1:OpenTP1

MQPL_OS2:OS/2

MQPL_OS400:OS/400

MQPL_UNIX:UNIX

MQPL_WINDOWS:Windows 3.1

MQPL_WINDOWS_NT:Windows

MQPL_XDM:XDM

MQPL_TMS_4V:TMS-4V/SP/Message Queue

この属性の値を照会するときは,MQINQ命令でMQIA_PLATFORMセレクタを使用してください。

● QMgrDesc(MQCHAR64型) キューマネジャ記述子

補足説明を記述するフィールドです。キューマネジャはこの内容を特に使用しません。このフィールドには,表示できる文字だけを使用してください。ヌル文字は使用できません。必要に応じて余りを空白で埋めてください。

注意事項

キューマネジャの文字セットにない,つまり,キューマネジャのCodedCharSetId属性で定義されていない文字は,ほかのキューマネジャへ送信したとき,正しく変換されないことがあります。

この属性の値を照会するときは,MQINQ命令でMQCA_Q_MGR_DESCセレクタを使用してください。

この属性の長さは,MQ_Q_MGR_DESC_LENGTHに定義されています。

● QMgrName(MQCHAR48型) キューマネジャ名

ローカルキューマネジャの名称です。これは,アプリケーションがキューマネジャに接続するために使用する名称です。

名称の先頭の12文字は,ユニークなメッセージ識別子が生成されるときに使用されます。詳細については,「1. データタイプ」の「MQMD構造体 − メッセージ記述子」でMsgIdフィールドの説明を参照してください。通信するキューマネジャ同士では,名称の先頭の12文字が互いに異なっている必要があります。これによって,キューマネジャのネットワークで,メッセージ識別子がユニークになります。

この属性の値を照会するときは,MQINQ命令でMQCA_Q_MGR_NAMEセレクタを使用してください。

この属性の長さは,MQ_Q_MGR_NAME_LENGTHに定義されています。

● SyncPoint(MQLONG型) トランザクション有効性

MQGET命令,MQPUT命令,およびMQPUT1命令の同期点処理をローカルキューマネジャでサポートするかどうかを示します。

MQSP_AVAILABLE:トランザクションの同期点処理をサポートします。

MQSP_NOT_AVAILABLE:トランザクションの同期点処理をサポートしません。

この属性の値を照会するときは,MQINQ命令でMQIA_SYNCPOINTセレクタを使用してください。

● TriggerInterval(MQLONG型) トリガ間隔

トリガメッセージの数を抑制するために使用される時間間隔で,単位はミリ秒です。この属性は,TriggerType属性がMQTT_FIRSTのときだけ有効です。MQTT_FIRSTのときは,通常,空のキューに適切なメッセージが到着したときだけ,トリガメッセージが通知されます。ただし,MQTT_FIRSTの場合でもキューが空ではない場合に特別なトリガメッセージを通知させることができます。これらの特別なトリガメッセージは,TriggerInterval属性の時間間隔より頻繁に通知されることはありません。

トリガについては,マニュアル「TP1/Message Queue プログラム作成の手引」を参照してください。

この属性値の範囲は,0〜999999999です。

この属性の値を照会するときは,MQINQ命令でMQIA_TRIGGER_INTERVALセレクタを使用してください。