BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedoホーム   |   ファイル形式、データ記述方法、MIB、およびシステム・プロセスのリファレンス   |   先頭へ   |   前へ   |   次へ   |   目次

 


APPQ_MIB(5)

名前

APPQ_MIB - /Q の管理情報ベース

形式

#include <fml32.h>
#include <tpadm.h>

機能説明

/Q MIB はアプリケーション・キューを管理するためのクラスを定義します。

APPQ_MIB(5) は、管理要求をフォーマットし、管理応答を解釈するために共通の MIB のリファレンス・ページMIB(5)と組み合わせて使用できます。MIB(5)で説明されているように、要求はこのリファレンス・ページで解説されているクラスと属性を使用してフォーマットされます。この要求は、アクティブなアプリケーションに存在する多数の ATMI インターフェイスのどれかを使用して管理サービスを要求するのに使用されます。非アクティブなアプリケーションのアプリケーション・キューは、tpadmcall() 関数インターフェイスを使用しても管理できます。APPQ_MIB(5) のすべてのクラス定義に関連する追加情報については、「APPQ_MIB(5) に関する追加情報」を参照してください。

APPQ_MIB(5) は以下のクラスから構成されます。

APPQ_MIB クラス

クラス名

属性

T_APPQ

キュー・スペース内のアプリケーション・キュー

T_APPQMSG

アプリケーション・キュー内のメッセージ

T_APPQSPACE

アプリケーション・キュー・スペース

T_APPQTRANS

アプリケーション・キューに対応したトランザクション


 

この MIB は、サーバ・キュー (TM_MIB(5) コンポーネントの T_QUEUE クラス) ではなく、アプリケーションが定義している永続的 (信頼性の高いディスク・ベースの) キューおよび非永続的 (メモリ内の) なキュー (つまり /Q キュー) を示していることに注意してください。

各クラスの説明セクションには、4 つのサブセクションがあります。

概要

このクラスに関連付けられた属性の詳細な説明

属性表

クラスの各属性に関する名前、タイプ、パーミッション、値、およびデフォルト値を示す表。属性表の形式を以下に示します。

属性の意味

各属性の意味を説明します。

制限事項

このクラスにアクセスしたり、このクラスを解釈する場合の制限事項。

属性表の形式

この MIB の一部を構成している各クラスは、4 つのパートで記録されます。1 つは属性表です。属性表はクラス内の属性をリストし、さらに管理者、オペレータ、一般ユーザが属性を使用してアプリケーションとインターフェイスをとる方法を示しています。

属性表の各属性記述には 5 つの構成要素 (名前、タイプ、パーミッション、値、デフォルト値) があります。各項目についてはMIB(5)で説明します。

TA_FLAG 値

MIB(5)は、共通およびコンポーネントの MIB 固有のフラグ値を持った long の共通 TA_FLAGS 属性を定義します。APPQ_MIB(5) コンポーネントには、次に示すフラグ値が定義されます。これらのフラグ値は共通 MIB フラグと組み合わせて使用します。

QMIB_FORCECLOSE

T_APPQSPACE オブジェクトの TA_STATE 属性を CLEaning に設定する際に、このフラグは、キューの状態がたとえ ACTive であっても状態の変更が成功することを示します。

QMIB_FORCEDELETE

T_APPQSPACE オブジェクトの TA_STATE 属性を INValid に設定する際に、このフラグは、キュー・スペースが ACTive な場合でも、そのキュー・スペースのどれかにメッセージが存在している場合でも、状態を変更できることを示します。同様に、T_APPQ オブジェクトの TA_STATE 属性を INValid に設定する際に、キューにメッセージがある場合でも、キュー・スペースにプロセスがアタッチされている場合でも、このフラグによってキューを削除することができます。

QMIB_FORCEPURGE

T_APPQ オブジェクトの TA_STATE 属性を INValid に設定する際に、このフラグは、メッセージがキューに存在していても状態を変更できることを示します。しかし、選択した T_APPQ オブジェクトに格納されているメッセージがトランザクションに現在かかわっていると、状態の変更は失敗し、エラーをユーザ・ログに書込みます。

FML32 フィールド・テーブル

このリファレンス・ページに記述する属性のフィールド・テーブルは、システムにインストールした BEA Tuxedo ソフトウェアのルート・ディレクトリからの相対パスで指定される udataobj/tpadm ファイルにあります。${TUXDIR}/udataobj ディレクトリは FLDTBLDIR 環境変数で指定されるリスト (Windows の場合はセミコロンで区切り、それ以外はコロンで区切る) に、またフィールド・テーブル名 tpadmFIELDTBLS 環境変数で指定されるカンマで区切ったリストに、アプリケーションによって指定されなければなりません。

制限事項

この MIB は、リリース 6.0 以降の BEA Tuxedo を使用しているサイトでのネイティブおよび /WS だけに提供されます。

リリース 6.0 以前の BEA Tuxedo リリースを動作させているサイトがアプリケーションでアクティブな場合は、この MIB による管理アクセスは以下のように制限されます。

T_APPQ クラスの定義

概要

T_APPQ クラスはアプリケーション・キューを表します。1 つのアプリケーション・キュー・スペースには、1 つ以上のアプリケーション・キューがあります。

制限事項

すべてのキー・フィールドを未設定にすると、このクラスのすべてのインスタンスを検索できません。反対に、1 つのアプリケーション・キュー・スペースを明示的に指定するには、適切なキー・フィールドを指定しなければなりません。必要なキー・フィールドは、TA_APPQSPACENAMETA_QMCONFIGTA_LMID です。ただし、アプリケーションの環境が未設定 (TUXCONFIG 環境変数が未設定) の場合を除きます。環境が未設定の場合は、TA_LMID を省略しなければなりません。たとえば、tpcall() を用いて、要求に TA_APPQSPACENAMETA_QMCONFIG、および TA_LMID 属性を設定した場合、指定したキュー・スペースのすべての T_APPQ オブジェクトが検索されます。

属性表

APPQ_MIB(5): T_APPQ クラス定義の属性表

属性 a

タイプ

パーミッション

デフォルト値

TA_APPQNAME(k)(r)(*)

string

ru-r--r--

string[1..15]

N/A

TA_APPQSPACENAME(k)(r)(*)

string

ru-r--r--

string[1..15]

N/A

TA_QMCONFIG(k)(r)(*)

string

ru-r--r--

string[1..78]

N/A

TA_LMID(k)(r)(*)b

string

ru-r--r--

string[1..30]

N/A


TA_STATE (Note 3)c

string

rw-r--r--

GET:"VAL"

SET:"{NEW | INV}"

N/A

N/A


TA_APPQORDER d

string

rw-r--r--

{PRIO | TIME | LIFO | FIFO | EXPIR}

FIFO

TA_DEFEXPIRATIONTIME

string

rw-r--r--

{+seconds | NONE}

N/A

TA_DEFDELIVERYPOLICY

string

rw-r--r--

{PERSIST | NONPERSIST}

PERSIST

TA_CMD

string

rw-r--r--

shell-command -string[0..78]

""

TA_CMDHW

string

rw-r--r--

0 <= num [bBm%]

100%

TA_CMDLW

string

rw-r--r--

0 <= num [bBm%]

0%

TA_CMDNONPERSIST

string

rw-r--r--

shell-command-string[0-78]

""


TA_CMDNONPERSISTHW

string

rw-r--r--

0 <= num[bB%]

100%

TA_CMDNONPERSISTLW

string

rw-r--r--

0 <= num[bB%]

0%

TA_MAXRETRIES

long

rw-r--r--

0 <= num

0

TA_OUTOFORDER

string

rw-r--r--

{NONE | TOP | MSGID}

NONE

TA_RETRYDELAY

long

rw-r--r--

0 <= num

0


TA_CURBLOCKS

long

r--r--r--

0 <= num

N/A

TA_CURMSG

long

r--r--r--

0 <= num

N/A

TA_CURNONPERSISTBYTES

long

r--r--r--

0 <= num

N/A

TA_CURNONPERSISTMSG

long

r--r--r--

0 <= num

N/A

(k) - GET キー・フィールドe
(r) - オブジェクト作成に必要なフィールド
(*) - 必要な SET キー・フィールド


 

a T_APPQ クラスの属性はすべてローカル属性です。

b アプリケーションのコンフィギュレーションが設定されていない (TUXCONFIG 環境変数が未設定) 場合以外、TA_LMID はキー・フィールドとして指定する必要があります。

c T_APPQ オブジェクトに対するすべての操作 (GETSET の両方) は、対応するキュー・スペースを自動的にオープンします。つまり、キュー・スペースの状態が OPEn または ACTive になっていない場合、暗黙的に OPEn に設定されます。キュー・スペースが大きいと、操作に時間がかかります。

d アプリケーション・キューを作成した後は、TA_APPQORDER を変更できません。

