|
OTMQ_MIB - Oracle Tuxedo Message Queue (OTMQ)の管理情報ベース
OTMQ_MIBは、OTMQアプリケーション・キューを管理できるクラスを定義します。
各クラスの説明セクションには、次の4つのサブセクションがあります。
クラスの各属性に関する名前、型、パーミッション、値、およびデフォルト値を示す表。属性表の形式については以下に示してあります。
このMIBに含まれる各クラスは、4つの部分で記述されています。その1つが属性表です。属性表はクラス内の属性のリファレンス・ガイドであり、管理者、オペレータ、一般ユーザーがそれらの属性を使用してアプリケーションと対話するための方法を説明しています。
MIBは、共通TA_FLAGS属性を定義します。この属性はlong型で、共通MIBフラグ値とコンポーネントMIB固有フラグ値の両方を持ちます。次のフラグの値はOTMQ_MIBのために定義されています。これらのフラグ値は、任意の共通MIBフラグを使用してOR結合する必要があります。
QMIB_FORCECLOSE
T_OTMQSPACEオブジェクトのTA_STATE属性をCLEaningに設定する場合、このフラグは、キュー・スペースの状態がACTiveであっても、状態の変更が成功する必要があることを示します。
QMIB_FORCEDELETE
T_OTMQSPACEオブジェクトのTA_STATE属性をINValidに設定する場合、このフラグは、キュー・スペースの状態がACTiveであったり、そのキュー内にメッセージが存在していても、状態の変更が成功する必要があることを示します。同様に、T_OTMQオブジェクトのTA_STATE属性をINValidに設定する場合、このフラグは、メッセージが存在していたり、キュー・スペースにプロセスがアタッチされていても、キューの削除を許可します。
QMIB_FORCEPURGE
T_OTMQオブジェクトのTA_STATE属性をINValidに設定する場合、このフラグは、キューにメッセージが存在していても、状態の変更が成功する必要があることを示します。ただし、現在、選択したT_OTMQに格納されているメッセージがトランザクションに含まれる場合、状態の変更は失敗し、ユーザー・ログにエラーが書き込まれます。
このリファレンス・ページで説明する属性のフィールド表は、システムにインストールしたOracle Tuxedoソフトウェアのルート・ディレクトリからの相対パスで指定されるudataobj/tpadmファイルにあります。${TUXDIR}/udataobjディレクトリは、FLDTBLDIR32環境変数で指定されるパス・リスト(Windowsの場合はセミコロン区切りのリスト、それ以外の場合はコロン区切りのリスト)にアプリケーションによって追加される必要があり、フィールド表名tpadmは、FIELDTBLS32環境変数で指定されるカンマ区切りのリストに追加される必要があります。
このMIBはOracle Tuxedo Message Queue 12cリリース2 (12.1.3)以上のサイトでのみ提供されます(ネイティブおよびワークステーションの両方)。
T_OTMQクラスは、アプリケーション・キューを表します。単一のアプリケーション・キュー・スペースに1つ以上のアプリケーション・キューが存在する可能性があります。
すべてのキー・フィールドを未設定にすると、このクラスのインスタンスをすべて検索できません。反対に、1つのアプリケーション・キュー・スペースを明示的に指定するには、適切なキー・フィールドを用意する必要があります。これらの必須キー・フィールドはTA_APPQSPACENAME、TA_QMCONFIGおよびTA_LMIDです。ただし、アプリケーションが構成されていない場合(つまり、TUXCONFIG環境変数が設定されていない場合)は、TA_LMIDを省略する必要があります。たとえば、TA_APPQSPACENAME、TA_QMCONFIGおよびTA_LMID属性が、tpcall()を使用するリクエストに設定されると、指定されたキュー・スペース内のすべてのT_OTMQオブジェクトが取得されます。
b アプリケーションが構成されていない(TUXCONFIG環境変数が設定されていない)場合を除き、TA_LMIDはキー・フィールドとして指定する必要があります。
c T_OTMQオブジェクトのすべての操作(GETとSETの両方)は、関連付けられているキュー・スペースをサイレントに開きます。つまり、キュー・スペースの状態がOPEnまたはACTiveになっていない場合、暗黙的にOPEnに設定します。キュー・スペースが大きいと、この操作は時間がかかります。
d アプリケーション・キューの作成後は、TA_APPQORDERを変更できません。
e 1つのアプリケーション・キュー・スペースを明示的に指定するには、GET操作で適切なキー・フィールドを指定する必要があります。
TA_APPQNAME: string[1..127]
TA_APPQSPACENAME: string[1..15]
TA_QMCONFIG: string[1..78]
TA_LMID: string[1..30] (カンマなし)
TA_STATE
SET操作は、選択したアプリケーション・キューの特性を変更するか、または新しいキューを作成します。次に、SETリクエストによって返されるTA_STATEの意味を示します。これ以外の状態を設定することはできません。
TA_APPQORDER
PRIO、TIMEまたはEXPIRです。ソート基準を組み合せる場合は、最も重要な基準を最初に指定し、その後に他の基準を指定します。さらにオプションで、LIFOまたはFIFO(互いに排他的)を指定できます。EXPIRが指定されると、有効期限のないメッセージは、有効期限付きのメッセージすべてが取り出された後にキューから取り出されます。FIFOもLIFOも指定しない場合は、FIFOと想定されます。キューの作成時に順序を指定しないと、デフォルトの順序はFIFOになります。たとえば、次の設定が有効です。 PRIO
PRIO,TIME,LIFO
TIME,PRIO,FIFO
TIME,FIFO
EXPIR
EXPIR,PRIO,FIFO
TIME,EXPIR,PRIO,FIFO
TA_CMD: shell-command-string[0..127]
TA_CMDHWに達した際に自動的に実行されるコマンド。このコマンドは、最低水位標TA_CMDLWに達した後に最高水位標に再度達した際に再実行されます。
TA_CMDHW: 0 <= num[bBm%]およびTA_CMDLW: 0 <= num[bBm%]
TA_CMD属性で指定したコマンドの自動実行を制御する最高水位標と最低水位標です。いずれも0以上の整数です。TA_CMDHWとTA_CMDLW両方の後には、次のいずれかのキー文字を指定する必要があります。キー文字はTA_CMDHWとTA_CMDLWで整合性が取れている必要があります。
TA_CMDLWが50m、TA_CMDHWが100mである場合、TA_CMDに指定されたコマンドは、キューに100のメッセージがあるときに実行されます。このコマンドは、キュー内のメッセージが50を下回った後にキューが100のメッセージで再度満たされないかぎり、再実行されません。
TA_CMDNONPERSIST: shell-command-string[0..127]
TA_CMDNONPERSISTHWに達した際に自動的に実行されるコマンドを指定します。このコマンドは、一時的(メモリー・ベースの配信)メッセージの最低水位標TA_CMDNONPERSISTLWに達した後に最高水位標に再度達した際に再実行されます。
TA_CMDNONPERSISTHW: 0 <= num[bB%]およびTA_CMDNONPERSISTLW: 0 <= num[bB%]
TA_CMDNONPERSIST属性に指定されているコマンドの自動的な実行を制御する最高水位標および最低水位標を指定します。これらはそれぞれゼロ以上の整数で、次のいずれかのキー文字が後ろに付きます。これらのキー文字は、TA_CMDNONPERSISTHWおよびTA_CMDNONPERSISTLWと整合性が取れている必要があります。
TA_CMDHWおよびTA_CMDLW属性(後ろにmが付く場合)を介して指定されたメッセージのしきい値タイプは、永続的メッセージと一時的メッセージの両方を含む、キュー内のすべてのメッセージに適用されるため、TA_CMDNONPERSISTHWおよびTA_CMDNONPERSISTLWのしきい値タイプとしては使用できません。
TA_CURBLOCKS: 0 <= num
TA_CURMSG: 0 <= num
TA_DEFAULTEXPIRATIONTIME
NONEを使用できます。相対期限切れ時間は、メッセージがキュー・マネージャ・プロセスに達してからの一定時間をメッセージに関連付けて決定されます。メッセージが有効期限に達したとき、メッセージがキューから取り出されていない場合や管理時に削除されていない場合には、メッセージに関連付けられたすべてのリソースが解放されて、統計情報が更新されます。トランザクション中にメッセージが期限切れになった場合、期限切れによってトランザクションが失敗することはありません。トランザクション内でキューへの登録中、またはキューからの取出し中に期限切れになったメッセージは、トランザクションが終了した時点でキューから削除されます。メッセージの有効期限が切れたことの通知は行われません。キューにデフォルトの有効期限が指定されていない場合、有効期限が明示的に指定されていないキューは有効期限が切れません。キューの有効期限が変更されても、変更前にキュー内にあったメッセージの有効期限は変更されません。
+secondsです。secondsはキュー・マネージャが正常に操作を完了してから、メッセージが期限切れになるまでに経過する秒数です。secondsをゼロ(0)に設定した場合、メッセージはすぐ期限切れになります。この属性の値として文字列NONEを設定することもできます。NONE文字列を指定すると、明示的な期限切れ時間を指定せずにキューに登録されたメッセージが期限切れになりません。すでにキューにあるメッセージの期限切れ時間は、OTMQ_MIBのT_OTMQMSGクラスのTA_EXPIRETIME属性で変更できます。
TA_DEFDELIVERYPOLICY
PERSISTの場合、明示的に配信モードを指定せずにキューに登録されたメッセージは永続(ディスク・ベース)配信モードを使用して配信されます。値がNONPERSISTの場合、明示的に配信モードを指定せずにエンキューされたメッセージは非永続(メモリー内)配信メソッドを使用して配信されます。キューのデフォルトの配信ポリシーを変更しても、変更前にキューにあったメッセージのサービスの配信品質は変化しません。変更中のキューが現在キュー・スペースにあるメッセージに対して名前が付けられている応答キューである場合、キューのデフォルトの配信ポリシーを変更しても、そのメッセージのサービスの応答品質は変わりません。
T_OTMQSPACEクラスのTA_MEMNONPERSIST属性がゼロ(0)である場合、一時的メッセージ用の領域は確保されません。この場合、非永続メッセージを登録しようとすると失敗します。たとえば、メッセージに対してサービスの配信の品質が指定されずに、ターゲット・キューのTA_DEFDELIVERYPOLICY属性がNONPERSISTに設定された場合などです。
TA_MAXRETRIES: 0 <= num
TA_OUTOFORDER: {NONE | TOP | MSGID}
TA_RETRYDELAY: 0 <= num
TA_CURNONPERSISTBYTES: 0 <= num
TA_CURNONPERSISTMSG: 0 <= num
TA_PID: 0 <= num
TA_ATTACHSTATE: {ATTACHED | NOTATTACHED}
TA_ACTIVESTATE = {Y | N}
TA_QUETYPE: {P | S | M | U}
TA_PRIMQUE: string[1..127]
TA_PRIMQUEはプライマリ・キューの名前です。セカンダリ・キューの場合、TA_PRIMQUEはその制御キューの名前です。MRQまたは一時キューの場合、TA_PRIMQUEUEは空白です。
TA_TATTACH: YY[MM[DD[hh[mm[ss]]]]]
TA_TDETACH: YY[MM[DD[hh[mm[ss]]]]]
TA_MSGSENT: 0 <= num
TA_MSGRCV: 0 <= num
TA_CONFIRM: {EO|II}
TA_TIMERESTART: 1 <= num
T_SERVER:TA_LMIDでtime(2)システム呼出しから返される、1970年1月1日の00:00:00 UTCからの秒数で表した、このサーバーが最後に起動または再起動された時刻(単位は秒)。
TA_CURTIME: 1 <= num
T_SERVER:TA_LMIDでtime(2)システム呼出しから返される、1970年1月1日の00:00:00 UTCからの秒数で表した現在時刻(単位は秒)。この属性は、T_SERVER:TA_TIMESTART属性値およびT_SERVER:TA_TIMERESTART属性値からの経過時間を算出するために使用できます。
T_OTMQMSGクラスは、アプリケーション・キューに格納されているメッセージを表します。メッセージは管理者によって作成されるのではなく、tpenqplus()の呼出しの結果として生成されます。メッセージの破棄は、tpdeqplus()の呼出しによって行うか、管理者によって行われます。また、管理者はメッセージの特定の属性を変更できます。たとえば、管理者は同じキュー・スペース内のキュー間でメッセージを移動したり、その優先度を変更したりできます。
すべてのキー・フィールドを未設定にすると、このクラスのインスタンスをすべて検索できません。反対に、1つのアプリケーション・キュー・スペースを明示的に指定するには、適切なキー・フィールドを用意する必要があります。これらの必須キー・フィールドはTA_APPQSPACENAME、TA_QMCONFIGおよびTA_LMIDです。ただし、アプリケーションが構成されていない場合(つまり、TUXCONFIG環境変数が設定されていない場合)は、TA_LMIDを省略する必要があります。たとえば、TA_APPQSPACENAME、TA_QMCONFIGおよびTA_LMID属性が、tpcall()を使用するリクエストに設定されると、指定されたキュー・スペース内のすべてのキューのすべてのT_OTMQMSGオブジェクトが取得されます。
aT_OTMQMSGクラスのすべての属性はローカル属性です。
bアプリケーションが構成されていない(TUXCONFIG環境変数が設定されていない)場合を除き、TA_LMIDはキー・フィールドとして指定する必要があります。
c T_OTMQMSGオブジェクトのすべての操作(GETとSETの両方)は、関連付けられているキュー・スペースをサイレントに開きます。つまり、キュー・スペースの状態がOPEnまたはACTiveになっていない場合、暗黙的にOPEnに設定します。キュー・スペースが大きいと、この操作は時間がかかります。
d1つのアプリケーション・キュー・スペースを明示的に指定するには、GET操作で適切なキー・フィールドを指定する必要があります。
TA_APPQMSGID: string[1..32]
TA_APPQNAME: string[1..127]
TA_APPQSPACENAME: string[1..15]
TA_QMCONFIG: string[1..78]
TA_LMID: string[1..30] (カンマなし)
TA_STATE
TA_CURRETRIES: 0 <= num
TA_CORRID: string[0..32]
TA_EXPIRETIME: {YY[MM[DD[hh[mm[ss]]]]] | +seconds}
GET操作で空の文字列が返されます。TA_EXPIRETIMEの形式は次のいずれかです。
TA_LOWPRIORITY: 1 <= num <= 100 and TA_HIGHPRIORITY: 1 <= num <= 100
TA_MSGEXPIRESTARTTIME: {YY[MM[DD[hh[mm[ss]]]]] | +seconds}およびTA_MSGEXPIREENDTIME: {YY[MM[DD[hh[mm[ss]]]]] | +seconds|NONE}
T_OTMQMSGオブジェクトのオカレンスを検索する有効期限の開始時刻と終了時刻。範囲には両端が含まれます。開始時刻または終了時刻は絶対時間の値で指定する必要があります。形式については、TA_EXPIRETIME: {YY[MM[DD[hh[mm[ss]]]]] | +seconds}を参照してください。これらの属性は、GET操作でキー・フィールドとしてのみ使用できます。
TA_MSGSIZE: 0 <= num
TA_MSGSTARTTIME: {YY[MM[DD[hh[mm[ss]]]]] | +seconds}およびTA_MSGENDTIME: {YY[MM[DD[hh[mm[ss]]]]] | +seconds}
T_OTMQMSGオブジェクトのオカレンスを検索する開始時刻と終了時刻。範囲には両端が含まれます。開始時刻または終了時刻は絶対時間の値で指定する必要があります。形式についてはTA_TIME: {YY[MM[DD[hh[mm[ss]]]]] | +seconds}を参照してください。これらの属性は、GET操作でキー・フィールドとしてのみ使用できます。
TA_NEWAPPQNAME: string[1..127]
VALidである必要があります。この属性はGET操作によっては戻されません。移動するメッセージの配信の品質が新規キューのデフォルトの配信ポリシーの結果として変更されることはありません。有効期限のあるメッセージを移動する場合、有効期限が相対時間として前に指定されていても、有効期限は新規キューで絶対時間だとみなされます。
TA_PERSISTENCE: {PERSIST|NONPERSIST}
TA_PRIORITY: 1 <= num <= 100
TA_REPLYPERSISTENCE: {PERSIST | NONPERSIST | DEFAULT}
NONPERSIST、永続的メッセージの場合はPERSIST、応答を登録するキューに設定されているデフォルトの永続的メッセージを使用する場合はDEFAULTに設定されます。
TA_TIME: {YY[MM[DD[hh[mm[ss]]]]] | +seconds}
T_OTMQSPACEクラスはアプリケーション・キュー・スペースを表します。アプリケーション・キュー・スペースは、Oracle Tuxedoシステム・デバイス内の領域です。デバイスや属性の詳細は、TM_MIB(5)の T_DEVICEクラスを参照してください。各キュー・スペースには、通常は1つ以上のアプリケーション・キューが含まれます。各キューはメッセージを格納できます。
キュー・スペースは、複数の属性によって一意に識別されます。これには、名前(TA_APPQSPACENAME属性)、キュー・スペースが含まれるデバイス(TA_QMCONFIG属性)、およびデバイスが格納されている論理マシン(TA_LMID属性)があります。
通常、キュー・スペースは厳密に、構成済アプリケーション内の1つのサーバー・グループに関連付けられます。キュー・スペース名およびデバイス名は、T_GROUPオブジェクトのTA_OPENINFO属性のコンポーネントです。
すべてのキー・フィールドを未設定にすると、このクラスのインスタンスをすべて検索できません。かわりに、3つのキー・フィールドすべてを指定して単一のアプリケーション・キュー・スペースを明示的に指定する必要があります。唯一の例外は、アプリケーションが構成されていない状況(TUXCONFIG環境変数が設定されていない状況)でtpadmcall()を介してローカル・キュー・スペースにアクセスする場合です。この場合、TA_LMIDキー・フィールドを省略する必要があります。
キュー・スペースのアクセス可能性に関する前述の制限は、T_OTMQ、T_OTMQMSGおよびT_OTMQTRANSオブジェクトにも当てはまります。これは、OTMQ MIB内のすべてのオブジェクトに対する操作にキュー・スペースが暗黙的に関与するためです。
a. T_OTMQSPACEクラスの属性はすべてローカルです。
b.アプリケーションが構成されていない(TUXCONFIG環境変数が設定されていない)場合を除き、TA_LMIDはキー・フィールドとして指定する必要があります。
c. T_OTMQ、T_OTMQMSGおよびT_OTMQTRANSオブジェクトのすべての操作(GETとSET)は、関連付けられているキュー・スペースをサイレントに開きます。つまり、キュー・スペースの状態がOPEnまたはACTiveになっていない場合、暗黙的にOPEnに設定します。キュー・スペースが大きいと、この操作は時間がかかります。
d.キュー・スペースの作成後は、TA_MAXQUEUESを変更できません。
TA_APPQSPACENAME: string[1..15]
TA_QMCONFIG: string[1..78]
TA_LMID: string[1..30] (カンマなし)
TA_STATE
SET操作は、選択したアプリケーション・キュー・スペースを変更するか、または新しいキュー・スペースを作成します。次に、SETリクエストによって返されるTA_STATEの意味を示します。これ以外の状態を設定することはできません。
TA_BLOCKING: 0 <= num
TA_CURACTIONS: 0 <= num
OPEnまたはACTiveの場合、またはキュー・スペースを新規に作成する場合に指定できます。どの条件にも該当しない場合は、-1が返されます。
TA_CURCURSORS: 0 <= num
OPEnまたはACTiveの場合、またはキュー・スペースを新規に作成する場合に指定できます。どの条件にも該当しない場合は、-1が返されます。
TA_CUREXTENT: 0 <= num <= 100
TA_MAXPAGES属性の値が増加するごとに、新規にエクステントが割り当てられます。この属性を変更すると、キュー・スペース内のすべての一時的メッセージは完全に失われます。
TA_CURHANDLES: 0 <= num
OPEnまたはACTiveの場合、またはキュー・スペースを新規に作成する場合に指定できます。どの条件にも該当しない場合は、-1が返されます。
TA_CURMEMFILTERS: 0 <= num
OPEnまたはACTiveの場合、またはキュー・スペースを新規に作成する場合に指定できます。どの条件にも該当しない場合は、-1が返されます。
TA_CURMEMNONPERSIST: 0 <= num
OPEnまたはACTiveの場合、またはキュー・スペースを新規に作成する場合に指定できます。どの条件にも該当しない場合は、-1が返されます。
TA_CURMEMOVERFLOW: 0 <= num
OPEnまたはACTiveの場合、またはキュー・スペースを新規に作成する場合に指定できます。どの条件も適用されない場合は、-1が返されます。
TA_CURMSG: 0 <= num
OPEnまたはACTiveの場合、またはキュー・スペースを新規に作成する場合にのみ指定できます。どの条件にも該当しない場合は、-1が返されます。
TA_CUROWNERS: 0 <= num
OPEnまたはACTiveの場合、またはキュー・スペースを新規に作成する場合に指定できます。どの条件にも該当しない場合は、-1が返されます。
TA_CURPROC: 0 <= num
TA_CURQUEUES: 0 <= num
OPEnまたはACTiveの場合、またはキュー・スペースを新規に作成する場合にのみ指定できます。どの条件にも該当しない場合は、-1が返されます。
TA_CURTMPQUEUES: 0 <= num
OPEnまたはACTiveの場合、またはキュー・スペースを新規に作成する場合に指定できます。どの条件にも該当しない場合は、-1が返されます。
TA_CURTRANS: 0 <= num
TA_ERRORQNAME: string[0..127]
TA_FORCEINIT: {Y | N}
TA_HWACTIONS: 0 <= num
CLEaningに設定されると、この値は0にリセットされます。
TA_HWCURSORS: 0 <= num
CLEaningに設定されると、この値は0にリセットされます。
TA_HWHANDLES: 0 <= num
TA_HWMEMFILTERS: 0 <= num
CLEaningに設定されると、この値は0にリセットされます。
TA_HWMEMNONPERSIST: 0 <= num
TA_HWMEMOVERFLOW: 0 <= num
CLEaningに設定されると、この値は0にリセットされます。
TA_HWMSG: 0 <= num
TA_HWOWNERS: 0 <= num
TA_HWPROC: 0 <= num
TA_HWQUEUES: 0 <= num
TA_HWTMPQUEUES: 0 <= num
CLEaningに設定されると、この値は0にリセットされます。
TA_HWTRANS: 0 <= num
TUXCONFIG環境変数で指定されるアプリケーションだけではなく、すべてのアプリケーションを含む値になります。キュー・スペースの状態がCLEaningに設定されると、この値は0にリセットされます。
TA_IPCKEY: 32769 <= num <= 262143
TA_MAXACTIONS: 0 <= num
TA_MAXCURSORS: 0 <= num
TA_MAXHANDLES: 0 <= num
TA_MAXMSG: 0 <= num
TA_MAXOWNERS: 0 <= num
TA_MAXPAGES: 0 <= num
TA_MAXPAGES属性が増加するたびに、新しいエクステントが割り当てられます(TA_CUREXTENT: 0 <= num <= 100を参照)。この属性に小さい値を指定してページ数を減少させることはできません。この場合、エラーが報告されます。
TA_MAXPROC: 0 <= num
TA_MAXQUEUES: 0 <= num
TA_MAXTMPQUEUES: 0 <= num
TA_MAXTRANS: 0 <= num
TA_MEMFILTERS: 0 <= num
TA_MEMNONPERSIST: 0 <= num [bB]
[bB]接尾辞は指定してもしなくても構いませんが、指定しなかった場合はデフォルトでブロック(B)になります。
TA_MEMNONPERSISTが変更されると、指定されたキュー・スペース内のすべての一時的メッセージが永久に失われます。キュー・スペースのTA_MEMNONPERSISTがゼロ(0)の場合、一時的メッセージ用の領域は確保されません。この場合、非永続メッセージを登録しようとすると失敗します。たとえば、メッセージに対してサービスの配信の品質が指定されずに、ターゲット・キューのT_OTMQクラスのTA_DEFDELIVERYPOLICY属性がNONPERSISTに設定された場合などです。非永続的配信では、メモリー領域のすべてが使用されている場合や分割されたメッセージをキューに登録できない場合、メッセージ用の永続ストレージが十分にあっても、メッセージのキュー登録は異常終了します。同様に、永続ストレージのすべてが使用されているか断片化されているためにメッセージをキューに登録できない場合、メッセージ用の非永続ストレージが十分にあっても、メッセージの登録操作は失敗します。
TA_MEMOVERFLOW: 0 <= num
TA_MEMSYSTEMRESERVED: 0 <= num
TA_MEMTOTALALLOCATED: 0 <= num
TA_PERCENTINIT: 0 <= num <= 100
TA_FIRSTTMPQ: 0 <= num
GETリクエストを使用して問い合せます。これはSETリクエスト属性がTA_STATE=NEWである場合にのみ設定できます。キュー・スペースの作成後は、TA_FIRSTTMPQを更新できません。
TA_MSGSENT: 0 <= num
TA_MSGRCV: 0 <= num
TA_MRSJRNSAF: {ENABLE|DISABLE}
SETリクエストでは、値をENABLEまたはDISABLEに設定できます。SETを使用してSAFステータスを変更できるのは、キューがACTiveの場合のみです。SETリクエスト属性がTA_STATE=NEWであり、TA_MRSJRNSAFがDISABLEに設定されている場合、SAFキューは自動的に作成されません。 GETリクエストの場合、TA_MRSJRNSAFによって、ENABLE、DISABLEまたはNOTUPが返されます。
TA_MRSJRNDQF: {ENABLE|DISABLE}
SETリクエストでは、値をENABLEまたはDISABLEに設定できます。SETを使用してDQFステータスを変更できるのは、キューがACTiveの場合のみです。SETリクエスト属性がTA_STATE=NEWであり、このフィールドがDISABLEに設定されている場合、DQFキューは自動的に作成されません。 GETリクエストの場合、TA_MRSJRNDQFによって、ENABLE、DISABLEまたはNOTUPが返されます。
TA_MRSJRNDLJ: {ENABLE|DISABLE}
SETリクエストでは、値をENABLEまたはDISABLEに設定できます。SETは、キューがACTiveの場合にのみ使用できます。 GETリクエストの場合、TA_MRSJRNDLJによって、ENABLE、DISABLEまたはNOTUPが返されます。
TA_MRSJRNPCJ: {ENABLE|DISABLE}
SETリクエストでは、値をENABLEまたはDISABLEに設定できます。SETは、キューがACTiveの場合にのみ使用できます。 GETリクエストの場合、TA_MRSJRNPCJによって、ENABLE、DISABLEまたはNOTUPが返されます。
TA_TIMERESTART: 1 <= num
T_SERVER:TA_LMIDでtime(2)システム呼出しから返される、1970年1月1日の00:00:00 UTCからの秒数で表した、このサーバーが最後に起動または再起動された時刻(単位は秒)。
TA_CURTIME: 1 <= num
T_SERVER:TA_LMIDでtime(2)システム呼出しから返される、1970年1月1日の00:00:00 UTCからの秒数で表した現在時刻(単位は秒)。この属性は、T_SERVER:TA_TIMESTART属性値およびT_SERVER:TA_TIMERESTART属性値からの経過時間を算出するために使用できます。
T_OTMQTRANSクラスは、アプリケーション・キューに関連付けられるトランザクションの実行時属性を表します。
すべてのキー・フィールドを未設定にすると、このクラスのインスタンスをすべて検索できません。反対に、1つのアプリケーション・キュー・スペースを明示的に指定するには、適切なキー・フィールドを指定する必要があります。たとえば、tpcall()を使用して、TA_XIDを除くすべてのキー・フィールドをリクエストで設定した場合、指定されたキュー・スペースに対応するT_OTMQTRANSオブジェクトがすべて検索されます。
このクラスのオブジェクトで表現されるトランザクションは必ずしも検索対象のアプリケーションに関連付けられないので注意してください。トランザクションは実際には別のアプリケーションに属していたり、別のアプリケーションに影響を与えたりする場合があるため、トランザクションをヒューリスティックにコミットまたは中断するときには注意が必要です。TA_XID属性の値は、アプリケーション間でユニークであるとはかぎりません。
a.T_OTMQTRANSクラスのすべての属性はローカル属性です。
b.T_OTMQTRANSオブジェクトのすべての操作(GETとSETの両方)は、関連付けられているキュー・スペースをサイレントに開きます。つまり、キュー・スペースの状態がOPEnまたはACTiveになっていない場合、暗黙的にOPEnに設定します。キュー・スペースが大きいと、この操作は時間がかかります。
c.1つのアプリケーション・キュー・スペースを明示的に指定するには、GET操作で適切なキー・フィールドを指定する必要があります。
TA_XID: string[1..78]
TA_APPQSPACENAME: string[1..15]
TA_QMCONFIG: string[1..78]
TA_LMID: string[1..30] (カンマなし)
TA_STATE
GET操作は、選択したトランザクションに関する実行時情報を検索します。次に、GETリクエストに対する応答で返されるTA_STATEの意味を示します。すべての状態はACTiveと同等で、パーミッションのチェックに使用します。
T_OTMQNAMINGはOTMQ NAMINGエイリアスのクラスです。このクラスを使用して、キュー・スペースのエイリアスを取得します。
T_OTMQNAMINGクラスでは、すべてのネーミング・エイリアスをリストするGETリクエストのみがサポートされています。
a.T_OTMQNAMINGクラスのすべての属性はローカル属性です。
b.アプリケーションが構成されていない(TUXCONFIG環境変数が設定されていない)場合を除き、TA_LMIDはキー・フィールドとして指定する必要があります。
TA_APPQSPACENAME
TA_OTMQALIAS
TA_OTMQALIASSCOPE
TA_OTMQSPACETARGET
TA_OTMQTARGET
TA_STATE
GET操作は、キュー・スペースに対する共有メモリーおよびその他のIPCリソースが割り当てられ、初期化されており、共有メモリーには現在少なくとも1つのプロセスがアタッチされていることを示す実行時情報を取得します。ネーミング・エイリアスを取得するには、キュー・ネーミング・サーバーの状態がACTiveである必要があります。
TA_LMID: string[1..30] (カンマなし)
TSAMエージェントでは、OTMQ_MIBを使用して、特定のTuxedoドメインで構成されたすべてのキュー・スペースを取得します。
アプリケーションが認識しているアプリケーション・キュー・スペースを表示するには、2段階の検索を行います。まず、OTMQトランザクション・マネージャTMS_TMQMを使用するグループがアプリケーション環境設定から検索され、次に各グループが参照しているキュー・スペースが検索されます。以下のコードは、キュー・スペースを使用する各GROUPエントリに1つの論理マシンが関連付けられていると仮定します(つまり、サーバー移行は未使用)。
/* Build the request to retrieve all TMS_TMQM groups */
Fchg32(rqbuf, TA_OPERATION, 0, "GET", 0);
Fchg32(rqbuf, TA_CLASS, 0, "T_GROUP", 0);
Fchg32(rqbuf, TA_TMSNAME, 0, "TMS_TMQM", 0);
fldid1 = TA_OPENINFO;
fldid2 = TA_LMID;
Fchg32(rqbuf, TA_FILTER, 0, (char *)fldid1, 0);
Fchg32(rqbuf, TA_FILTER, 0, (char *)fldid2, 1);
/* Make the request, assuming we are joined to the application */
rval = tpcall(".TMIB", rqbuf, 0, rpbuf, rplen, flags);/* For each TMS_TMQM group, build the request to retrieve its queue space */
rval = Fget32(*rpbuf, TA_OCCURS, 0, (char *)occurs, NULL);
for (i = 0; i occurs; i++) {/* Reinitialize the buffer and set all common attributes */
Finit32(rqbuf, (FLDLEN) Fsizeof32(rqbuf));
Fchg32(rqbuf, TA_OPERATION, 0, "GET", 0);
Fchg32(rqbuf, TA_CLASS, 0, "T_OTMQSPACE", 0);
/* Get the OPENINFO to determine device and queue space name */
/* OPENINFO has the format <resource-mgr>:<qmconfig>:<appqspacename> */
/* or on Windows <resource-mgr>:<qmconfig>;<appqspacename> */
rval = Fget32(rpbuf, TA_OPENINFO, i, openinfo, NULL);
/* The device is the 2nd field in OPENINFO */
qmconfig = strchr(openinfo, ':') + 1;
/* The queue space name is the 3rd field in OPENINFO */
#if defined(_TMDOWN) || defined(_TM_NETWARE)
#define pathsep ";" /* separator for PATH */
#else
#define pathsep ":" /* separator for PATH */
#endif
appqspacename = strchr(qmconfig, pathsep);
appqspacename[0] = '\e0'; /* NULL-terminate qmconfig */
appqspacename++; /* bump past the NULL */
/* Set the APPQSPACENAME and QMCONFIG keys */
Fchg32(rqbuf, TA_APPQSPACENAME, 0, appqspacename, 0);
Fchg32(rqbuf, TA_QMCONFIG, 0, qmconfig, 0);
/* Get the LMID (assume no migration for this group) */
rval = Fget32(rpbuf, TA_LMID, i, lmid, NULL);
Fchg32(rqbuf, TA_LMID, 0, lmid, 0);
/* Make the request */
rval = tpcall(".TMIB", rqbuf, 0, rpbuf2, rplen2, flags);}
上記のコードでは、キュー・スペースが作成されていても、アプリケーションの構成に対応するGROUPエントリがないと、キュー・スペースは検索されません。このようなキュー・スペースは、キュー・スペースのキー・フィールド(TA_OTMQSPACENAME、TA_QMCONFIGおよびTA_LMID)の優先順位がわかっていなければ検索できません。
TSAMエージェントでは、OTMQ_MIBを使用して、特定のTuxedoドメインで構成された特定のキュー・スペースに関する構成情報を取得します。
/* Build the request */
Fchg32(rqbuf, TA_OPERATION, 0, "GET", 0);
Fchg32(rqbuf, TA_CLASS, 0, "T_OTMQSPACE", 0);
Fchg32(rqbuf, TA_APPQSPACENAME, 0, "QSPACE1", 0);
Fchg32(rqbuf, TA_QMCONFIG, 0, "/dev/q/dsk001", 0);
Fchg32(rqbuf, TA_LMID, 0, "SITE1", 0);
/* Make the request;*/
TSAMエージェントでは、OTMQ_MIBを使用して、特定のTuxedoドメインで構成されたキュー・リストを取得します。
次のコードは、論理マシンSITE1上のデバイス/dev/q/dsk001のキュー・スペースQSPACE1のすべてのキューを取得します。
/* Build the request */ Fchg32(rqbuf, TA_OPERATION, 0, "GET", 0);
Fchg32(rqbuf, TA_CLASS, 0, "T_OTMQ", 0);
Fchg32(rqbuf, TA_APPQSPACENAME, 0, "QSPACE1", 0);
Fchg32(rqbuf, TA_QMCONFIG, 0, "/dev/q/dsk001", 0);
Fchg32(rqbuf, TA_LMID, 0, "SITE1", 0);
/* Make the request; see above */
TSAMエージェントでは、OTMQ_MIBを使用して、特定のTuxedoドメインで構成された特定のキューのメッセージ・カウンタおよび割当てなどの詳細情報を取得します。
/* Build the request */
Fchg32(rqbuf, TA_OPERATION, 0, "GET", 0);
Fchg32(rqbuf, TA_CLASS, 0, "T_OTMQ", 0);
Fchg32(rqbuf, TA_APPQNAME, 0, "errque", 0);
Fchg32(rqbuf, TA_APPQSPACENAME, 0, "QSPACE1", 0);
Fchg32(rqbuf, TA_QMCONFIG, 0, "/dev/q/dsk001", 0);
Fchg32(rqbuf, TA_LMID, 0, "SITE1", 0);
/* Make the request;*/
|