e 1 つのアプリケーション・キュー・スペースを明示的に指定するには、GET 操作の際に適切なキー・フィールドを設定する必要があります。

属性の意味

TA_APPQNAME:string[1..15]

アプリケーション・キュー名。

TA_APPQSPACENAME:string[1..15]

アプリケーション・キューがあるアプリケーションキュー・スペース名。

TA_QMCONFIG:string[1..78]

アプリケーション・キュー・スペースが存在するファイルまたはデバイスの絶対パス名。

TA_LMID:string[1..30] (no comma)

アプリケーション・キュー・スペースが存在する論理マシンの識別子。

TA_STATE:

GET:{VALid}

GET 操作は、選択されたアプリケーション・キューに関する情報を検索します。以下に、GET 要求に対して返される TA_STATE の意味を示します。

VALid

指定されたキューが存在します。この状態は INActive と同等で、パーミッションの確認に使用されます。


 

SET:{NEW | INValid}

SET 操作は、選択したアプリケーション・キューの特性を変更するか、新しいキューを作成します。以下に、SET 要求で返される TA_STATE の意味を示します。リストにない状態は設定されない場合があります。

NEW

指定したキュー・スペースに新規にキューを作成します。正常に作成されると、キューは VALid 状態となります。

INValid

指定されたキューを削除します。削除するには、キューが VALid 状態でなければなりません。キュー・スペースにプロセスがアタッチされている (ACTive 状態) 場合、TA_FLAGS 属性に QMIB_FORCEDELETE フラグが設定されない限り、キューは削除されません。さらに、キューにメッセージが追加されていると、QMIB_FORCEPURGE を指定しないと、キューは削除されません。正常終了すると、オブジェクトの状態は INValid になります。

unset

アプリケーション・キューを変更します。正常終了すると、オブジェクト状態は変更されません。


 

TA_APPQORDER:

キュー内のメッセージを処理する順序。正当な値は、PRIOTIME、または EXPIR です。ソート基準の組み合わせは、最上位基準を最初に指定し、ほかの基準、相互に排他的な LIFO または FIFO (省略可) の順に指定します。EXPIR を指定すると、期限切れ時間のないメッセージは、期限切れ時間のあるすべてのメッセージの後で処理されます。FIFOLIFO のいずれも指定しない場合は、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..78]

デイスク・ベースの一時的メッセージの上限値 TA_CMDHW に達すると、コマンドが自動的に実行されます。下限値 TA_CMDLW に達した後に、再度、上限値になると、コマンドが再実行されます。

TA_CMDHW:0 <= num[bBm%]

TA_CMDLW:0 <= num[bBm%]

TA_CMD 属性で指定されたコマンドの自動実行を制御する上限値および下限値。どちらも 0 以上の整数です。TA_CMDHW および TA_CMDLW の後には以下のキー文字が続き、キー文字は TA_CMDHWTA_CMDLW に一致する必要があります。

b

上限値および下限値を、キューの永続的メッセージ (デイスク・ベースのメッセージ) で使用するバイト数で設定します。

B

上限値および下限値を、キューの永続的メッセージで使用するブロック数で設定します。

m

上限値および下限値を、キューの永続的メッセージおよび一時的メッセージの数で設定します。

%

上限値および下限値を、キュー容量のパーセンテージで設定します。これには永続的メッセージだけが含まれます。

たとえば、TA_CMDLW50mTA_CMDHW100m であれば、TA_CMD に指定されたコマンドはキューに100 メッセージ追加されたときに実行され、キューが 50 メッセージまで減少した後に再度 100 メッセージまで増加しないと、再実行されません。

TA_CMDNONPERSIST:shell-command-string[0..78]

この属性は、一時的メッセージ (メモリ・ベースの配信メッセージ) の上限値 TA_CMDNONPERSISTHW に達すると、コマンドが自動的に実行されるように指定します。一時的メッセージの下限値 TA_CMDNONPERSISTLW に達した後に、再度上限値になると、コマンドが再実行されます。

TA_CMDNONPERSISTHW:0 <= num[bB%]

TA_CMDNONPERSISTLW:0 <= num[bB%]

これらの属性は、TA_CMDNONPERSIST 属性で指定したコマンドの自動実行を制御する上限値および下限値を指定します。どちらも 0 以上の整数で、以下のキー文字が続きます。キー文字は TA_CMDNONPERSISTHW および TA_CMDNONPERSISTLW と一致する必要があります。

b

上限値および下限値は、キューの一時的 (メモリ内の) メッセージで使用されるバイト数で表されます。

B

上限値および下限値は、キューの一時的 (メモリ内の) メッセージで使用されるブロック数で表されます。

%

上限値および下限値は、キューで使用される、キュー・スペース内で一時的メッセージのために確保されている共用メモリ容量のパーセンテージで表されます。

TA_CMDHW および TA_CMDLW 属性 (後に m が続く) を通して指定するメッセージしきい値タイプは、キューの永続的メッセージおよび一時的メッセージの両方に適用されます。したがって、TA_CMDNONPERSISTHWTA_CMDNONPERSISTLW のしきい値タイプとしては使用できません。

TA_CURBLOCKS:0 <= num

現在、キューによって使用されているディスク・ページ数。

TA_CURMSG:0 <= num

現在、キューにある永続的メッセージ数。キューにあるメッセージの合計数を求めるには、この値に TA_CURMEMMSG を加えます。

TA_DEFAULTEXPIRATIONTIME:

この属性は、期限切れ時間が明示的に設定されていないキュー内のメッセージに、期限切れ時間を指定します。期限切れ時間は、相対期限切れ時間または NONE のいずれかに設定できます。相対期限切れ時間は、メッセージがキュー・マネージャ・プロセスに到着した後、一定の時間数をメッセージと関連付けることによって決定されます。メッセージの期限切れ時間に達した時点で、メッセージがキューから取り出されたり管理インターフェイスを介して削除されないと、そのメッセージと関連するすべてのリソースはシステムによって再使用され、統計情報は更新されます。メッセージがトランザクション内にあるときに期限切れになった場合、それによってトランザクションが異常終了することはありません。トランザクション内でキューへの登録中、またはキューからの取り出し中に期限切れになったメッセージは、トランザクションが終了した時点でキューから削除されます。メッセージが期限切れになったという通知はありません。デフォルトの期限切れ時間がキューに指定されていない場合、明示的な期限切れ時間のないメッセージが期限切れになることはありません。キューの期限切れ時間を変更しても、変更前にキュー内にあったメッセージの期限切れ時間は変わりません。

形式は +seconds です。seconds は、キュー・マネージャが操作を正常終了してからメッセージが期限切れになるまでの経過秒数です。seconds0 に設定すると、メッセージはすぐに期限切れになります。

この属性の値は、文字列 NONE に設定することもできます。文字列 NONE は、明示的な期限切れ時間を設定せずにキューに登録されたメッセージは、期限切れにならないことを示します。既にキュー内にあるメッセージの期限切れ時間を変更するには、APPQ_MIBT_APPQMSG クラスの TA_EXPIRETIME 属性を使用します。

TA_DEFDELIVERYPOLICY:

この属性は、キューに登録されるメッセージに対して配信モードが指定されていない場合、キューにデフォルトの配信方針を指定します。値が PERSIST の場合、配信モードが明示的に指定されずにキューに登録されたメッセージは、永続的な (ディスク・ベースの) 配信方法で配信されます。値が NONPERSIST の場合、配信モードが明示的に指定されずにキューに登録されたメッセージは、非永続的な (メモリ内の) 配信方法で配信されます。キューのデフォルトの配信方針を変更しても、変更前にキュー内にあったメッセージに対する配信サービスの品質は変わりません。変更するキューが、現在キュー・スペースにあるメッセージに対する名前付きの応答キューである場合、キューのデフォルトの配信方針を変更しても、メッセージに対するサービスの応答品質は変わりません。

非永続的配信では、メモリ領域のすべてが使用されている場合や分割されたメッセージをキューに登録できない場合、メッセージ用の永続ストレージが十分にあっても、メッセージの登録操作は異常終了します。同様に、永続ストレージのすべてが使用されている場合や分割されたメッセージをキューに登録できない場合、メッセージ用の非永続ストレージが十分にあっても、メッセージの登録操作は異常終了します。キュー・スペースに対して T_APPQSPACE クラスの TA_MEMNONPERSIST 属性が 0 の場合、一時的メッセージ用の領域は確保されません。そのような場合には、一時的メッセージを登録しようとしても常に異常終了します。たとえば、メッセージに対してサービスの配信品質が指定されずに、ターゲット・キューの TA_DEFDELIVERYPOLICY 属性が NONPERSIST に設定された場合などです。

TA_MAXRETRIES:0 <= num

異常終了キュー・メッセージに対する最大リトライ回数。指定リトライ回数に達すると、メッセージは対応するアプリケーション・キュー・スペースのエラー・キューに入れられます。エラー・キューがない場合、メッセージは削除されます。デフォルトは 0 です。

TA_OUTOFORDER:{NONE | TOP | MSGID}

順序を無視したメッセージ処理を行う方法。デフォルト値は NONE です。

TA_RETRYDELAY:0 <= num

異常終了キュー・メッセージのリトライ間遅延 (秒)。デフォルトは 0 です。

TA_CURNONPERSISTBYTES:0 <= num

この属性は、キュー上の一時的メッセージが現在使用している共用メモリのバイト数を指定します。

TA_CURNONPERSISTMSG:0 <= num

この属性は、現在キューにある一時的メッセージ数を指定します。キューの合計メッセージ数を求めるには、この値に TA_CURMSG を加えます。

T_APPQMSG クラスの定義

概要

T_APPQMSG クラスは、アプリケーション・キュー内に保存されたメッセージを表します。メッセージは管理者が作成するのではなく、tpenqueue() 呼び出しの結果作成されます。メッセージは tpdequeue() 呼び出し、または管理者によって削除されます。また、メッセージの特定属性は管理者が変更できます。たとえば、管理者はメッセージを同一キュー・スペース内のあるキューから別のキューに移動させたり、優先順位を変更することができます。

制限事項

すべてのキー・フィールドを未設定にすると、このクラスのすべてのインスタンスを検索できません。反対に、1 つのアプリケーション・キュー・スペースを明示的に指定するには、適切なキー・フィールドを指定しなければなりません。必要なキー・フィールドは、TA_APPQSPACENAMETA_QMCONFIG、および TA_LMID です。ただし、アプリケーションの環境が未設定 (TUXCONFIG 環境変数が未設定) の場合を除きます。環境が未設定の場合は、TA_LMID を省略しなければなりません。たとえば、tpcall() を用いて、要求に TA_APPQSPACENAMETA_QMCONFIG、および TA_LMID 属性を設定した場合、指定キュー・スペース内のすべての T_APPQMSG オブジェクトが検索されます。

属性表

APPQ_MIB(5): APPQ_MIB(5): T_APPQMSG クラス定義: 属性表

属性 a

タイプ

パーミッション

デフォルト値

TA_APPQMSGID(k)(*)

string

r--r--r--

string[1..32]

N/A

TA_APPQNAME(k)(*)

string

r--r--r--

string[1..15]

N/A

TA_APPQSPACENAME(k) (*)

string

r--r--r--

string[1..15]

N/A

TA_QMCONFIG(k)(*)

string

r--r--r--

string[1..78]

N/A

TA_LMID(k)(*)b

string

r--r--r--

string[1..30]

N/A


TA_STATEc

string

rw-r--r--

GET:"VAL"

SET:"INV"

N/A

N/A


TA_NEWAPPQNAME

string

-w--w----

string[1..15]

N/A

TA_PRIORITY

long

rw-rw-r--

{ 1 <= num <= 100 | -1 }

N/A

TA_TIME

string

rw-rw-r--

{YY[MM[DD[hh[mm[ss]]]]] | +seconds}

N/A

TA_EXPIRETIME

string

rw-rw-r--

{YY[MM[DD[hh[mm[ss]]]]] | +seconds}

N/A


TA_CORRID(k)

string

r--r--r--

string[0..32]

N/A

TA_PERSISTENCE (k)

string

r--r--r--

{PERSIST|NONPERSIST}

N/A

TA_REPLYPERSISTENCE

string

r--r--r--

{PERSIST | NONPERSIST | DEFAULT}

N/A

TA_LOWPRIORITY(k)

long

k--k--k--

1 <= num <= 100

1

TA_HIGHPRIORITY(k)

long

k--k--k--

1 <= num <= 100

100

TA_MSGENDTIME(k)

string

k--k--k--

{YY[MM[DD[hh[mm[ss]]]]] | +seconds}

MAXLONG

TA_MSGSTARTTIME(k)

string

k--k--k--

{YY[MM[DD[hh[mm[ss]]]]] | +seconds}

0

TA_MSGEXPIREENDTIME(k)

string

k--k--k--

{YY[MM[DD[hh[mm[ss]]]]] | +seconds|NONE}

MAXLONG

TA_MSGEXPIRESTARTTIME(k)

string

k--k--k--

{YY[MM[DD[hh[mm[ss]]]]] | +seconds}

0


TA_CURRETRIES

long

r--r--r--

0 <= num

N/A

TA_MSGSIZE

long

r--r--r--

0 <= num

N/A

(k) - GET キー・フィールド d
(*) - 必要な SET キー・フィールド


 

a T_APPQMSG クラスの属性はすべてローカル属性です。

b アプリケーションのコンフィギュレーションが設定されていない (TUXCONFIG 環境変数が未設定) 場合を除いて、TA_LMID をキー・フィールドとして指定しなければなりません。

c T_APPQMSG オブジェクトに対する操作はすべて (GETSET の両方とも)対応するキュー・スペースを自動的にオープンします。キュー・スペースの状態が OPEn または ACTive 以外の場合、暗黙的に OPEn に設定します。キュー・スペースが大きい場合、この操作には大変時間がかかります。

d 1 つのアプリケーション・キュー・スペースを明示的に指定するには、GET 操作の際に適切なキー・フィールドを設定する必要があります。

属性の意味

TA_APPQMSGID:string[1..32]

キュー・メッセージの一意な識別子。GET 操作または SET 操作に対してメッセージを選択する際に使用できます。等号比較に使用する場合を除き、この値に意味を持たせることはできません。

TA_APPQNAME:string[1..15]

メッセージを保存するアプリケーション・キュー名。

TA_APPQSPACENAME:string[1..15]

メッセージのあるアプリケーション・キュー・スペース名。

TA_QMCONFIG:string[1..78]

アプリケーション・キュー・スペースが存在するファイルまたはデバイスの絶対パス名。

TA_LMID:string[1..30] (no comma)

アプリケーション・キュー・スペースが存在する論理マシンの識別子。

TA_STATE:

GET:{VALid}

GET 操作は、選択したメッセージに関する情報を検索します。以下に、GET 要求に対して返されるTA_STATE の意味を示します。

VALid

メッセージが存在します。この状態は INActive と同等で、パーミッションの確認に使用されます。


 

SET:{INValid}

SET 操作は、選択したメッセージの特性を更新します。以下に、SET 要求で返される TA_STATE の意味を示します。リストにない状態は設定されない場合があります。

INValid

メッセージがキュー・スペースから削除されます。この操作を行う場合、メッセージは VALid 状態でなければなりません。正常終了すると、オブジェクトの状態は INValid になります。

unset

メッセージを変更します。正常終了すると、オブジェクトの状態は変更されません。


 

TA_CURRETRIES:0 <= num

このメッセージに対して現在までに行われたリトライ回数。

TA_CORRID:string[0..32]

tpenqueue(3c) 要求にアプリケーションが設定するこのメッセージの相関識別子。空文字列は、相関識別子がないことを示します。

TA_EXPIRETIME:

この属性は、メッセージが期限切れになる時間を指定します。つまり、ここで指定した時間になると、キューに残っていたり、管理インターフェイスを介して削除されなかったメッセージが、キューから削除されます。メッセージが期限切れになると、そのメッセージによって使用されていたすべてのリソースはシステムによって再使用され、統計情報は更新されます。メッセージがトランザクション内にあるときに期限切れになった場合、それによってトランザクションが異常終了することはありません。トランザクション内でキューへの登録中、またはキューからの取り出し中に期限切れになったメッセージは、トランザクションが終了した時点でキューから削除されます。メッセージが期限切れになったという通知はありません。

期限切れ時間の値を変更する責任を持つキュー・マネージャではメッセージの期限切れを利用できる場合でも、この機能を利用できない BEA Tuxedo システムのバージョンの場合、その BEA Tuxedo システムでキューに登録されるメッセージに期限切れ時間を追加することはできません。期限切れ時間を追加しようとすると、失敗します。

期限切れ時間が設定されない場合、GET 操作は空文字列を返します。TA_EXPIRETIME には以下のいずれかの形式が使用されます。

+seconds

メッセージを指定秒数後に削除することを指定します。seconds の値を 0 に設定すると、メッセージはキューからすぐに削除されます。相対期限切れ時間は、MIB 要求が到着し、対応するキュー・マネージャによって処理された時間に基づいて算出します。

YY[MM[DD[hh]mm[ss]]]]

キューから取り出されたり管理インターフェイスを介して削除されていないメッセージに対して、そのメッセージを処理する年、月、日、時、分、秒を指定します。省略された単位のデフォルト値はそれぞれの最小値となります。たとえば、9506は 950601000000 と同じです。00 から 37 の年は 2000 から 2037、70 から 99 は 1970 から 1999 として処理されます。38 から 69 は無効です。絶対期限切れ時間は、キュー・マネージャ・プロセスが存在するマシンの時計によって決まります。

NONE

メッセージが決して期限切れにならないことを指定します。

TA_LOWPRIORITY:1 <= num <= 100
TA_HIGHPRIORITY:1 <= num <= 100

T_APPQMSG オブジェクトの発生を検索する最高/最低優先順位。これらの属性は GET 操作のキー・フィールドとしてしか使用できません。

TA_MSGEXPIRESTARTTIME:
TA_MSGEXPIREENDTIME:

T_APPQMSG オブジェクトの発生を検索する期限切れ開始/終了時間。範囲には各値を含みます。開始/終了時間は絶対時間値で指定しなければなりません。形式については、TA_EXPIRETIME を参照してください。これらの属性は GET 操作のキー・フィールドとしてしか使用できません。

TA_MSGSIZE:0 <= num

メッセージのサイズ (バイト)。

TA_MSGSTARTTIME:
TA_MSGENDTIME:

T_APPQMSG オブジェクトの発生を検索する開始/終了時間。範囲には各値を含みます。開始/終了時間は絶対時間値で指定しなければなりません。形式については、TA_TIME を参照してください。これらの属性は GET 操作のキー・フィールドとしてしか使用できません。

TA_NEWAPPQNAME:string[1..15]

選択したメッセージの移動先のキュー名。このキューは同一キュー・スペースに存在するキューでなければなりません。この操作を行うには、メッセージの状態は VALid でなければなりません。この属性は GET 操作では返されません。移動するメッセージに対するサービス配信の品質は、新しいキューのデフォルトの配信方針によって影響されません。期限切れ時間のあるメッセージを移動する場合、その期限切れ時間が相対期限切れ時間として指定されていても、新しいキューでは絶対期限切れ時間として扱われます。

TA_PERSISTENCE:

メッセージが配信されるサービス品質。この読み取り専用の状態は、一時的メッセージでは NONPERSIST、永続的メッセージでは PERSIST に設定されます。

TA_PRIORITY:1 <= num <= 100

メッセージの優先順位。

TA_REPLYPERSISTENCE:

メッセージの応答に対するサービス配信の品質。この読み取り専用の状態は、一時的メッセージでは NONPERSIST、永続的メッセージでは PERSIST に、また応答がその登録先になるキューに対して確立されているデフォルトの配信方針を使用するときは DEFAULT に設定されます。

デフォルトの配信方針は、メッセージに対する応答がキューに登録されるときに決まります。つまり、元のメッセージがキューに登録されてからそのメッセージに対する応答が登録されるまでの間に、応答キューのデフォルトの配信方針が変更された場合は、応答が最後に登録された時点で有効な方針が使用されます。

TA_TIME:

メッセージを処理する時間。以下のいずれかの形式が使用されます。

+seconds

メッセージを seconds 秒後に処理することを指定します。0 を指定すると、メッセージはすぐに処理されます。

YY[MM[DD[hh[mm[ss]]]]]

メッセージを処理する年、月、日、時分秒を指定します。省略された単位のデフォルト値はそれぞれの最小値となります。たとえば、9506950601000000 と同じです。00〜37 までの年は 2000〜20037、70〜99 は 1970〜1999 として処理されます。38〜69 は無効です。

T_APPQSPACE クラスの定義

概要

T_APPQSPACE クラスは、アプリケーション・キュー・スペースを表します。アプリケーション・キュー・スペースとは BEA Tuxedo システム・デバイス内の領域です。デバイスとその属性についての詳細は、TM_MIB(5)T_DEVICE クラスを参照してください。各キュー・スペースには通常 1 つ以上のアプリケーション・キューがあり、各キューにはメッセージが保存されます。

キュー・スペースは、名前 (TA_APPQSPACENAME 属性)、キュー・スペースが存在するデバイス (TA_QMCONFIG 属性)、デバイスが存在する論理マシン (TA_LMID 属性) の複数の属性により一意に識別されます。

キュー・スペースは通常、環境設定済みのアプリケーションでは 1 つのサーバグループにしか関連付けられません。キュー・スペース名およびデバイス名は、T_GROUP オブジェクトの TA_OPENINFO 属性のコンポーネントです。

制限事項

すべてのキー・フィールドを未設定にすると、このクラスのすべてのインスタンスを検索できません。反対に、1 つのアプリケーション・キュー・スペースを明示的に指定するには、すべてのキー・フィールドを指定しなければなりません。環境設定がされていない (TUXCONFIG 環境変数が未設定) アプリケーションのコンテキストで tpadmcall() を介してローカル・キュー・スペースにアクセスすると、例外が 1 つ発生します。この場合、TA_LMID キー・フィールドは省略しなければなりません。

/Q MIB 内のすべてのオブジェクトに対する操作は暗黙的にキュー・スペースを使用するため、上記のキュー・スペースのアクセスに関する制限は、T_APPQ オブジェクト、T_APPQMSG オブジェクト、T_APPQTRANS オブジェクトにも該当します。

属性表

APPQ_MIB(5): T_APPQSPACE クラス定義の属性表

属性 a

タイプ

パーミッション

デフォルト値

TA_APPQSPACENAME(k)(r)(*)

TA_QMCONFIG(k)(r)(*)

TA_LMID(k)(r)(*)b

string

string

string

ru-r--r--

ru-r--r--

ru-r--r--

string[1..15]

string[1..78]

string[1..30]

N/A

N/A

N/A

TA_STATE(k)c

string

rwxrwxr--

GET:"{INA | INI | OPE | ACT}"

SET:"{NEW | OPE | CLE | INV}"

N/A

N/A

TA_BLOCKING

TA_ERRORQNAME

TA_FORCEINIT

TA_IPCKEY(r)

TA_MAXMSG(r)

TA_MAXPAGES(r)

TA_MAXPROC(r)

TA_MAXQUEUES(r)d

TA_MAXTRANS(r)

TA_MAXACTIONS

TA_MAXHANDLES

TA_MAXOWNERS

TA_MAXTMPQUEUES

TA_MAXCURSORS

TA_MEMNONPERSIST

TA_MEMFILTERS

TA_MEMOVERFLOW

long

string

string

long

long

long

long

long

long

long

long

long

long

long

string

long

long

rw-r--r--

rw-r--r--

rw-r--r--

rw-r--r--

rw-r--r--

rw-r--r--

rw-r--r--

rw-r--r--

rw-r--r--

rw-r--r--

rw-r--r--

rw-r--r--

rw-r--r--

rw-r--r--

rw-r--r--

rw-r--r--

rw-r--r--

0 <= num

string[0..15]

{Y | N}

32769 <= num <=262143

0 <= num

0 <= num

0 <= num

0 <= num

0 <= num

0 <= num

0 <= num

0 <= num

0 <= num

0 <= num

0 <= num[bB]

0 <= num

0 <= num

16

""

N

N/A

N/A

N/A

N/A

N/A

N/A

0

0

0

0

0

0

0

0

TA_MEMSYSTEMRESERVED

TA_MEMTOTALALLOCATED

long

long

r--r--r--

r--r--r--

0 <= num

0 <= num

N/A

N/A

TA_CUREXTENT

TA_CURMSG

TA_CURPROC

TA_CURQUEUES

TA_CURTRANS

TA_CURACTIONS

TA_CURHANDLES

TA_CUROWNERS

TA_CURTMPQUEUES

TA_CURCURSORS

TA_CURMEMNONPERSIST

TA_CURMEMFILTERS

TA_CURMEMOVERFLOW

TA_HWMSG

TA_HWPROC

TA_HWQUEUES

TA_HWTRANS

TA_HWACTIONS

TA_HWHANDLES

TA_HWOWNERS

TA_HWTMPQUEUES

TA_HWCURSORS

TA_HWMEMNONPERSIST

TA_HWMEMFILTERS

TA_HWMEMOVERFLOW

TA_PERCENTINIT

long

long

long

long

long

long

long

long

long

long

long

long

long

long

long

long

long

long

long

long

long

long

long

long

long

long

r--r--r--

r--r--r--

r--r--r--

r--r--r--

R--R--R--

r--r--r--

r--r--r--

r--r--r--

r--r--r--

r--r--r--

r--r--r--

r--r--r--

r--r--r--

R--R--R--

R--R--R--

R--R--R--

R--R--R--

R--R--R--

R--R--R--

R--R--R--

R--R--R--

R--R--R--

R--R--R--

R--R--R--

R--R--R--

r--r--r--

0 <= num <= 100

{ 0 <= num | -1 }

0 <= num

{ 0 <= num | -1 }

0 <= num

0 <= num

0 <= num

0 <= num

0 <= num

0 <= num

0 <= num

0 <= num

0 <= num

0 <= num

0 <= num

0 <= num

0 <= num

0 <= num <= 100

0 <= num

0 <= num

0 <= num

0 <= num

0 <= num

0 <= num

0 <= num

0 <= num

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

(k) - GET キー・フィールド
(r) - オブジェクト作成に必要なフィールド
(*) - 必要な SET キー・フィールド


 

a T_APPQSPACE クラスの属性はすべてローカル属性です。

b アプリケーションの環境設定がされていない (TUXCONFIG 環境変数が未設定) 場合を除いて、TA_LMID をキー・フィールドとして指定しなければなりません。

c T_APPQ オブジェクト、T_APPQMSG オブジェクト、および T_APPQTRANS オブジェクトに対する操作はすべて (GETSET の両方とも) 対応するキュー・スペースを自動的にオープンします。キュー・スペースの状態が OPEn または ACTive 以外の場合、暗黙的に OPEn に設定します。キュー・スペースが大きい場合、この操作には大変時間がかかります。

d キュー・スペース作成後、TA_MAXQUEUES は変更不可能となります。

属性の意味

TA_APPQSPACENAME:string[1..15]

アプリケーション・キュー・スペース名。

TA_QMCONFIG:string[1..78]

アプリケーション・キュー・スペースが存在するファイルまたはデバイスの絶対パス名。

TA_LMID:string[1..30] (no comma)

アプリケーション・キュー・スペースが存在する論理マシンの識別子。

TA_STATE:

GET:{INActive | INItializing | OPEn | ACTive}

GET アプリケーション・キュー・スペースが存在する論理マシンの識別子。以下に、GET 要求に対して返される TA_STATE の意味を示します。

INActive

キュー・スペースが存在します。つまり、キュー・スペースに対するディスク領域がデバイスに確保され、領域が初期化されています (要求時、または必要時)。

INItializing

キュー・スペースに対するディスク領域を初期化中です。この状態は ACTive と同等で、パーミッション検査に使用されます。

OPEn

キュー・スペースに対する共有メモリおよびその他のIPCリソースが割り当てられ、初期化されています。しかし、現在共有メモリにはアタッチされているプロセスがありません。この状態は INActive と同等で、パーミッションの確認に使用されます。

ACTive

キュー・スペースに対する共有メモリおよびその他の IPC リソースが割り当てられ、初期化されています。共有メモリには現在最低 1 つのプロセスがアタッチされています。プロセスはキュー・スペースに対応するキュー・サーバ (TMS_QMTMQUEUE、および、おそらく TMQFORWARD)、qmadmin(1) などの管理プロセス、あるいは他のアプリケーションに関連付けられたプロセスとなります。


 

SET:{NEW | OPEn | CLEaning | INValid}

SET 操作は、選択したアプリケーション・キュー・スペースを変更するか、または新規に作成します。以下に、SET 要求で返される TA_STATE の意味を示します。リストにない状態は設定できません。

NEW

新規にキュー・スペースを作成します。SET が正常終了してこの状態になると、キュー・スペースの状態は、INItializing または INActive になります。

OPEn

キュー・スペースに対する共有メモリおよび他のIPCリソースを割り当て、初期化します。キュー・スペースが INActive 状態の場合のみ可能です。

CLEaning

キュー・スペースに対する共有メモリおよび他のIPCリソースを削除します。キュー・スペースが OPEn または ACTive 状態の場合のみ可能です。状態が ACTive の場合は、QMIB_FORCECLOSE フラグが指定されていなければなりません。正常終了すると、一時的メッセージはすべて完全に失われます。

INValid

キュー・スペースを削除します。状態が ACTive、あるはメッセージがキュー・スペースのいずれかのキューに存在する場合、QMIB_FORCEDELETE フラグを渡さない限り、エラーが報告されます。正常終了すると、オブジェクトの状態は INValid になります。正常終了すると、一時的メッセージはすべて完全に失われます。

unset

アプリケーション・キュー・スペースを変更します。正常終了の場合は、オブジェクト状態は変更されません。


 

TA_BLOCKING:0 <= num

キュー・スペースのディスク領域管理で使用するブロック化係数。新しいキュー・スペースが作成された場合の省略時値は 16。

TA_CURACTIONS:0 <= num

この属性は、キュー・スペースで使用している現在のアクション数を指定します。この値は、キュー・スペースが OPEn または ACTive の場合、あるいはキュー・スペースが新規に作成された場合のみ決定されます。どの条件も当てはまらない場合は、-1 の値が返されます。

TA_CURCURSORS:0 <= num

この属性は、キュー・スペースで使用している現在のカーソル数を指定します。この値は、キュー・スペースが OPEn または ACTive の場合、あるいはキュー・スペースが新規に作成された場合のみ決定されます。どの条件も当てはまらない場合は、-1 の値が返されます。

TA_CUREXTENT:0 <= num <= 100

キュー・スペースが使用する現在のエクステント数。最大値は 100 です。TA_MAXPAGES 属性の値が増加するごとに、新規にエクステントが割り当てられます。この属性を変更すると、キュー・スペース内のすべての一時的メッセージは完全に失われます。

TA_CURHANDLES:0 <= num

この属性は、キュー・スペースで使用する現在のハンドル数を指定します。この値は、キュー・スペースが OPEn または ACTive の場合、あるいはキュー・スペースが新規に作成された場合のみ決定されます。どの条件も当てはまらない場合は、-1 の値が返されます。

TA_CURMEMFILTERS:0 <= num

どの条件も当てはまらない場合は、-1 の値が返されます。この値は、キュー・スペースが 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..15]

キュー・スペースに対応するエラー・キュー名。 エラー・キューがない場合、GET 要求は空き文字列を返します。

TA_FORCEINIT:{Y | N}

キュー・スペースに対して、新規のエクステントでディスク・ページを初期化するかどうかを指定します。デフォルト値は、「初期化しない」です。デバイス・タイプに応じて (通常ファイルまたは raw スライスなど)、要求しなくても、初期化を行うことができます。

TA_HWACTIONS:0 <= num

この属性は、キュー・スペースが最後にオープンされた後に、同時に到達したアクションの最大数を指定します。キュー・スペースの状態が CLEaning に設定されると、この値は 0 にリセットされます。

TA_HWCURSORS:0 <= num

この属性は、キュー・スペースが最後にオープンされた後に、キュー・スペースで同時に作成されたカーソルの最大数を指定します。キュー・スペースの状態が CLEaning に設定されると、この値は 0 にリセットされます。

TA_HWHANDLES:0 <= num

この属性は、キュー・スペースが最後にオープンされた後に、キュー・スペースで同時にオープンされたハンドルの最大数を指定します。キュー・スペースの状態が CLEaning に設定されると、この値は 0 にリセットされます。

TA_HWMEMFILTERS:0 <= num

この属性は、キュー・スペースが最後にオープンされた後に、キュー・スペースでフィルタ用に使用した最大バイト数を指定します。キュー・スペースの状態が CLEaning に設定されると、この値は 0 にリセットされます。

TA_HWMEMNONPERSIST:0 <= num

キュー・スペースが最後にオープンされた後に、一時的メッセージが使用した最大メモリ容量 (バイト)。キュー・スペースの状態が CLEaning に設定されると、この値は 0 にリセットされます。

TA_HWMEMOVERFLOW:0 <= num

この属性は、キュー・スペースが最後にオープンされた後に、キュー・スペースのオーバフロー・メモリで使用された最大バイト数を指定します。キュー・スペースの状態が CLEaning に設定されると、この値は 0 にリセットされます。

TA_HWMSG:0 <= num

キュー・スペースが最後にオープンされた後、ある時点でキュー・スペース内に存在する最大メッセージ数。キュー・スペースの状態が CLEaning に設定されると、この値は 0 にリセットされます。

TA_HWOWNERS:0 <= num

この属性は、キュー・スペースが最後にオープンされた後に、キュー・スペースで同時に到達した所有者の最大数を指定します。キュー・スペースの状態が CLEaning に設定されると、この値は 0 にリセットされます。

TA_HWPROC:0 <= num

キュー・スペースが最後にオープンされた後のキュー・スペース内の最大プロセス数。キュー・スペースの状態が CLEaning に設定されると、この値は 0 にリセットされます。

TA_HWQUEUES:0 <= num

キュー・スペースが最後にオープンされた後、ある時点でキュー・スペース内に存在する最大キュー数。キュー・スペースの状態が CLEaning に設定されると、この値は 0 にリセットされます。

TA_HWTMPQUEUES:0 <= num

この属性は、キュー・スペースが最後にオープンされた後、キュー・スペースで同時にオープンされた一時キューの最大数を指定します。キュー・スペースの状態が CLEaning に設定されると、この値は 0 にリセットされます。

TA_HWTRANS:0 <= num

キュー・スペースが最後にオープンされた後、ある時点でキュー・スペースを使用する最大未処理トランザクション数。キュー・スペースが複数のアプリケーションからアクセスされる場合、TUXCONFIG 環境変数で示すアプリケーションだけではなく、すべてのアプリケーションを含む値になります。キュー・スペースの状態が CLEaning に設定されると、この値は 0 にリセットされます。

TA_IPCKEY:32769 <= num <= 262143

キュー・スペースの共有メモリにアクセスする際に使用する IPC キー。

TA_MAXACTIONS:0 <= num

この属性は、BEA Tuxedo インフラストラクチャのキューイング・サービス・コンポーネントが同時に処理できる追加アクション数を指定します。ブロッキング操作が発生したときに追加アクションが利用可能な場合、ブロッキング操作はその条件を満たすまで無視されます。ブロッキング操作が無視されると、別の操作要求を処理できるようになります。ブロッキング操作が完了すると、その操作に関連付けられていたアクションをその後の操作で利用できるようになります。システムでは、キュー・スペースにアタッチできるプロセス数と等しいアクションを確保しているため、各キュー・マネージャ・プロセスは最低 1 つのブロッキング・アクションを持つことができます。管理者は、システムが確保するブロッキング・アクション数を超えて、追加のブロッキング・アクションを処理するようにシステムを設定できます。ブロッキング操作が要求された場合にすぐにその条件を満たすことができず、ほかに利用できるアクションもない場合は、操作は異常終了します。

TA_MAXCURSORS:0 <= num

この属性は、BEA Tuxedo インフラストラクチャのキューイング・サービス・コンポーネントのユーザが同時に使用できるカーソル数を指定します。カーソルはキューを操作するのに使用します。カーソルが削除されると、そのカーソルのリソースはその後のカーソル生成操作で利用できるようになります。カーソルがアプリケーションによって使用される場合、管理者は、同時に割り当てられる最大カーソル数に対応するようにシステムを設定する必要があります。ユーザがカーソルを作成しようとしてカーソルのリソースを利用できない場合、操作は異常終了します。BEA Tuxedo アプリケーションではこの値を調節する必要はありません。この値を調節しても、共用メモリを必要以上に浪費するだけで、何の効果もありません。

TA_MAXHANDLES:0 <= num

この属性は、BEA Tuxedo インフラストラクチャのキューイング・サービス・コンポーネントのユーザが同時に使用できるハンドル数を指定します。キューイング・サービス API によって操作されるオブジェクトでは、オブジェクトにアクセスするためのハンドルが必要です。キューイング・サービス API の呼び出しによりオブジェクトがオープンされると、新しいハンドルが作成されてユーザに返されます。オブジェクト・ハンドルがクローズされると、そのハンドルはその後のオブジェクトのオープン操作に利用できるようになります。キューイング・サービス API がアプリケーションによって使用される場合、管理者は、同時にオープンされる最大ハンドル数に対応するようにシステムを設定する必要があります。ユーザがキューイング・サービス・オブジェクトをオープンしようとした場合にハンドルを利用できないと、操作は異常終了します。この値を調節しても、共用メモリを必要以上に浪費するだけで、BEA Tuxedo アプリケーションには何の効果もありません。

TA_MAXMSG:0 <= num

ある時点でキュー・スペースに保存可能な最大メッセージ数。

TA_MAXOWNERS:0 <= num

この属性は、キューイング・サービスのリソースを同時に使用することを許可された、BEA Tuxedo インフラストラクチャの認証済みユーザの追加数を指定します。ユーザに対してオープンしているハンドル数に関係なく、各ユーザに 1 つの所有者レコードがあります。オープンしているハンドルがないユーザの場合、その所有者レコードはその後のユーザに利用できます。システムはアクション数と等しい所有者を確保し、異なる所有者がそれぞれのアクションを開始できるようにします。管理者は、システムが確保したキューイング・サービス・リソースを同時に使用できる所有者数を超えて、追加の所有者に対応するようにシステムを設定できます。オープンしているハンドルがない場合に、ユーザがハンドルをオープンしようとして利用できる所有者がないと、操作は異常終了します。この値を調節しても、共用メモリを必要以上に浪費するだけで、BEA Tuxedo アプリケーションには何の効果もありません。

TA_MAXPAGES:0 <= num

キュー・スペース内のすべてのキューに対する最大ディスク・ページ数。TA_MAXPAGES 属性が増加するごとに、新規にエクステントが割り当てられます (TA_CUREXTENT 参照)。この属性に小さい値を指定してページ数を減少させることはできません。この場合、エラーが報告されます。

TA_MAXPROC:0 <= num

キュー・スペースに追加可能な最大プロセス数。

TA_MAXQUEUES:0 <= num

ある時点でキュー・スペースに保存可能な最大キュー数。

TA_MAXTMPQUEUES:0 <= num

この属性は、BEA Tuxedo インフラストラクチャのキューイング・サービス・コンポーネントで同時にオープンできる一時キューの数を指定します。一時キューを使用すると、管理者はアプリケーションによって使用される各キューを設定する必要がなくなります。一時キューは、動的自己設定型アプリケーションで使用されます。一時キューに登録されるメッセージは、永続的ではありません。一時キューのすべてのハンドルがクローズされると、一時キューのリソースはその後の一時キュー作成に利用できるようになります。一時キューがアプリケーションによって使用される場合、管理者は、同時にアクティブになる一時キューの最大数に対応できるようにシステムを設定する必要があります。ユーザが一時キューをオープンしようとした場合に一時キューのリソースを利用できないと、操作は異常終了します。この値を調節しても、共用メモリを必要以上に浪費するだけで、BEA Tuxedo アプリケーションには何の効果もありません。

TA_MAXTRANS:0 <= num

キュー・スペースで同時にアクティブにできる最大トランザクション数。

TA_MEMFILTERS:0 <= num

この属性は、ユーザ定義フィルタのコンパイル表現を格納するために、共用メモリで確保するメモリ領域のサイズを指定します。メモリのサイズはバイトで指定します。フィルタは、キューからのメッセージの取り出し操作やカーソル操作においてメッセージを選択する際に、BEA Tuxedo インフラストラクチャのキューイング・サービス・コンポーネントによって使用されます。いろいろな文法を使用して指定されたフィルタは、BEA Tuxedo インフラストラクチャの通常の形式にコンパイルされて、共用メモリに格納されます。フィルタはコンパイル時に返されるハンドルによって参照されます。フィルタが削除されると、そのフィルタによって使用されていたメモリはその後のコンパイル済みフィルタに利用できるようになります。フィルタがアプリケーションによって定義される場合、管理者は、同時にコンパイルされるフィルタの最大数に対応できるようにシステムを設定する必要があります。ユーザが新しいフィルタを作成しようとした場合にコンパイルされるフィルタに十分なメモリが割り当てられていないと、操作は異常終了します。この値を調節しても、共用メモリを必要以上に浪費するだけで、BEA Tuxedo アプリケーションには何の効果もありません。

TA_MEMNONPERSIST:0 <= num [bB]

この属性は、キュー・スペース内のすべてのキューの一時的メッセージを格納するために、共用メモリで確保する領域のサイズを指定します。メモリのサイズはバイト (b) またはブロック (B) で指定します。ここでは、ブロックのサイズはディスク・ブロックのサイズと等しくなります。[bB] 接尾辞は指定してもしなくても構いませんが、指定しなかった場合、デフォルトでブロック (B) になります。

この属性の値をバイト (b) で指定すると、システムはその値をページあたりのバイト数で割り (ページ・サイズはディスク・ページ・サイズと等しい)、結果を最近値の整数に切り捨て、そのページ数のメモリを割り当てます。たとえば、ページ・サイズが 1024 バイト (1KB) と仮定すると、値 2000b が要求された場合メモリの割り当ては 1 ページ (1024 バイト) になり、値 2048b が要求された場合メモリの割り当ては 2 ページ (2048 バイト) になります。ページあたりのバイト数より小さい値を要求すると、0 ページ (0 バイト) が割り当てられます。

この属性の値をブロック (B) で指定し、1 メモリ・ブロックが 1 メモリ・ページと等しいとすると、システムは指定した値と同じページ数を割り当てます。たとえば、値 50B を要求した場合、50 ページのメモリが割り当てられます。

TA_MEMNONPERSIST が変更されると、指定されたキュー・スペース内のすべての一時的メッセージは、完全に失われます。

キュー・スペースに対して TA_MEMNONPERSIST0 の場合、一時的メッセージのための領域は確保されていません。この場合、一時的メッセージをキューに登録しようとしても、常に異常終了します。たとえば、メッセージに対してサービス配信の品質が指定されずに、ターゲット・キューの T_APPQ クラスの TA_DEFDELIVERYPOLICY 属性が NONPERSIST に設定された場合などです。非永続的配信では、メモリ領域のすべてが使用されている場合や分割されたメッセージをキューに登録できない場合、メッセージ用の永続ストレージが十分にあっても、メッセージの登録操作は異常終了します。同様に、永続ストレージのすべてが使用されている場合や分割されたメッセージをキューに登録できない場合、メッセージ用の非永続ストレージが十分にあっても、メッセージの登録操作は異常終了します。

TA_MEMOVERFLOW:0 <= num

この属性は、割り当て共用メモリの一部または全部が使用されたピーク負荷状況に対応するために、共用メモリで確保する領域のサイズを指定します。メモリのサイズはバイトで指定します。追加オブジェクトは、先着順でこの追加メモリから割り当てられます。追加メモリで作成されたオブジェクトがクローズまたは削除されると、メモリは解放されてその後のオーバフロー状況に利用できるようになります。追加のメモリ領域を利用すると、設定より多くのオブジェクトを作成できますが、すべてのオブジェクトに常に追加メモリを利用できるとは限りません。現在、オーバフロー・メモリを使用するのは、アクション、ハンドル、カーソル、所有者、一時キュー、タイマ、およびフィルタだけです。

TA_MEMSYSTEMRESERVED:0 <= num

この属性は、キユーイング・サービス・システムが使用するために、共用メモリで確保するメモリ容量の合計 (バイト) を指定します。

TA_MEMTOTALALLOCATED:0 <= num

この属性は、すべてのキユーイング・サービス・オブジェクトに割り当てられる共用メモリ容量の合計 (バイト) を指定します。

TA_PERCENTINIT:0 <= num <= 100

キュー・スペースに対して初期化されたディスク領域のパーセンテージ。

T_APPQTRANS クラスの定義:

概要

T_APPQTRANS クラスは、アプリケーション・キューに対応するトランザクションの実行時属性を表します。

制限事項

すべてのキー・フィールドを未設定にすると、このクラスのすべてのインスタンスを検索できません。反対に、1 つのアプリケーション・キュー・スペースを明示的に指定するには、すべてのキー・フィールドを指定しなければなりません。たとえば、TA_XID を除くすべてのキー・フィールドを tpcall() を使用して要求に設定した場合、指定キュー・スペースに対応する T_APPQTRANS オブジェクトがすべて検索されます。

このクラスのオブジェクトで表現されるトランザクションは必ずしも検索対象のアプリケーションに対応しないので注意して下さい。トランザクションは実際に他のアプリケーションに属さない、あるは影響を持たないため、トランザクションにコミットしたり、トランザクションをアボートする場合は注意してください。TA_XID 属性の値はアプリケーション間で一意とは限りません。

属性表

APPQ_MIB(5): APPQ_MIB(5): T_APPQTRANS クラス定義: 属性表

属性a

タイプ

パーミッション

値:

デフォルト値

TA_XID( k )( * )

string

R--R--R--

string[1..78]

N/A

TA_APPQSPACENAME(k)(*)

string

r--r--r--

string[1..15]

N/A

TA_QMCONFIG( k )( * )

string

r--r--r--

string[1..78]

N/A

TA_LMID( k )( * )

string

r--r--r--

string[1..30]

N/A

TA_STATEb

string

R-XR-XR--

GET:"{ACT | ABY | ABD | COM | REA | DEC | HAB | HCO}"

SET:"{HAB | HCO}"

N/A


N/A

(k) - GET キー・フィールド c
(*) - 必要な SET キー・フィールド


 

a T_APPQTRANS クラスの属性はすべてローカル属性です。

b T_APPQTRANS オブジェクト―GET および SET―対応するキュー・スペースを自動的にオープンします。キュー・スペースの状態が OPEn または ACTive 以外の場合、暗黙的に OPEn に設定します。キュー・スペースが大きい場合、この操作には大変時間がかかります。

c 1 つのアプリケーション・キュー・スペースを明示的に指定するには、GET 操作の際に適切なキー・フィールドを設定する必要があります。

属性の意味

TA_XID:string[1..78]

tx_info() から返され、文字列表現にマップされるトランザクション識別子。等号比較の場合を除き、ユーザはこのフィールドのデータを直接解釈することはできません。

TA_APPQSPACENAME:string[1..15]

トランザクションに対応するアプリケーション・キュー・スペース名。

TA_QMCONFIG:string[1..78]

アプリケーション・キュー・スペースが存在するファイルまたはデバイスの絶対パス名。

TA_LMID:string[1..30] (no comma)

アプリケーション・キュー・スペースが存在する論理マシンの識別子。

TA_STATE:

GET: {ACTive | ABortonlY | ABorteD | COMcalled | REAdy | DECided | HAbord | HCommit}

GET 操作は、選択したトランザクションに関する実行時の情報を検索します。以下に、GET 要求に対して返される TA_STATE の意味を示します。状態はすべて ACTive と同等で、パーミッション検査に使用されます。

ACTive

トランザクションはアクティブです。

ABortonlY

トランザクションはロールバックされるように識別されています。

ABorteD

トランザクションはロールバックされるように識別されており、ロールバックが開始されました。

COMcalled

トランザクションのイニシエータが tpcommit() を呼び出し、2 フェーズ・コミットの第 1 フェーズが開始されました。

REAdy

検索サイトの参加グループすべてが 2 フェーズ・コミットの第 1 フェーズを正常に完了し、コミット可能な状態です。

DECided

2 フェーズ・コミットの第 2 フェーズが開始されました。

SUSpended

トランザクションのイニシエータがトランザクション処理を中断しました。


 

SET:{HABort | HCOmmit}

SET 操作は、選択したトランザクションの状態を更新します。以下に、SET 要求で返される TA_STATE の意味を示します。リストにない状態は設定できません。

HABort

トランザクションをヒューリスティックにアボートします。正常終了の場合は、オブジェクトは HABort 状態になります。

HCOmmit

トランザクションをヒューリスティックにコミットします。正常終了の場合は、オブジェクトは HCOmmit 状態になります。


 

APPQ_MIB(5) に関する追加情報

移植性

BEA Tuxedo システムの MIB を使用した管理作業をサポートするために必要な既存の FLM32 関数および ATMI 関数、そして本マニュアル・ページに記述するヘッダ・ファイルとフィールド・テーブルは、すべてのサポート対象ネイティブ・プラットフォームおよびワークステーション・プラットフォームで利用可能です。

相互運用性

この MIB は、リリース 6.0 以降の BEA Tuxedo を使用しているサイトでのネイティブおよびワークステーションだけに提供されます。

リリース 6.0 以前の BEA Tuxedo システムのリリースを動作させているサイトがアプリケーションでアクティブな場合は、本 MIB による管理アクセスは以下のように制限されます。

リリースが異なるサイト (共にリリース 6.0 以降) が相互運用を行う場合、当該リリースの MIB マニュアル・ページに定義されるように、旧サイト上の情報はアクセスおよび更新に利用可能で、以降のリリースで利用可能な情報のサブセットとなります。

使用例

以下に、アプリケーション・キュー・スペース、キュー、メッセージ、およびトランザクションに対する各種操作の実行方法を示すコードを示します。

各コードの前には、以下のように、FML32 型付きバッファを割り当てるコードを追加してください。

rqbuf = tpalloc("FML32", NULL, 0);

バッファにデータを入力した後、各コードの後には、以下のような、要求を送信し応答を受信するコードを追加します

flags = TPNOTRAN | TPNOCHANGE | TPSIGRSTRT;
rval = tpcall(".TMIB", rqbuf, 0, rpbuf, rplen, flags);

詳細については、MIB(5) を参照してください。

フィールド・テーブル

属性フィールド識別子にアクセスするには、フィールド・テーブル tpadm が環境中で利用可能でなければなりません。そのために、以下のようにシェルで入力します。

$ FIELDTBLS=tpadm 
$ FLDTBLDIR=${TUXDIR}/udataobj
$ export FIELDTBLS FLDTBLDIR

ヘッダ・ファイル

以下のヘッダ・ファイルが必要です。

#include <atmi.h> 
#include <fml32.h>
#include <tpadm.h>

ライブラリ

${TUXDIR}/lib/libtmib.a、${TUXDIR}/lib/libqm.a、${TUXDIR}/lib/libtmib.so.<rel>、${TUXDIR}/lib/libqm.so.<rel>、${TUXDIR}/lib/libqm.lib

buildclient を使用するときは、ライブラリを手動でリンクしなければなりません。次のように使用してください。

-L${TUXDIR}/lib -ltmib -lqm

アプリケーション・キュー・スペースの作成

通常アプリケーション・キュー・スペースを作成するには 2 つの操作が必要です。最初の操作でキュー・スペースを割り当てる BEA Tuxedo システム・デバイスを作成し、次の操作でキュー・スペース自体を作成します。

/* 上記を参照してバッファを割り当てる */ 

/* SITE1 に新しいデバイスを作成する要求を作成 */
Fchg32(rqbuf, TA_OPERATION, 0, "SET", 0);
Fchg32(rqbuf, TA_CLASS, 0, "T_DEVICE", 0);
Fchg32(rqbuf, TA_STATE, 0, "NEW", 0);
Fchg32(rqbuf, TA_CFGDEVICE, 0, "/dev/q/dsk001", 0);
Fchg32(rqbuf, TA_LMID, 0, "SITE1", 0);
size = 500;
Fchg32(rqbuf, TA_DEVSIZE, 0, (char *)size, 0);

/* 上記を参照して要求を作成 */

/* 再使用のため、同じバッファを再度初期化する */
Finit32(rqbuf, (FLDLEN) Fsizeof32(rqbuf));

/* キュー・スペースを作成する要求を作成 */
Fchg32(rqbuf, TA_OPERATION, 0, "SET", 0);
Fchg32(rqbuf, TA_CLASS, 0, "T_APPQSPACE", 0);
Fchg32(rqbuf, TA_STATE, 0, "NEW", 0);
Fchg32(rqbuf, TA_APPQSPACENAME, 0, "QSPACE1", 0);
Fchg32(rqbuf, TA_QMCONFIG, 0, "/dev/q/dsk001", 0);
Fchg32(rqbuf, TA_LMID, 0, "SITE1", 0);
Fchg32(rqbuf, TA_ERRORQNAME, 0, "errque", 0);
ipckey = 123456;
Fchg32(rqbuf, TA_IPCKEY, 0, (char *)ipckey, 0);
maxmsg = 100;
Fchg32(rqbuf, TA_MAXMSG, 0, (char *)maxmsg, 0);
maxpages = 200;
Fchg32(rqbuf, TA_MAXPAGES, 0, (char *)maxpages, 0);
maxproc = 50;
Fchg32(rqbuf, TA_MAXPROC, 0, (char *)maxproc, 0);
maxqueues = 10;
Fchg32(rqbuf, TA_MAXQUEUES, 0, (char *)maxqueues, 0);
maxtrans = 100;
Fchg32(rqbuf, TA_MAXTRANS, 0, (char *)maxtrans, 0);

/* 上記を参照して要求を作成 */

アプリケーション・キュー・スペースへのキューの追加

以下のコードは、上の例で作成したキュー・スペースに新規にキューを作成します。

/* 要求を作成 */ 
Fchg32(rqbuf, TA_OPERATION, 0, "SET", 0);
Fchg32(rqbuf, TA_CLASS, 0, "T_APPQ", 0);
Fchg32(rqbuf, TA_STATE, 0, "NEW", 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);
Fchg32(rqbuf, TA_APPQORDER, 0, "PRIO", 0);

/* 上記を参照して要求を作成 */

アプリケーションが認識しているアプリケーション・キュー・スペースの一覧表示

アプリケーションが認識しているアプリケーション・キュー・スペースを一覧表示するには、2 段階の検索を行います。まず、/Q トランザクション・マネージャ TMS_QM を使用するグループがアプリケーション環境設定から検索され、次に各グループが参照しているキュー・スペースが検索されます。以下のコードは、キュー・スペースを使用する各 GROUP エントリに 1 つの論理マシンが対応付けられていると仮定します (つまり、サーバ移行は未使用)。

アプリケーションが認識しているアプリケーション・キュー・スペースの一覧表示

/* すべての TMS_QM グループを検索する要求を作成 */
Fchg32(rqbuf, TA_OPERATION, 0, "GET", 0);
Fchg32(rqbuf, TA_CLASS, 0, "T_GROUP", 0);
Fchg32(rqbuf, TA_TMSNAME, 0, "TMS_QM", 0);
fldid1 = TA_OPENINFO;
fldid2 = TA_LMID;
Fchg32(rqbuf, TA_FILTER, 0, (char *)fldid1, 0);
Fchg32(rqbuf, TA_FILTER, 0, (char *)fldid2, 1);

/* アプリケーションに参加したと想定して要求を作成 */
rval = tpcall(".TMIB", rqbuf, 0, rpbuf, rplen, flags);

/* 各 TMS_QM グループに対して、キュー・スペースを検索する要求を作成 */
rval = Fget32(*rpbuf, TA_OCCURS, 0, (char *)occurs, NULL);
for (i = 0; i occurs; i++) {


/* バッファを初期化して、すべての共通属性を設定 */
Finit32(rqbuf, (FLDLEN) Fsizeof32(rqbuf));
Fchg32(rqbuf, TA_OPERATION, 0, "GET", 0);
Fchg32(rqbuf, TA_CLASS, 0, "T_APPQSPACE", 0);

/* デバイスとキュー・スペース名を決める OPENINFO を取得 */
/* OPENINFO の形式は、<resource-mgr>:<qmconfig>:<appqspacename>、*/
/* Windows の場合は、<resource-mgr>:<qmconfig>;<appqspacename> */
rval = Fget32(rpbuf, TA_OPENINFO, i, openinfo, NULL);

/* デバイスは OPENINFO の 2 つ目のフィールド */
qmconfig = strchr(openinfo, ':') + 1;
/* キュー・スペース名は OPENINFO の 3 つ目のフィールド */

#if defined(_TMDOWN) || defined(_TM_NETWARE)
#define pathsep ";" /*PATH の区切り文字 */
#else
#define pathsep ":"/* PATH の区切り文字 */
#endif
appqspacename = strchr(qmconfig, pathsep);
appqspacename[0] = '¥e0'; /* qmconfig をヌルで終了するように指定 */
appqspacename++; /* ヌルに値を追加 */

/* APPQSPACENAME および QMCONFIG キーを設定 */
Fchg32(rqbuf, TA_APPQSPACENAME, 0, appqspacename, 0);
Fchg32(rqbuf, TA_QMCONFIG, 0, qmconfig, 0);

/* LMID を取得 (このグループに対する移行はないものとする) */
rval = Fget32(rpbuf, TA_LMID, i, lmid, NULL);
Fchg32(rqbuf, TA_LMID, 0, lmid, 0);

/* 要求を作成 */
rval = tpcall(".TMIB", rqbuf, 0, rpbuf2, rplen2, flags);
}

上記のコードでは、キュー・スペースが作成されていても、アプリケーションのコンフィギュレーションに対応する GROUP エントリがないと、キュー・スペースは検索されません。このようなキュー・スペースは、キュー・スペースのキー・フィールド (つまり、TA_APPQSPACENAMETA_QMCONFIG、および TA_LMID) の優先順位がわかっていないと検索できません。

アプリケーション・キュー内のメッセージの一覧表示

以下のコードは、論理デバイス SITE1 上のデバイス /dev/q/dsk001 のキュー・スペース QSPACE1 内のキュー STRING にあるメッセージをすべて検索します。

/* 要求を作成 */ Fchg32(rqbuf, TA_OPERATION, 0, "GET", 0);
Fchg32(rqbuf, TA_CLASS, 0, "T_APPQMSG", 0);
Fchg32(rqbuf, TA_APPQNAME, 0, "STRING", 0);
Fchg32(rqbuf, TA_APPQSPACENAME, 0, "QSPACE1", 0);
Fchg32(rqbuf, TA_QMCONFIG, 0, "/dev/q/dsk001", 0);
Fchg32(rqbuf, TA_LMID, 0, "SITE1", 0);
/* 上記を参照して要求を作成 */

キュー・スペースを使用するトランザクションの一覧表示

以下のコードは、キュー・スペース QSPACE1 の中の任意のキューを使用するトランザクションをすべて検索します。

/* 要求を作成 */ Fchg32(rqbuf, TA_OPERATION, 0, "GET", 0);
Fchg32(rqbuf, TA_CLASS, 0, "T_APPQTRANS", 0);
Fchg32(rqbuf, TA_APPQSPACENAME, 0, "QSPACE1", 0);
Fchg32(rqbuf, TA_QMCONFIG, 0, "/dev/q/dsk001", 0);
Fchg32(rqbuf, TA_LMID, 0, "SITE1", 0);
/* 上記を参照して要求を作成 */

ファイル

${TUXDIR}/include/tpadm.h
${TUXDIR}/udataobj/tpadm

関連項目

tpacall(3c)tpadmcall(3c)tpalloc(3c)tpcall(3c)tpdequeue(3c)tpenqueue(3c)tpgetrply(3c)tprealloc(3c)FML 関数の紹介Fadd、Fadd32(3fml)Fchg、Fchg32(3fml)Ffind、Ffind32(3fml)MIB(5)TM_MIB(5)

『BEA Tuxedo アプリケーションの設定』

『BEA Tuxedo アプリケーション実行時の管理』

『C 言語を使用した BEA Tuxedo アプリケーションのプログラミング』

『FML を使用した BEA Tuxedo アプリケーションのプログラミング』

 

先頭へ戻る 前のトピックへ 次のトピックへ