Oracle Tuxedo アプリケーションの設定

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

コンフィグレーション ファイルの作成

ここでは、以下の内容について説明します。

 


コンフィグレーション ファイルの作成方法

コンフィグレーション ファイルに指定する内容は、作成するアプリケーションによって異なります。以下は、さまざまなコンフィグレーションの方法です。

関連項目

 


1 台のマシンで構成するアプリケーション用のコンフィグレーション ファイル

1 台のマシンで構成するコンフィグレーションでは、コンフィグレーション ファイルに、次のセクションを作成する必要があります。各作業をクリックすると、その作業を行う手順が表示されます。

  1. コンフィグレーション ファイルの RESOURCES セクションを作成します。
  2. コンフィグレーション ファイルの MACHINES セクションを作成します。
  3. コンフィグレーション ファイルの GROUPS セクションを作成します。
  4. コンフィグレーション ファイルの SERVERS セクションを作成します。
  5. コンフィグレーション ファイルの SERVICES セクションを作成します。
  6. コンフィグレーション ファイルの INTERFACES セクションを作成します (CORBA のみ)。
  7. コンフィグレーション ファイルの ROUTING セクションを作成します。

次の図中をクリックすると、クリックしたセクションの作成方法が表示されます。

ネットワークのグループ化の例

 


複数のマシンで構成 (分散) するアプリケーション用のコンフィグレーション ファイル

分散型の ATMI アプリケーションでは、コンフィグレーション ファイルに次のセクションを作成する必要があります。各作業をクリックすると、その作業を行う手順が表示されます。

  1. コンフィグレーション ファイルの RESOURCES セクションを作成します。
  2. コンフィグレーション ファイルの MACHINES セクションを作成します。
  3. コンフィグレーション ファイルの GROUPS セクションを作成します。
  4. コンフィグレーション ファイルの NETWORK セクションを作成します。
  5. コンフィグレーション ファイルの NETGROUPS セクションを作成します。
  6. コンフィグレーション ファイルの SERVERS セクションを作成します。
  7. コンフィグレーション ファイルの SERVICES セクションを作成します。
  8. コンフィグレーション ファイルの ROUTING セクションを作成します (省略可能)。
注意 : Oracle Tuxedo システムで分散型 CORBA アプリケーションのコンフィグレーション ファイルを作成する方法については、『Oracle Tuxedo CORBA アプリケーションのスケーリング、分散、およびチューニング』を参照してください。

次の図中をクリックすると、クリックしたセクションの作成方法が表示されます。

ネットワークのグループ化の例

 


複数のドメインにまたがるアプリケーション用のコンフィグレーション ファイル

複数のドメインにまたがるコンフィグレーションでは、ドメインごとに次の 2 つのコンフィグレーション ファイルを作成する必要があります。

たとえば、ローカル ドメイン (lapp) とリモート ドメイン (rapp) で構成されるアプリケーションの場合は、以下の作業が必要です。

各作業をクリックすると、その作業を行う手順が表示されます。

図 3-1 複数のドメインにまたがるサンプル アプリケーションのコンフィグレーション

複数のドメインにまたがるサンプル アプリケーションのコンフィグレーション

次の図は、2 つのドメインにまたがるアプリケーションの UBBCONFIG ファイルおよび DMCONFIG ファイルでコンフィグレーションするセクションを示しています。片方はローカル ドメインであり、もう一方はリモート ドメインです。

次の図中をクリックすると、クリックしたコンフィグレーション ファイルのセクションの作成方法が表示されます。

図 3-2 複数のドメインにまたがるアプリケーションのコンフィグレーション

複数のドメインにまたがるアプリケーションのコンフィグレーション

関連項目

 


コンフィグレーション ファイルの RESOURCES セクションの作成方法

コンフィグレーション ファイルの先頭には、必ず RESOURCES セクションを指定します。このセクションで定義されるパラメータは、アプリケーション全体を制御し、システムのデフォルト値になります。RESOURCES セクションのパラメータ値は、MACHINES セクションのマシンごとの値を変更することによってオーバーライドできます。

次の表では、RESOURCES セクションの各パラメータを説明し、参照先へのリンクやその他の情報を示します。

RESOURCES セクションで指定する情報
パラメータ (必須/省略可能)
参照先 (クリックするとリンク先にジャンプ)
IPC (プロセス間通信) リソースのユニークなアドレス
IPCKEY (必須)
セキュリティ アクセス
UIDGID、および PERM (省略可能)
掲示板に同時に接続できるプロセスの最大数
MAXACCESSERS (省略可能)
掲示板のサーバ テーブル エントリの最大数
MAXSERVERS (省略可能)
掲示板のサービス テーブル エントリの最大数
MAXSERVICES (省略可能)
CORBA インタフェースの最大数
MAXINTERFACES (省略可能)
CORBA オブジェクトの最大数
MAXOBJECTS (省略可能)
起動、停止、およびその他の管理タスクが実行される DBBL (Distinguished Bulletin Board Liaison) の場所
MASTER (必須)
掲示板のアーキテクチャ
MODEL (SHM または MP)、および OPTIONS (LAN または MIGRATE) (必須)
セキュリティのレベル
SECURITYAUTHSVC (省略可能)
ID 確認のためのプロセスのプリンシパル名、プリンシパル ユーザのプライベート キーの場所、およびパスワードを格納する環境変数
SEC_PRINCIPAL_NAMESEC_PRINCIPAL_LOCATION、および SEC_PRINCIPAL_PASSVAR
クライアントが非請求メッセージを検出する場合のデフォルトの検出方法
NOTIFYUSIGNAL (省略可能)
共有メモリの保護
SYSTEM_ACCESS (省略可能)
サーバのロード バランシングの有効化
LDBAL (省略可能)
バッファのタイプとサブタイプの最大数
MAXBUFTYPE、MAXBUFSTYPES (省略可能)
1 台のマシンで受け付ける会話の最大数
MAXCONV (省略可能)
ネットワーク グループの最大数
MAXNETGROUPS (省略可能)
正常性チェックの間隔とブロッキング呼び出しの許容時間
SCANUNITSANITYSCANBLOCKTIME (省略可能)

RESOURCES セクションの例

以下は、コンフィグレーション ファイルの RESOURCES セクションの例です。

*RESOURCES
IPCKEY 39211
UID 0
GID 1
PERM 0660
MAXACCESSERS 75
MAXSERVERS 40
MAXSERVICES 55
MASTER SITE1, SITE2
MODEL MP
OPTIONS LAN, MIGRATE
SECURITY APP_PW
AUTHSVC "AUTHSVC"
NOTIFY DIPIN
SYSTEM_ACCESS PROTECTED, NO_OVERRIDE
LDBAL Y

関連項目

 


アプリケーションタイプを定義する

Oracle Tuxedo のアプリケーションのアーキテクチャについて、以下の事項を決定する必要があります。

アプリケーション タイプを定義するには、MODEL パラメータおよび OPTIONS パラメータを使用します。

MODEL パラメータは、単一のプロセッサ上でアプリケーションを実行するかどうかを指定します。ユニプロセッサ、およびグローバル共有メモリを備えたマルチプロセッサの場合、このパラメータには SHM が設定されます。共有メモリを備えていないマルチプロセッサ、およびネットワーク接続されたアプリケーションの場合は、MODELMP が設定されます。これは、必須パラメータです。

OPTIONS パラメータは、アプリケーションのコンフィグレーションに関するオプションをカンマ区切りの形式で指定したリストです。指定できるオプションは、LAN (ネットワーク接続されたコンフィグレーションであることを示す) および MIGRATE (アプリケーション サーバの移行が可能であることを示す) の 2 つです。

MODEL および OPTIONS パラメータの特性

パラメータ
説明
MODEL
これは必須パラメータです。SHM は、グローバル共有メモリを備えた単一のマシンを示します。MP は、グローバル共有メモリを備えていない複数のマシン、またはネットワーク接続されたアプリケーションを示します。
OPTIONS
アプリケーションのコンフィグレーションに関するオプションを、カンマ区切りの形式で指定したリストです。LAN は、ローカル エリア ネットワークを示します。MIGRATE は、サーバの移行を有効にします。
RESOURCES セクションの例では、MODELMP が設定され、OPTIONSLAN および MIGRATE に設定されています。

設定例

以下は、コンフィグレーション ファイルの RESOURCES セクションの設定例です。

 *RESOURCES
MODEL MP
OPTIONS LAN, MIGRATE

 


バッファのタイプとサブタイプの数を制御する

アプリケーションで受け付けられるバッファのタイプおよびサブタイプの数はそれぞれ、MAXBUFTYPE パラメータおよび MAXBUFSTYPE パラメータで制御できます。ユーザ定義のバッファ タイプが多数指定されていない限り、MAXBUFTYPE は省略できます。何種類もの VIEW タイプを使用する予定がある場合は、MAXBUFSTYPE に現在設定されているデフォルト値を増やしておきます。

MAXBUFTYPE および MAXBUFSTYPE パラメータの特性

設定例

この例では、バッファのタイプの最大数として 20、サブタイプの最大数として 40 が指定されています。

*RESOURCES
MAXBUFTYPE 20
MAXBUFSTYPE 40

 


会話の数を制御する

MAXCONV パラメータを使用すると、マシン上で同時に実行できる会話数を指定できます。MAXCONV には、0 より大きく 32,768 未満の値を指定します。

MAXCONV パラメータの特性

MAXCONV パラメータには、以下の特性があります。

設定例

この例では、各マシンで同時に実行できる会話の最大数が 15 に設定されています。

*RESOURCES
MAXCONV 15

 


IPC リソースの上限値を定義する

ほとんどの IPC および共有メモリの掲示板テーブルは、高速処理用に静的に割り当てられているため、正しくチューニングすることが重要です。値の設定が大きすぎると、メモリと IPC リソースが無駄に消費されます。逆に、値の設定が小さすぎると、IPC リソースの上限を超えた時点でプロセスが異常終了します。tmloadcf -c コマンドを使用すると、アプリケーションに必要な IPC リソースの上限を確認できます。『Tuxedo コマンド リファレンス』の「tmloadcf(1)」を参照してください。

MAXACCESSERS、MAXSERVERS、MAXSERVICES、MAXINTERFACES、および MAXOBJECTS は、IPC リソースのサイズを決める、調整可能なパラメータです。アプリケーションに割り当てられる共有メモリの容量は、MAXGTT および MAXCONV パラメータによって制御されます。

MAXACCESSERS、MAXSERVERS、MAXSERVICES、MAXINTERFACES、および MAXOBJECTS パラメータの特性

パラメータ
説明
MAXACCESSERS
Oracle Tuxedo アプリケーションの特定のサイトで、掲示板に同時に接続できるプロセスの最大数。この数には、クライアント、システム提供のサーバ、およびアプリケーション サーバがすべて含まれますが、BBL や tmadmin() など、掲示板にアクセス スロットが予約されている管理プロセスは含まれません。
MAXACCESSERS には、0 より大きく 32,768 未満の値を指定します。指定しない場合は、デフォルト値の 50 が設定されます。MACHINES セクションでは、マシンごとに MAXACCESSERS を上書きできます。
MAXSERVERS
アプリケーションで使用できるサーバ プロセスの最大数。この数には、システム提供のサーバおよびアプリケーション サーバがすべて含まれます。
MAXSERVERS には、0 より大きく 8,192 未満の値を指定します。指定しない場合は、デフォルト値の 50 が設定されます。
MAXSERVICES
アプリケーションで宣言できる Oracle Tuxedo サービスの最大数。MAXSERVICES には、0 より大きく 1,048,574 未満の値を指定します。指定しない場合は、デフォルト値の 100 が設定されます。

注意 : CORBA 環境では、各 CORBA インタフェースが Oracle Tuxedo サービスにマップされます。生成されるサービスの数を考慮して設定してください。

MAXINTERFACES
CORBA 環境のアプリケーションで宣言できる CORBA インタフェースの最大数。MAXINTERFACES には、0 より大きく 32,766 未満の値を指定します。指定しない場合は、デフォルト値の 100 が設定されます。

注意 : インタフェースのすべてのインスタンスは、掲示板のインタフェース テーブルで同じスロットを占有し、再利用します。たとえば、サーバ SVR1 がインタフェース IF1IF2 を、サーバ SVR2 がインタフェース IF2IF3 を、サーバ SVR3 がインタフェース IF3IF4 を宣言した場合、MAXINTERFACES を計算すると、インタフェース数は 6 ではなく 4 になります。

MAXOBJECTS
CORBA 環境のアプリケーションで有効にできる CORBA オブジェクトの最大数。MAXOBJECTS には、0 より大きく 32,766 未満の値を指定します。指定しない場合は、デフォルト値の 100 が設定されます。

注意 : システム提供のサーバには、AUTHSVRTMQUEUETMQFORWARDTMUSREVTTMSYSEVTTMSTMS_QMGWTDOMAINWSL などがあります。

MAXACCESSERS の値を増やすと、サイトごと、および、クライアントまたはサーバ プロセスごとに、別のセマフォが必要になります (アクセサについては下記の注意を参照)。MAXACCESSERS の値を増やすことによって追加されるセマフォのほか、システム プロセスでもわずかなセマフォのオーバーヘッドが発生します。一方、MAXSERVERS および MAXSERVICES の値を増やしても、各サーバ、サービス、またはクライアント エントリに用意されている程度の少量の共有メモリしか消費されません。MAXSERVERS および MAXSERVICES パラメータは、アプリケーションの拡張に対応するために用意されています。これらのパラメータより、MAXACCESSERS を詳細に調べる方が重要です。

注意 : システムでは、掲示板へのアクセス スロットごとに 1 つのセマフォが割り当てられます。セマフォは、複数のプロセスが、掲示板の共有メモリに同時にアクセスしないようにするラッチ回路です。

Oracle Tuxedo のリリース 7.1 より前の MAXACCESSERS および MAXSERVERS パラメータは、ユーザ ライセンス数をチェックするしくみと関連付けられていました。つまり、アプリケーションで実行中の 1 台以上のマシンの MAXACCESSERS の数と、特定のマシンの MAXACCESSERS の数の合計が、MAXSERVERS の数とユーザ ライセンス数の合計より大きい場合、マシンを起動することはできませんでした。したがって、アプリケーションの MAXACCESSERS パラメータには、MAXSERVERS の数とユーザ ライセンス数の合計か、またはそれより小さい値を指定しなければなりませんでした。

Oracle Tuxedo のリリース 7.1 以降では、アプリケーションに設定されているユーザ ライセンスの数と、現在使用されているユーザ ライセンスの数に基づいて、ライセンスのチェックが行われます。すべてのユーザ ライセンスが使用中になると、アプリケーションに新しいクライアントが参加することはできなくなります。

設定例

この例では、最大 75 のプロセス (クライアントおよびサーバ) が同時にシステムにアクセスできます。掲示板では、40 サーバが 55 のサービスを宣言できます。

*RESOURCES
MAXACCESSERS 75
MAXSERVERS 40
MAXSERVICES 55

 


ロード バランシングを有効にする

Oracle Tuxedo では、アプリケーション全体に対し、ロード バランシングのアルゴリズムを使用するかどうかを制御できます。ロード バランシングを使用すると、ロード ファクタがシステム内の各サービスに適用され、各サーバの負荷の合計をモニタできます。各サービス要求は、負荷が最も少ない適切なサーバに送信されます。

ロード バランシングを使用するかどうかを指定するには、LDBAL パラメータに Y (はい) または N (いいえ) を設定します。デフォルトでは N が設定されます。

ロード バランシングは、必要な場合のみ、つまり、複数のキューを使用するサーバによってサービスが提供される場合にのみ使用します。1 つのサーバによって提供されるサービス、または MSSQ セット (複数サーバ、単一キュー) のサーバによって提供されるサービスに対してロード バランシングを設定する必要はありません。コンフィグレーションにこのようなタイプのサービスしかない場合、LDBAL パラメータを N に設定します。LDBALN に設定されているときに複数のキューが同じサービスを提供すると、最初に使用可能なキューが選択されます。

LDBAL パラメータの特性

LDBAL パラメータには、以下の特性があります。

設定例

この例では、アプリケーションでロード バランシングが有効になっています。

*RESOURCES
LDBAL Y

関連項目

 


マスタ マシンを識別する

MASTER マシンは、アプリケーションの起動およびアプリケーション全体の管理を制御します。各アプリケーションでは、必ず MASTER パラメータを設定して MASTER マシンを指定する必要があります。MASTER には、該当するコンピュータの論理マシン識別子 (LMID) を指定します。LMID は、管理者が指定する英数字の文字列であり、MACHINES セクションの LMID パラメータに割り当てられます。したがって、LMID パラメータの値が SITE1 の場合、MASTER の値も SITE1 でなければなりません。

アプリケーションを停止せずに MASTER マシンを終了するには、MASTER を移行できるようにしておく必要があります。移行を行うには、LMID に、プライマリ MASTER とバックアップ MASTER を指定する必要があります。

MASTER パラメータの特性

MASTER パラメータには、以下の特性があります。

設定例

Site1MASTER マシン、SITE2 はバックアップ マシンです。

*RESOURCES
MASTER SITE1, SITE2

 


ネットワーク グループの最大数を指定する

コンフィグレーション済みのネットワーク グループの最大数を指定するには、MAXNETGROUPS パラメータを設定します。値には、1 以上 8192 未満を指定します。デフォルト値は 8 です。これは、省略可能なパラメータです。

 


正常性チェックおよびブロッキング タイムアウトを指定する

BBL は、定期的 (デフォルトでは 120 秒ごと) にマシン上のサーバの正常性をチェックします。ただし、この間隔は、SCANUNIT および SANITYSCAN パラメータを設定して変更することができます。

サーバの正常性チェックを行うときに、次のチェックまでに繰り返す SCANUNIT の回数を指定するには、SANITYSCAN パラメータを使用します。現在のデフォルト値は、SANITYSCAN × SCANUNIT が約 120 秒になるように設定されています。

さらに、BLOCKTIME パラメータを設定して、メッセージ、トランザクション、およびその他のシステム アクティビティをブロッキングする際のタイムアウト値を設定することもできます。

注意 : トランザクションに関与しないブロックタイム値は、サービスごと、ATMI 呼び出しごと、およびコンテキストごとに設定できます。これらのブロックタイム値を設定すると、UBBCONFIG ファイルの RESOURCES で設定されている BLOCKTIME の値 (システム全体のデフォルト値) がオーバーライドされます。詳細については、「トランザクションに関与しないサービスのブロックタイムを指定する」を参照してください。

SCANUNIT、SANITYSCAN、および BLOCKTIME パラメータの特性

パラメータ
説明
SCANUNIT
チェック間隔とタイムアウトの粒度を制御します。SCANUNIT には、0 ~ 60 の範囲の 2 または 5 の倍数を秒単位で指定します。
例 : SCANUNIT 10
デフォルト値は 10 です。
SANITYSCAN
サーバの正常性チェックを行うときに、次のチェックまでに繰り返すスキャン単位 (SCANUNIT) の回数を指定します。
SANITYSCAN には、32,767 までの任意の数を指定できます。
デフォルト値は、SCANUNIT × SANITYSCAN が約 120 秒になるように設定されています。
BLOCKTIME
メッセージをブロックしておく期間を指定します。この期間を経過すると、タイムアウトが発生します。
SCANUNIT × BLOCKTIME の値は、32,767 以下でなければなりません。
デフォルト値は、SCANUNIT × BLOCKTIME が約 60 秒になるように設定されています。

ATMI 操作のブロックとタイムアウト

タイムアウトとは、集合的に、次の期間を示します。

ブロッキング タイムアウトとは、ブロックされているクライアント要求が、ブロック解除されるまでの期間のことです。非同期型のサービス要求および会話のブロッキング タイムアウトは、個々の送受信操作に対して適用されます。tpacall (3c)、tpconnect (3c)、または tpsend (3c) を使用してメッセージが送信される場合は、キューがいっぱいであり、送信されたメッセージがキューへの登録を待機する場合にのみタイムアウトが適用されます。メッセージを受信するための tpgetrply (3c) または tprecv(3c) 呼び出しがクライアント プロセスから発行される場合、タイムアウトは、キューが空の場合にクライアントがメッセージの受信を待機する期間になります。

設定例

この例では、正常性チェックが 30 秒ごとに実行されます。要求が 10 秒以上ブロックされることはありません。SCANUNIT に 10 が指定され、SANITYSCAN に 3 が指定されているため、10 秒の 3 倍、つまり 30 秒が経過すると、次のチェックが BBL により行われます。

*RESOURCES
SCANUNIT 10
SANITYSCAN 3
BLOCKTIME 1

 


オペレーティング システム レベルのセキュリティを設定する

UIDGID、および PERM の 3 つのパラメータを設定すると、Oracle Tuxedo の管理機能へのアクセスを、認可された管理者だけに制限できます。

UID および GID のデフォルト値は、アプリケーションのコンフィグレーションの際に tmloadcf(1) コマンドを実行したユーザのユーザ ID (UID の場合) およびグループ ID (GID の場合) になります。ただし、MACHINES セクションの値をオーバーライドして、この設定を変更することもできます。

UID、GID、および PERM パラメータの特性

パラメータ
説明
UID
管理者のユーザ ID。値は数値で表され、システムの起動と停止を担当するユーザの UNIX システム ユーザ ID に対応しています。
デフォルト値は、tmloadcf(1) コマンドを実行するユーザの ID です。
例 : UID=3002

注意 : Windows では、この値を 0 に設定してください。

GID
管理者のグループ ID を示す数値。
デフォルト値は、tmloadcf(1) コマンドを実行するユーザの ID です。
例 : GID=100

注意 : Windows では、この値を 0 に設定してください。

PERM
アプリケーションの起動時に作成される IPC リソースに割り当てるパーミッションを指定する 8 進数値。このパラメータは、Oracle Tuxedo システムの IPC 構造を不正なアクセスから保護する、第 1 レベルのセキュリティを指定します。これらの値は、実働アプリケーションに対して指定する必要があります。
デフォルト値は 0666 であり、これは、すべてのユーザに対して読み込み権と書き込み権を許可することを示します。
例 : PERM=0660

注意 : リモート マシンに対して割当てられている上記のパラメータは、上書きできます。リモート マシンと MASTER マシンのユーザ ID およびグループ ID は、同じでなくてもかまいません。デフォルト値をオーバーライドするには、コンフィグレーション ファイルの MACHINES セクションで、別のユーザ ID およびグループ ID を指定します。特に値を指定しない場合は、RESOURCES セクションで指定した値が使用されます。

 


セキュリティ レベルを指定する

以下の 3 つのセキュリティ レベルを設定できます。

SECURITY および AUTHSVC パラメータの特性

パラメータ
説明
SECURITY
アプリケーションに参加するときにパスワードの入力を求めるセキュリティ レベル。有効な値は、NONE (デフォルト値)、APP_PWUSER_AUTHACL、および MANDATORY_ACL です。
LDAP の単一のセキュリティ管理を有効にするには、SECURITY レベルを USER_AUTHMANDATORY_ACL、または ACL に設定する必要があります。
デフォルト値は NONE です。
例 : SECURITY APP_PW
AUTHSVC
認証サービスの名前。
SECURITY APP_PW またはそれ以上を指定する必要があります。
デフォルト値は、認証サービスなしです。
Kerberos によるクライアント認証が可能です。
例 : AUTHSVC “AUTHSVC’’

関連項目

 


サーバのセキュリティ属性を定義する

SEC_PRINCIPAL_NAMESEC_PRINCIPAL_LOCATION、および SEC_PRINCIPAL_PASSVAR パラメータを使用すると、認証用のサーバのセキュリティ属性を指定できます。

注意 : 上記のポリシーは、ワークステーション ハンドラ、Domains のゲートウェイ処理、および相互運用するアプリケーション サーバに適用されます。

関連項目

 


共有メモリを保護する

SYSTEM_ACCESS パラメータを使用すると、共有メモリにあるシステム テーブルを、アプリケーション クライアントとアプリケーション サーバから保護できます。このパラメータを指定しておくと、アプリケーションの開発中に、欠陥のあるアプリケーション コードが不当なポインタによって誤って共有メモリの内容を破壊することを防ぐことができます。アプリケーションが完全にデバッグされ、テストされたら、パラメータの値を変更して、応答が早く返されるように設定できます。このパラメータの有効な値は、次のとおりです。

値を選択した後で NO_OVERRIDE を指定すると、選択したオプションをクライアントや管理者が変更できなくなります (クライアントの場合は tpinit() 呼び出しの TPINIT 構造体、管理者の場合は SERVERS セクションで指定)。

PROTECTED、FASTPATH、および NO_OVERRIDE パラメータの特性

パラメータ
説明
PROTECTED
共有メモリの内部構造体が、アプリケーション プロセスによって誤って破壊されるのを防ぎます。
FASTPATH (デフォルト)
アプリケーション プロセスは、常に共有メモリへのアクセス権を保持した状態でアプリケーションに参加します。
NO_OVERRIDDE
指定されたオプション (PROTECTED または FASTPATH) は変更できません。

設定例

 SYSTEM_ACCESS PROTECTED、NO_OVERRIDE

 


アプリケーションのシステム リソースのアドレスを設定する

共有メモリのアドレスを設定するには、IPCKEY パラメータを設定します。このパラメータにより、Oracle Tuxedo システムは、アプリケーションに対して IPC リソースを割り当てます。これにより、新たにアプリケーションに参加したプロセスは IPC リソースを簡単に見つけることができます。キーの値は、新しいアプリケーション プロセスに対して掲示板、メッセージ キュー、およびセマフォを割り当てるために内部で使用されます。単一プロセッサ モードでは、このキーが掲示板を指定します。マルチプロセッサ モードでは、このキーが DBBL のメッセージ キューを指定します。

IPCKEY パラメータの特性

IPCKEY パラメータには、以下の特性があります。

設定例

*RESOURCES
IPCKEY 39211

 


非請求メッセージの受信方法を指定する

NOTIFY パラメータを使用すると、クライアントが非請求メッセージを受信するデフォルトの方法を設定できます。ただし、クライアントは、tpinit() を呼び出してこの設定をオーバーライドできます。

以下の 4 つの方法が可能です。

USIGNAL パラメータは、SIGNAL ベースの通知を使用する場合に使用されるシグナルを指定します。SIGUSR1SIGUSR2 の 2 種類のシグナルが生成されます。デフォルト設定は SIGUSR2 です。この方法を使用すると、直ちに通知を返すことができますが、ネイティブ クライアントを実行しているときは、制限があります。つまり、送信プロセス側のユーザ ID が同じでなければなりません。ただし、ワークステーション クライアントには、この制限はありません。

注意 : この方法を適用できないプラットフォームもあります。

NOTIFY および USIGNAL パラメータの特性

パラメータ
説明
NOTIFY
IGNORE は、クライアントが非請求メッセージを無視することを示します。
DIPIN は、クライアントが、tpchkunsol() を呼び出すとき、または ATMI 呼び出しを行うときにのみ非請求メッセージを受信することを示します。
SIGNAL は、クライアントがシグナルにより非請求メッセージを受信することを示します。
デフォルト値は DIPIN です。
例 : NOTIFY SIGNAL
USIGNAL
SIGUSR1 および SIGUSR2 は、このタイプのシグナルでクライアントに通知することを示します。
デフォルト値は SIGUSR2 です。
例 : USIGNAL SIGUSR1

 


コンフィグレーション ファイルの MACHINES セクションの作成方法

コンフィグレーション ファイルの 2 番目のセクションには、必ず MACHINES セクションを指定します。MACHINES セクションでは、アプリケーション内の各マシンに対するパラメータを定義します。これらのパラメータは、次の情報を指定します。

注意 : UIDGIDPERMMAXACCESSERSMAXOBJECTSMAXCONV、および MAXGTT は、オーバーライドできます。MAXGTT 以外のパラメータについては、RESOURCES セクションを参照してください。

次の表では、MACHINES セクションの各パラメータを説明し、参照先へのリンクやその他の情報を示します。

MACHINES セクションで指定する情報
パラメータ (必須/省略可能)
参照先 (クリックするとリンク先にジャンプ)
SECURITYACL または MANDATORY_ACL に設定されている場合のキャッシュ内の ACL 用エントリ数。
MAXACLCACHE (省略可能)
このマシンから別のマシンにサービス要求を送信するコストを計算するときに追加する負荷。
NETLOAD (省略可能)
アドレス (物理プロセッサの名前) とコンピュータの論理名。他のすべてのエントリは、このアドレスに指定されたマシンに関する情報を指定します。コンピュータの論理名は、LMID パラメータで指定します。
LMID (必須)
UNIX セマフォ上のプロセスをブロックするまでに実行する、ユーザ レベルでの掲示板のロック回数。
SPINCOUNT (省略可能)
マシンをクラスにグループ化するときに使用する値。
TYPE (省略可能)
バイナリ形式の TUXCONFIG ファイルが置かれているマシン上のファイルまたはデバイスの絶対パス名。

注意 : このパラメータに指定するパス名は、TUXCONFIG 環境変数に指定したパス名 (大文字/小文字の区別も含む) と完全に一致しなければなりません。パス名が一致していない場合、tmloadcf(1) は正常に実行されません。

TUXCONFIG (必須)
特定のマシン上のプロセスが同時に参加できる会話の最大数。
MAXCONV (省略可能)
このマシンの DTP トランザクション ログのサイズ (ページ単位)。
TLOGSIZE (省略可能)
このマシンの DTP トランザクション ログの名前。
TLOGNAME (省略可能)
マシン上のすべてのクライアントとサーバを、指定したファイルの環境で実行する値。
ENVFILE (省略可能)
このマシンの DTP トランザクション ログ (TLOG) を格納する Oracle Tuxedo のファイルシステム。
TLOGDEVICE (省略可能)
このプロセッサ上で、掲示板に同時にアクセスできるプロセスの最大数。
MAXACCESSERS (省略可能)
CORBA 環境で、このプロセッサのアクティブ オブジェクト テーブルに同時に対応できる CORBA オブジェクトの最大数。
MAXOBJECTS (省略可能)
特定のマシンが同時に関与できるグローバル トランザクションの最大数。
MAXGTT (省略可能)
ワークステーション クライアント用に予約されている、このプロセッサのアクセサのエントリ数。このパラメータは、Oracle Tuxedo システムのワークステーション コンポーネントが使用される場合のみ指定されます。
MAXWSCLIENTS (省略可能)
ブリッジ プロセスで送信されるのを待つメッセージに対して割り当てられる領域の上限。
MAXPENDINGBYTES (省略可能)
デバイスの先頭から Oracle Tuxedo ファイルシステムの開始点 (このマシンの DTP トランザクション ログを格納) までのページ単位の数値のオフセット。
TLOGOFFSET (省略可能)
デバイスの先頭から Oracle Tuxedo ファイルシステムの開始点 (このマシンの TUXCONFIG ファイルを格納) までのページ単位の数値のオフセット。
TUXOFFSET (省略可能)
掲示板用に作成された IPC 構造体に関連付けるグループ ID の数値。有効な値は 0 ~ 2,147,483,647 です。値を指定しない場合、デフォルトでは RESOURCES セクションの値が指定されます。
GID (省略可能)
掲示板を実装する IPC 構造体に関連付けるパーミッションを示す数値。このパラメータは、通常の UNIX システムの規則に従って (8 進数の 0600 など)、プロセスの読み取り権または書き込み権を指定します。値は 0001 以上 0777 以下の範囲で指定できます。値を指定しない場合、デフォルトで RESOURCES セクションの値が指定されます。
PERM (省略可能)
掲示板用に作成された IPC 構造体に関連付けるユーザ ID の数値。有効な値は 0 ~ 2,147,483,647 です。値を指定しない場合、デフォルトでは RESOURCES セクションの値が指定されます。
UID (省略可能)
ID 確認のためのプロセスのプリンシパル名、プリンシパル ユーザのプライベート キーの場所、およびパスワードを格納する環境変数。
SEC_PRINCIPAL_NAMESEC_PRINCIPAL_LOCATIONSEC_PRINCIPAL_PASSVAR
アプリケーション ディレクトリ (APPDIR) の絶対パス名。このディレクトリは、このマシンで起動するすべてのアプリケーションおよび管理サーバのカレント ディレクトリになります。また、Oracle Tuxedo システム ソフトウェアのインストール先ディレクトリの絶対パス名でもあります。
TUXDIR (必須)
リモート プロセス (string_value1) およびローカル プロセス (string_value2) に送信される、自動圧縮の対象となるメッセージのしきい値。このしきい値を超えると、メッセージは圧縮されます。
CMPLIMIT (省略可能)
このマシンの userlog(3c) メッセージ ファイル名の接頭辞として使用される絶対パス名。
ULOGPFX (省略可能)

MACHINES セクションの例

以下は、ATMI 環境のコンフィグレーション ファイルの MACHINES セクションの例です。

*MACHINES
gumby LMID=SITE1
TUXDIR=”/tuxdir”
APPDIR=”/home/apps/mortgage”
TUXCONFIG=”/home/apps/mortgage/tuxconfig”
ENVFILE=”/home/apps/mortgage/ENVFILE”
ULOGPFX=”/home/apps/mortgage/logs/ULOG”
MAXACCESSERS=100
MAXCONV=15

以下は、CORBA 環境のコンフィグレーション ファイルの MACHINES セクションの例です。

*MACHINES
gumby LMID=SITE1
TUXDIR=”/tuxdir”
APPDIR=”/home/apps/mortgage”
TUXCONFIG=”/home/apps/mortgage/tuxconfig”
ENVFILE=”/home/apps/mortgage/ENVFILE”
MAXOBJECTS=700
ULOGPFX=”/home/apps/mortgage/logs/ULOG”
MAXACCESSERS=100

MACHINES セクションの例のパラメータ

上の MACHINES セクションの例では、以下のパラメータと値が指定されています。

パラメータ
説明
gumby
UNIX システムで uname -n コマンドを実行すると返されるマシン名。Windows システムの場合は、[コントロール パネル] の [ネットワーク] にある [コンピュータ名] で指定します。名前はすべて大文字で指定します。
LMID=SITE1
マシン gumby の論理マシン識別子。
TUXDIR
インストールされている Oracle Tuxedo ソフトウェアへの絶対パス。二重引用符で囲みます。
APPDIR
アプリケーション ディレクトリへの絶対パス。二重引用符で囲みます。
TUXCONFIG
コンフィグレーション ファイルの絶対パス名。二重引用符で囲みます。

注意 : このパラメータに指定するパス名は、TUXCONFIG 環境変数に指定したパス名 (大文字/小文字の区別も含む) と完全に一致しなければなりません。パス名が一致していない場合、tmloadcf(1) は正常に実行されません。

ENVFILE
環境情報を含むファイルの絶対パス名。二重引用符で囲みます。
ULOGPFX
ログ ファイルの接頭辞として使用する名前の絶対パス名。二重引用符で囲みます。
MAXACCESSERS
このマシンに対し、システム全体にわたる値 (RESOURCES セクションで定義済み) を 100 にオーバーライドします。
MAXOBJECTS
CORBA サンプルで使用。このマシンに対し、システム全体にわたる値 (RESOURCES セクションで定義済み) を 700 にオーバーライドします。
MAXCONV
このマシンに対し、システム全体にわたる値 (RESOURCES セクションで定義済み) を 15 にオーバーライドします。

MACHINES セクションの例のカスタマイズ方法

MACHINES セクションをカスタマイズするには、以下を指定します。

注意 : Windows システムの場合、マシン名は大文字で指定する必要があります。

関連項目

 


キャッシュ内の ACL 用エントリの最大数を指定する

SECURITYACL または MANDATORY_ACL に設定されている場合は、MAXACLCACHE パラメータを使用して、キャッシュ内の ACL 用エントリの数を指定できます。このパラメータに適切な値を設定すると、以下のことを実現できます。

値には、10 ~ 30,000 を指定します。デフォルト値は 100 です。

 


サービス要求の負荷を定義する

NETLOAD パラメータを使用すると、1 つのマシンから別のマシンへサービス要求を送信するときにかかるコストを計算する際に追加する負荷を指定できます。値には、0 以上 32,768 未満を指定します。デフォルト値は 0 です。

関連項目

 


物理アドレスとマシン ID を予約する

まず、アドレスを指定する箇所に、MASTER マシンのアドレスを定義します。これが、MACHINES セクションのエントリの基本となります。エントリ内のその他のすべてのパラメータは、このアドレスで指定されたマシンに関する情報を指定します。UNIX システムの場合は、uname -n コマンドを呼び出し、出力された値にアドレスを設定します。Windows システムの場合は、[コントロール パネル] の [ネットワーク] にある [コンピュータ名] を参照してください。

LMID パラメータは必須パラメータです。このパラメータは、アドレスを指定したばかりのコンピュータを示す論理名を指定します。論理名には、アプリケーション内のマシン間でユニークな英数字を指定します。

アドレスと LMID パラメータの特性

アドレスおよびマシン ID には、以下の特性があります。

 


ロック スピンの回数を設定する

Oracle Tuxedo システムの一部の操作 (サービス名のルックアップやトランザクションなど) では、掲示板をロックし、掲示板へのアクセスを 1 つのプロセスだけに制限する場合があります。プロセスまたはスレッドの処理中に、別のプロセスまたはスレッドによって掲示板がロックされていることがわかると、その処理は再試行されるか、または SPINCOUNT で指定された回数のロック スピンが行われます。指定された回数のロック スピンが行われた後、処理はキューでスリープ状態になります。スリープ状態はリソースを消費するため、一定のロック スピンを行ってからスリープ状態になるように設定しておく方が効率的です。

SPINCOUNT パラメータの特性

SPINCOUNT パラメータの値は、アプリケーションおよびシステムによって異なりますが、以下の基本的なガイドラインを覚えておくと便利です。

 


マシンをタイプ別に指定する

TYPE パラメータを使用すると、マシンをクラスごとにグループ化できます。TYPE には、15 文字以下の任意の文字列を設定できます。

TYPE パラメータの特性

 


コンフィグレーション ファイルの場所を識別する

コンフィグレーション ファイルの場所およびマシンを識別するエントリ ファイル名を指定するには、必須パラメータの TUXCONFIG を設定します。TUXCONFIG パラメータには、最大 64 文字までの絶対パス名を指定し、値は二重引用符で囲みます。

注意 : このパラメータに指定するパス名は、TUXCONFIG 環境変数に指定したパス名 (大文字/小文字の区別も含む) と完全に一致しなければなりません。パス名が一致していない場合、tmloadcf(1) は正常に実行されません。

TUXCONFIG パラメータの特性

TUXCONFIG パラメータには、以下の特性があります。

 


DTP トランザクション ログのサイズを指定する

TLOGSIZE パラメータは、このマシンの DTP トランザクション ログのサイズをページ単位で指定します。オペレーティング システムのファイルシステム上の空き容量に応じ、0 より大きく 2048 以下の値を指定します。デフォルトは 100 ページです。

 


DTP トランザクション ログの名前を定義する

TLOGNAME パラメータは、このマシンの DTP トランザクション ログの名前を定義します。デフォルト値は、TLOG です。1 つの TLOGDEVICE に複数の TLOG がある場合、各 TLOG の名前はユニークでなければなりません。TLOGNAME には、TLOG テーブルの作成先である TLOGDEVICEVTOC (ボリューム リスト) 内のテーブル名とは異なる名前を指定する必要があります。TLOGNAME には、30 文字以下の英数字を指定します。

 


環境変数の設定を指定する

ENVFILE パラメータを使用すると、Oracle Tuxedo システムが起動するすべてのプロセスに対する環境変数を格納したファイルを指定できます。各プロセスの TUXDIR および APPDIR は、システム側で設定されます。したがって、これらのパラメータはファイル内で指定しないでください。

ただし、アプリケーション操作に関連する次のパラメータについては、環境設定を指定できます。

ENVFILE パラメータの特性

ENVFILE は、以下の特性を持つ省略可能なパラメータです。

環境変数の設定の詳細については、『Oracle Tuxedo のファイル形式とデータ記述方法』の「tuxenv (5)」を参照してください。

 


TLOG を含む Oracle Tuxedo ファイルシステムを定義する

TLOGDEVICE パラメータは、該当するマシンの DTP トランザクション ログ (TLOG) を含む Oracle Tuxedo のファイルシステムを指定します。TLOG は、Oracle Tuxedo システムの VTOC テーブルとしてデバイスに格納されています。TLOGDEVICE の値は、64 文字以下の文字列でなければなりません。

このパラメータを指定しない場合、そのマシンには TLOG がないものと見なされます。

 


マシンで同時に実行できるグローバル トランザクションの最大数を指定する

MAXGTT パラメータは、特定のマシンが同時に関与できるグローバル トランザクションの最大数を指定します。このパラメータには、0 以上 32,768 未満の値を指定します。RESOURCES セクションで指定した値は、MACHINES セクションでマシンごとにオーバーライドできます。

 


ワークステーション クライアントのアクセサ エントリ数を定義する

MAXWSCLIENTS パラメータは、ワークステーション クライアント用に確保しておくマシン上のエントリ数を定義します。MAXWSCLIENTS 用に確保しておくアクセサ スロットの数は、慎重に設定してください。この値は、このマシンの MAXACCESSERS で指定したアクセサ総数のうちの一部になります。このマシンのその他のクライアントやサーバは、MAXWSCLIENTS 用に確保されたアクセサ スロットを使用できません。ワークステーション クライアントからのシステムへのアクセスは、Oracle Tuxedo システムに組み込まれている代理プロセス、つまり Oracle Tuxedo ワークステーション ハンドラ (WSH) によって多重化されます。そのため、このパラメータを適切に設定すると、IPC リソースを節約できます。

MAXWSCLIENTS には、0 以上 32,768 未満の値を指定します。値を指定しない場合は、デフォルト値の 0 が設定されます。この値を MAXACCESSERS の値より大きい値に設定すると、エラーが返されます。

注意 : MAXWSCLIENTS の値は、ライセンス供与されているユーザ数によって制限されます。

 


BRIDGE 経由で送信されるメッセージ用の領域を定義する

MAXPENDINGBYTES パラメータは、BRIDGE プロセスによる送信を待機するメッセージに割り当てる領域の制限を定義します。値には、100,000 から MAXLONG までの値を指定します。

MAXPENDINGBYTES が重要になるのは、以下の 2 つの状況です。

メモリおよびディスク領域のサイズが大きい大型コンピュータの場合は MAXPENDINGBYTES の値を大きくし、小型のコンピュータの場合は MAXPENDINGBYTES の値を小さくします。

 


DTP トランザクション ログのオフセットを指定する

どの Oracle Tuxedo ファイルシステムにもボリューム リスト (VTOC : Volume Table of Contents) があります。これは、汎用デバイス リスト (UDL : Universal Device List) で指定されたデバイス上のファイルのリストです。UDL には、Oracle Tuxedo システム テーブルの物理ストレージ スペースが指定されています。Oracle Tuxedo システムのアプリケーションでは、すべてのシステム ファイルを同じ raw ディスクやオペレーティング システムのファイルシステム上に格納することができます。

TLOGOFFSET パラメータは、このマシンのデバイスの先頭から Oracle Tuxedo ファイルシステムの開始点 (このマシンの DTP トランザクション ログを格納) までのオフセットをページ単位で指定します。オフセットには、0 以上でデバイス上のページ数より小さい値を指定します。デフォルト値は 0 です。

 


TUXCONFIG のオフセットを定義する

どの Oracle Tuxedo ファイルシステムにもボリューム リスト (VTOC : Volume Table of Contents) があります。これは、汎用デバイス リスト (UDL : Universal Device List) で指定されたデバイス上のファイルのリストです。UDL には、Oracle Tuxedo システム テーブルの物理ストレージ スペースが指定されています。Oracle Tuxedo システムのアプリケーションでは、すべてのシステム ファイルを同じ raw ディスクやオペレーティング システムのファイルシステム上に格納することができます。

TUXOFFSET パラメータは、このマシンのデバイスの先頭から Oracle Tuxedo ファイルシステムの開始点 (このマシンの TUXCONFIG を格納) までのオフセットをページ単位で定義します。この値が環境でどのように使用されるかについては、MACHINES セクションの ENVFILE を参照してください。

TUXOFFSET パラメータの特性

 


システム ソフトウェアおよびアプリケーション サーバ ソフトウェアの場所を識別する

サーバをサポートするアプリケーション内の各マシンは、Oracle Tuxedo システム ソフトウェアおよびアプリケーション サーバのコピーを備えている必要があります。システム ソフトウェアの場所は、TUXDIR パラメータで指定します。アプリケーション ソフトウェアの場所は、APPDIR パラメータで指定します。どちらも必須パラメータです。APPDIR パラメータで指定したディレクトリは、すべてのプロセスの現在の作業ディレクトリになります。Oracle Tuxedo ソフトウェアは、TUXDIR/bin および APPDIR 内で実行可能ファイルを検索します。

APPDIR および TUXDIR パラメータの特性

パラメータ
説明
APPDIR
構文は、APPDIR=APPDIR” の形式で指定し、絶対パス名を二重引用符で囲んで示します。
APPDIR は、アプリケーション ソフトウェアの場所を示します。
APPDIR は必須パラメータです。
APPDIR は、サーバ プロセスの現在の作業ディレクトリになります。
TUXDIR
構文は、TUXDIR=TUXDIR” の形式で指定し、絶対パス名を二重引用符で囲んで示します。
TUXDIR は、Oracle Tuxedo ソフトウェアの場所を示します。
TUXDIR は必須パラメータです。

 


圧縮するメッセージのしきい値を指定する

CMPLIMIT パラメータは、リモート プロセス (string_value1) およびローカル プロセス (string_value2) に送信される、自動圧縮の対象となるメッセージのしきい値を定義します。このしきい値を超えると、メッセージは圧縮されます。

どちらの値も、負以外の整数または文字列 MAXLONG でなければなりません。値を指定しない場合は、デフォルトの MAXLONG,MAXLONG が指定されます。

注意 : CMPLIMIT の値を設定した後で、アプリケーションのスループットを確認します。CMPLIMIT の値は、TMIB を使用してシステムの実行中に調整できます。

CMPLIMIT=string_value1,string_value2

 


ULOG のパス名を指定する

ULOGPFX パラメータを設定すると、マシン上の userlog(3c) メッセージ ファイルの接頭辞として使用する名前の絶対パス名を指定できます。指定したマシンの ULOGPFX の値は、このマシン上で実行されるすべてのサーバ、クライアント、および管理プロセスに関する userlog(3c) メッセージ ファイルを作成するために使用されます。このパラメータが指定されない場合、APPDIR 環境変数で指定されたパスが使用されます。mmddyy (月、日、年) が接頭辞に追加されると、完全なログ ファイル名になります。

ULOGPFX パラメータの特性

ULOGPFX パラメータには、以下の特性があります。

関連項目

 


コンフィグレーション ファイルの GROUPS セクションの作成方法

GROUPS セクションでは、複数のサーバを論理的にグループ化することができます。グループ化したサーバを使用すると、リソース マネージャにアクセスしたり、サーバ グループの移行を簡単に行うことができます。コンフィグレーション ファイルの GROUPS セクションでは、サーバ グループが定義されています。アプリケーション サーバをマシン上で実行するには、マシンに対して少なくとも 1 つのサーバ グループを定義する必要があります。ただし、マシンに対してサーバ グループが定義されていなくても、アプリケーションの一部にグループを含め、そのサイトから管理コマンド tmadmin(1) を実行できます。

トランザクションに関与しない非分散型のシステムでは、グループのコンフィグレーションは比較的単純です。各グループに対して、グループ名をグループ番号および論理マシン ID にマップするだけです。分散トランザクション システムをサポートする柔軟性も備えられています。

次の表では、GROUPS セクションの各パラメータを説明し、参照先へのリンクやその他の情報を示します。

GROUPS セクションで指定する情報
パラメータ (必須/省略可能)
参照先 (クリックするとリンク先にジャンプ)
グループの論理名。
GROUPNAME (必須)
このサーバ グループに関連付けられたグループ番号。0 より大きく、30,000 未満の番号を指定します。番号は、GROUPS セクションのすべてのエントリの中でユニークでなければなりません。
GRPNO (必須)
リソース マネージャを閉じるときに必要な、リソース マネージャに依存する情報。
CLOSEINFO (省略可能)
リソース マネージャを開くときに必要な、リソース マネージャに依存する情報。
OPENINFO (省略可能)
TMSNAME が指定されている場合に、関連するグループに対して起動するトランザクション マネージャ サーバの数。
TMSCOUNT (省略可能)
ID 確認のためのプロセスのプリンシパル名、プリンシパル ユーザのプライベート キーの場所、およびパスワードを格納する環境変数。
SEC_PRINCIPAL_NAMESEC_PRINCIPAL_LOCATIONSEC_PRINCIPAL_PASSVAR
グループ内のすべてのサーバを、指定したファイルの環境で実行する値。
ENVFILE (省略可能)
このサーバ グループが MACHINES セクションの string_value1 でシンボリックに指定されているマシン上、または、SHM モードのデフォルトの値に存在することを示す値。
LMID (必須)
このグループに関連付けられているトランザクション マネージャ サーバの名前。
TMSNAME (省略可能)

ATMI の GROUPS セクションの例

以下は、ATMI 環境のコンフィグレーション ファイルの GROUPS セクションの例です。

##EVBGRP1 LMID=SITE1      GRPNO=104
DEFAULT:TMSNAME=TMS_SQL TMSCOUNT=2 LMID=SITE1
BANKB1GRPNO=1 OPENINFO="TUXEDO/SQL:APPDIR1/bankdl1:bankdb:readwrite"
BANKB2GRPNO=2 OPENINFO="TUXEDO/SQL:APPDIR1/bankdl2:bankdb:readwrite"
BANKB3GRPNO=3 OPENINFO="TUXEDO/SQL:APPDIR1/bankdl3:bankdb:readwrite"

CORBA 環境の GROUPS セクションの例

以下は、Tuxedo CORBA University の Production サンプル アプリケーションの UBBCONFIG ファイルにある、GROUPS セクションの例です。この例では、UBBCONFIG ファイルの ROUTING セクションにある RANGES 識別子で指定されたグループを識別し、コンフィグレーションする必要があります。

Production サンプルでは、ORA_GRP1、ORA_GRP2、APP_GRP1、および APP_GRP2 の 4 つのグループが指定されています。ここでは、これらのグループをコンフィグレーションし、実行するマシンを識別しなければなりません。

*GROUPS

APP_GRP1
LMID = SITE1
GRPNO = 2
TMSNAME = TMS

APP_GRP2
LMID = SITE1
GRPNO = 3
TMSNAME = TMS

ORA_GRP1
LMID = SITE1
GRPNO = 4
OPENINFO = "ORACLE_XA:Oracle_XA+Acc=P/scott/tiger+SesTm=100+LogDir=.+MaxCur=5"
   CLOSEINFO = ""
TMSNAME = "TMS_ORA"

ORA_GRP2
LMID = SITE1
GRPNO = 5
OPENINFO = "ORACLE_XA:Oracle_XA+Acc=P/scott/tiger+SesTm=100+LogDir=.+MaxCur=5"
CLOSEINFO = ""
TMSNAME = "TMS_ORA"

上の例は、ORA_GRP1、ORA_GRP2、APP_GRP1、および APP_GRP2 グループのコンフィグレーション方法を示しています。GROUPS セクションのグループ名と、ROUTING セクションで指定されたグループ名の対応については、「University Production サンプル アプリケーションの CORBA ファクトリベース ルーティング」を参照してください。ルーティング機能を正しく動作するには、両方のグループ名を一致させる必要があります。また、アプリケーションでグループをコンフィグレーションする際にグループ名を変更した場合は、ROUTING セクションにも反映しなければなりません。

注意 : Oracle Tuxedo ソフトウェアに収録されている Production サンプル アプリケーションは、1 台のマシンで実行するようにコンフィグレーションされていますが、LMID パラメータで他のマシンを指定することにより、複数のマシンで実行するようにコンフィグレーションすることもできます。この方法は、RESOURCES セクションで MODEL MP パラメータが指定されていることを前提としています。

関連項目

 


グループ名、グループ番号、および LMID を指定する

GROUPS セクションの基本であるグループ名は、グループを識別する名前であり、英数字で指定します。グループ名により、グループの論理名 (string_value) が決まります。各グループには、ユニークなグループ番号 (GRPNO) が指定されます。これは、必須パラメータです。各グループは、すべて 1 つの論理マシン (LMID) 上に常駐する必要があります。

LMID は、このサーバ グループが MACHINES セクションの string_value1 というシンボリック名で指定されているマシンに存在することを示します。

グループ名、グループ番号、および LMID の特性

パラメータ
説明
Group_name required_ parameters [optional_ parameters]
必須パラメータです。
グループを識別する英数字名です。
ユニークであり、グループの論理名を指定します。
GRPNO (グループ番号)
必須パラメータであり、ユニーク。
LMID=string_value1 [,string_value2]
必須パラメータです。
LMID 値には、30 文字以下の英数文字列を指定します。
論理マシン名は 2 つまで指定できます。2 つ目の論理名が指定され、サーバ グループが移行できる場合、サーバ グループが関連付けられているマシンは移行できます。

関連項目

 


TMS の名前および各グループの TMS の数を指定する

分散トランザクション、つまり、複数のリソース マネージャまたはマシンにわたるトランザクションに参加するサーバを含むサーバ グループのエントリには、トランザクション マネージャ サーバ (TMS : Transaction Manager Server) を指定する必要があります。TMS を指定するには、TMSNAME パラメータを設定します。このパラメータは、サーバ グループの起動時に tmboot(1) が実行するファイル (string_value) を指定します。

値「TMS」は、NULL XA インタフェースの使用を示すために予約されています。このインタフェースは、リソース マネージャのないサーバ グループ用に使用できます。ただし、リソース マネージャがない場合は、TMS も必要ありません。このサーバ グループは、トランザクションに関与するメッセージの影響を受けます。「TMS」以外で、さらに空ではない値が指定された場合は、このエントリの LMID 値に関連するマシンに対して、TLOGDEVICE を指定する必要があります。各 TM サーバには、ユニークなサーバ識別子が自動的に割り当てられます。サーバは何度でも再起動できます。

TMSNAME が指定されている場合は、TMSCOUNT=number も指定し、関連するサーバ グループ用の TMS の数を設定する必要があります。TMSCOUNT のデフォルト値は 3 です。このパラメータに 0 以外の値を指定する場合、指定できる最小値は 2、最大値は 256 です。サーバは、自動的に MSSQ セットに設定されます。

 


グループ内のサーバの環境ファイルの場所を識別する

ENVFILE 環境変数 (ENVFILE=string_value) に無効なファイル名が指定された場合、環境には何も値が設定されません。環境ファイルの各行は、ident=value の形式で指定します。ident はアンダースコア (_) または英数字で構成します。

value 内の ${env} という形式の文字列は、ファイルの処理時に、環境内の既存の変数を使用して展開されます。前方参照はサポートされていません。値が設定されていない場合、変数は空の文字列に置換されます。バックスラッシュ (\) を使用すると、ドル記号 ($) およびバックスラッシュ自体をエスケープできます。その他のシェルのクォーテーションおよびエスケープのメカニズムは無視され、展開された value がそのまま環境に組み込まれます。

環境ファイルは、コンフィグレーション ファイル内の少なくとも 2 つのセクションに用意されています。Oracle Tuxedo システムでは、次の順序で環境ファイルが読み取られます。

  1. MACHINES セクションの ENVFILE
  2. GROUPS セクションの ENVFILE
  3. SERVERS セクションの ENVFILE (省略可能)

SERVERS セクションの値は、GROUPS セクションの値をオーバーライドします。GROUPS セクションの値は、MACHINES セクションの値をオーバーライドします。

 


リソース マネージャを開くおよび閉じるときに必要な情報を定義する

OPENINFO および CLOSEINFO パラメータには、256 以下の英数字で構成する文字列を二重引用符で囲んで指定します。これらの設定は、このグループ (グループ名) のリソース マネージャを開くおよび閉じるときに必要な、リソース マネージャに依存する情報を指定します。

このグループの TMSNAME パラメータが設定されていないか、または TMS に設定されている場合、この値は無視されます。TMSNAME パラメータが TMS 以外の値に設定されており、OPENINFO が NULL 文字列 ("") に設定されているか、または何も設定されていない場合は、グループのリソース マネージャは存在しますが、open 操作の実行に関する情報は必要ありません。TMSNAME パラメータが TMS 以外の値に設定されており、CLOSEINFO 文字列に NULL 文字列 ("") が設定されているか、または何も設定されていない場合は、グループのリソース マネージャは存在しますが、close 操作の実行に関する情報は必要ありません。

OPENINFO 文字列の形式は、基底のリソース マネージャのベンダごとに異なります。ベンダ固有の情報の先頭には、トランザクション インタフェース (XA インタフェース) の公開名とコロン (:) が付きます。

たとえば、Oracle Tuxedo /Q データベースの場合、OPENINFO は次のような形式になります。

上記の設定では、TUXEDO/QM が Oracle Tuxedo /Q XA インタフェースの公開名です。qmconfig は、キュー スペースを設定する QMCONFIG (『Tuxedo コマンド リファレンス』の「qmadmin(1)」を参照) の名前です。qspace はキュー スペースの名前です。Windows では、qmconfig の後に指定する区切り文字として、セミコロン (;) を使用します。

注意 : Oracle Tuxedo /Q データベースでは、CLOSEINFO 文字列は使用されません。

その他のベンダのデータベースでは、OPENINFO 文字列の形式は、基底のリソース マネージャのベンダごとに異なります。たとえば、次の OPENINFO 文字列は、Oracle のリソース マネージャを開くときに必要な情報を示します。

OPENINFO="Oracle_XA: Oracle_XA+Acc=P/Scott/*****+SesTm=30+LogDit=/tmp"

Oracle_XA は、Oracle XA インタフェースの公開名です。OPENINFO 文字列内の 5 つの連続するアスタリスク (*) は、暗号化されたパスワードを示します。次に、パスワードについて説明します。

リソース マネージャに渡される OPENINFO 文字列内のパスワードは、クリア テキストまたは暗号化された形式で格納されます。パスワードを暗号化するには、まず、OPENINFO 文字列内のパスワードが必要な場所に、5 つ以上の連続するアスタリスクを入れます。次に、tmloadcf(1) コマンドを実行して、UBBCONFIG ファイルをロードします。tmloadcf() は、アスタリスクの文字列を検出すると、パスワードの作成をユーザに要求します。次に例を示します。

tmloadcf -y /usr5/apps/bankapp/myubbconfig
Password for OPENINFO (SRVGRP=BANKB3):
password

tmloadcf() は、暗号化したパスワードを TUXCONFIG ファイルに格納します。tmunloadcf(1) を使用して TUXCONFIG から UBBCONFIG ファイルを再生成すると、パスワードは @@ で区切られた暗号化形式でその UBBCONFIG ファイルに出力されます。次に例を示します。

OPENINFO="Oracle_XA: Oracle_XA+Acc=P/Scott/@@A0986F7733D4@@+SesTm=30+LogDit=/tmp"

tmloadcf() の実行時に、tmunloadcf() によって生成された UBBCONFIG ファイル内で暗号化されたパスワードが検出されても、ユーザに対してパスワードの作成は要求されません。

 


コンフィグレーション ファイルの NETWORK セクションの作成方法

分散アプリケーションが複数のマシンで構成されている場合は、コンフィグレーション ファイルに NETWORK セクションを作成する必要があります。このセクションは、マシン間の通信を設定します。ネットワーク グループを作成するには、アプリケーションの UBBCONFIG ファイルで、NETGROUPS セクションおよび NETWORK セクションをコンフィグレーションします。

次の表では、NETWORK セクションの各パラメータを説明し、参照先へのリンクやその他の情報を示します。

NETWORK セクションで指定する情報
パラメータ (必須/省略可能)
参照先 (クリックするとリンク先にジャンプ)
LMID 上に置かれた BRIDGE プロセスがネットワークにアクセスするのに使用するデバイス名。
BRIDGE (省略可能)
BRIDGE デバイス名
BRIDGE プロセスで使用される完全なネットワーク アドレス (LMID のリスン用アドレス)。
NADDR (必須)
BRIDGE ネットワーク アドレス
このマシンに対してネットワーク リンクを確立するときに必要な最低限の暗号化レベル。
MINENCRYPTBITS (省略可能)
ネットワーク リンクを確立するときに実行できる最高の暗号化レベル。
MAXENCRYPTBITS (省略可能)
このネットワーク エントリに関連付けられたネットワーク グループ。指定しない場合、デフォルト値は DEFAULTNET と見なされます。DEFAULTNET が設定されない場合、NETGROUPS セクションで指定したグループ名をこのパラメータに定義する必要があります。
NETGROUP (省略可能)
LMID が指定するノード上でネットワークにサービスを提供する tlisten(1) プロセス用のネットワーク アドレス。
NLSADDR (省略可能)
tlisten ネットワーク アドレス

NETWORK セクションの例

以下は、2 サイトを含むコンフィグレーション ファイルの NETWORK セクションの例です。

   *NETWORK
SITE1 NADDR="//mach1:80952"
NLSADDR="//mach1:serve"
# SITE2 NADDR="//mach386:80952"
NLSADDR="//mach386:serve"

関連項目

 


BRIDGE プロセス用のデバイス名を指定する

LMID 上に置かれた BRIDGE プロセスで使用するデバイス名を指定し、ネットワークにアクセスするには、BRIDGE パラメータを次のように設定します。

BRIDGE=string_value 

TCP/IP を使用する場合は、BRIDGE にデバイス名を指定する必要はありません。

ネットワーク トランスポートのエンドポイント ファイルのパス名は、次の形式で指定します。

/dev/provider_name 

 


BRIDGE のネットワーク アドレスを割り当てる

LMID のリスン用アドレスとして、LMID 上に置かれている BRIDGE プロセスで使用する完全なネットワーク アドレスを指定するには、NADDR パラメータを次のように設定します。

NADDR = string_value

BRIDGE のリスン用アドレスは、アプリケーションの別の BRIDGE プロセスがその BRIDGE プロセスにアクセスする場所です。

BRIDGE のリスン用アドレスは、次の 3 つのうち、いずれかの形式で指定できます。

最初の形式では、host.name は、アドレスがバインドされるときに TCP/IP のアドレスに解決されます。この形式は、オペレーティング システムのコマンドによる、ローカル名の解決機能に基づいています。port_number には、シンボリック名または 10 進数を指定します。

2 番目の形式の文字列 #.#.#.# は、ドット区切りの 4 つの 10 進数 (0 ~ 255 を指定) を示します。port_number は、0 ~ 65,535 の 10 進数です (指定された文字列の 16 進表現)。port_number には、シンボリック名または 10 進数を指定します。

3 番目の形式の文字列 0xhex-digits または \\xhex-digits には、有効な 16 進数の偶数を含めます。2 つのうち、どちらかの形式で表現された文字列は、内部で TCP/IP アドレスを含む文字配列に変換されます。

注意 : プラットフォームによっては、システム側で、上記より小さい数値が予約されている場合があります。

 


暗号化レベルを割り当てる

このマシンに対してネットワーク リンクを確立するときに必要な暗号化の最低レベルを設定するには、MINENCRYPTBITS パラメータを設定します。有効な値は、0、56、および 128 です。0 は暗号化を行わないことを示し、56 および 128 は暗号化キーの長さをビット単位で指定します。ここで指定する最小レベルの暗号化が満たされない場合、リンクの確立は失敗します。デフォルト値は 0 です。

ネットワーク リンクを確立するときの暗号化の最大レベルを設定するには、MAXENCRYPTBITS パラメータを設定します。有効な値は、0、56、および 128 です。0 は暗号化を行わないことを示し、56 および 128 は暗号化キーの長さをビット単位で指定します。デフォルト値は 128 です。

MAXENCRYPTBITS=128
MINENCRYPTBITS=0

関連項目

 


tlisten のネットワーク アドレスを割り当てる

LMID が指定するマシン上でネットワークにサービスを提供する tlisten(1) プロセス用のネットワーク アドレスを指定するには、NLSADDR パラメータを次のように指定します。

NLSADDR=string_value

string には、NADDR パラメータと同じ形式でネットワーク アドレスを指定します。

NLSADDRtlisten アドレスは、次の 3 つのうち、いずれかの形式で指定できます。

最初の形式では、host.name は、アドレスがバインドされるときに TCP/IP のアドレスに解決されます。この形式は、オペレーティング システムのコマンドによる、ローカル名の解決機能に基づいています。port_number には、シンボリック名または 10 進数を指定します。

2 番目の形式の文字列 #.#.#.# は、ドット区切りの 4 つの 10 進数 (0 ~ 255 を指定) を示します。port_number は、0 ~ 65,535 の 10 進数です (指定された文字列の 16 進表現)。port_number には、シンボリック名または 10 進数を指定します。

3 番目の形式の文字列 0xhex-digits または \\xhex-digits には、有効な 16 進数の偶数を含めます。2 つのうち、どちらかの形式で表現された文字列は、内部で TCP/IP アドレスを含む文字配列に変換されます。

NLSADDRMASTER LMID 以外のマシンのエントリにない場合、tmloadcf(1) はエラーを出力します。NLSADDRMASTER LMID エントリにない場合、tmadmin(1) をリモート マシンから管理者モードで実行することはできません。可能な処理は、読み取り専用の操作だけです。これは、MASTER サイトで障害が発生しても、バックアップ サイトから再起動できないことも意味します。

 


コンフィグレーション ファイルの NETGROUPS セクションの作成方法

UBBCONFIG ファイルの NETGROUPS セクションでは、LAN 環境で使用可能なネットワーク グループの情報を設定します。1 組のマシンに割り当てるネットワーク グループの数に制限はありません。ネットワーク グループを構成する各ネットワークの通信方式は、優先順位のメカニズム (NETPRIO) によって決まります。

すべての LMID は、デフォルトのネットワーク グループ (DEFAULTNET) のメンバーでなければなりません。デフォルトのネットワーク グループのグループ番号 (NETGRPNO) は、0 です。ただし、DEFAULTNET に設定されているデフォルトの優先順位は変更できます。リリース 6.4 より前の Oracle Tuxedo システムで定義されているネットワークは、DEFAULTNET ネットワーク グループに割り当てられています。

次の表では、NETGROUPS セクションの各パラメータを説明し、参照先へのリンクやその他の情報を示します。

NETGROUPS セクションで指定する情報 (省略可能)
パラメータ (必須/省略可能)
参照先 (クリックするとリンク先にジャンプ)
デフォルトのネットグループ数 (8) 以上のグループを定義します。この値は、RESOURCES セクションで指定されています。
MAXNETGROUPS (省略可能)
ネットワークが使用可能になるのを待つデータの最大サイズ。この値は、MACHINES セクションで指定されています。
MAXPENDINGBYTES (省略可能)
このネットワーク エントリに関連付けられたネットワーク グループ。
NETGROUP (必須)
フェイルオーバおよびフェイルバック用に割り当てる必要のあるユニークなネットワーク グループ番号。
NETGRPNO (必須)
このネットワーク グループの優先順位。
NETPRIO (省略可能)

ネットワーク グループのコンフィグレーションの例

ネットワーク アドレスは、ネットワーク グループに関連付けられます。この機能の例を以下に示します。

たとえば、First State Bank には 5 台のマシン (A ~ E) で構成されるネットワークがあるとします。各マシンは、以下のように定義した 4 つのネットグループの中の 2 つまたは 3 つに属します。

すべてのマシンは、DEFAULTNET (企業 WAN) に属します。さらに、各マシンは MAGENTA_GROUP または BLUE_GROUP に関連付けられます。MAGENTA_GROUP LAN の一部のマシンは、GREEN_GROUP という特殊なグループに属しています。次の図は、ネットワーク内のネットワーク アドレスを持つマシン A ~ E を示します。

図 3-3 ネットワークのグループ化の例

ネットワークのグループ化の例

次の表は、マシンと、対応するグループのアドレスを示します。

マシン
マシンが属するグループのアドレス
A および B
DEFAULTNET (企業 WAN)
MAGENTA_GROUP (LAN)
GREEN_GROUP (LAN)
C
DEFAULTNET (企業 WAN)
MAGENTA_GROUP (LAN)
D および E
DEFAULTNET (企業 WAN)
BLUE_GROUP (LAN)

注意 : ローカル エリア ネットワークは場所間でルーティングされないため、マシン D (BLUE_GROUP LAN 内) は、共通の単一アドレス、つまり企業 WAN ネットワーク アドレスのみを使用してマシン A (GREEN_GROUP LAN 内) と通信します。

UBBCONFIG ファイルへのネットグループのコンフィグレーション

前の節で説明したコンフィグレーションを設定するには、First State Bank のシステム管理者は、次のコンフィグレーション ファイルの例に示すように、UBBCONFIG ファイルの NETGROUPS セクションで各グループを定義します。

コード リスト 3-1 NETGROUPS および NETWORK セクションの例
*NETGROUPS

DEFAULTNET NETGRPNO = 0 NETPRIO = 100 #default
BLUE_GROUP NETGRPNO = 9 NETPRIO = 200
MAGENTA_GROUP NETGRPNO = 125 NETPRIO = 200
GREEN_GROUP NETGRPNO = 13 NETPRIO = 300

*NETWORK

A NETGROUP=DEFAULTNET NADDR="//A_CORPORATE:5723”
A NETGROUP=MAGENTA_GROUP NADDR="//A_MAGENTA:5724"
A NETGROUP=GREEN_GROUP NADDR="//A_GREEN:5725"
B	NETGROUP=DEFAULTNET				NADDR="//B_CORPORATE:5723"
B NETGROUP=MAGENTA_GROUP NADDR="//B_MAGENTA:5724"
B NETGROUP=GREEN_GROUP NADDR="//B_GREEN:5725"
C	NETGROUP=DEFAULTNET				NADDR="//C_CORPORATE:5723"
C NETGROUP=MAGENTA_GROUP NADDR="//C_MAGENTA:5724"

D NETGROUP=DEFAULTNET NADDR="//D_CORPORATE:5723"
D NETGROUP=BLUE_GROUP NADDR="//D_BLUE:5726"
E	NETGROUP=DEFAULTNET				NADDR="//E_CORPORATE:5723"
E NETGROUP=BLUE_GROUP NADDR="//E_BLUE:5726"

関連項目

 


ネットワーク グループに名前を割り当てる

ネットワーク グループに名前を割り当てるには、NETGROUP パラメータを次のように設定します。

NETGROUP required_parameters [optional_parameters]

NETGROUPDEFAULTNET を設定すると、エントリには、デフォルトのネットワーク グループに関する情報が指定されます。NETGROUP パラメータが DEFAULTNET に設定されているネットワーク エントリは、すべて TM_MIBT_MACHINE クラスで表されますが、他の NETGROUP に関連付けられた NETWORK エントリは、TM_MIBT_NETMAP クラスで表され、以前のリリースとの相互運用が可能です。

 


ネットワーク グループ番号を割り当てる

フェイルオーバおよびフェイルバックに対応するには、NETGRPNO パラメータを次のように設定します。

NETGRPNO=numeric_value

このエントリが DEFAULTNET を説明している場合、NETGRPNO の値はゼロにする必要があります。

 


ネットワーク グループに優先順位を割り当てる

複数のネットワーク グループにある、同じ優先順位が指定された 1 組のマシンは、優先順位が最も高い回線上で同時に通信できます。ネットワーク グループの優先順位を割り当てるには、NETPRIO パラメータを使用します。特定の優先順位を持つすべてのネットワーク回線が、管理者またはネットワークによって切断された場合は、1 つ下の優先順位の回線が使用されます。優先順位の高い回線に対しては、接続の再試行が行われます。NETPRIO パラメータには、0 より大きく 8,192 未満の値を指定します。デフォルト値は 100 です。

 


コンフィグレーション ファイルの SERVERS セクションの作成方法

コンフィグレーション ファイルの SERVERS セクションには、サーバ プロセスに固有な情報が含まれています。このセクションは必須ではありません。ただし、このセクションがないということは、アプリケーション サーバがなく、機能もほとんどないことを意味します。このセクションの各エントリは、アプリケーションで起動するサーバ プロセスを表し、次の情報を指定します。

注意 : Oracle Tuxedo システムでサポートされるコマンドライン オプションについては、『Oracle Tuxedo のファイル形式とデータ記述方法』の「servopts(5)」を参照してください。

次の表では、SERVERS セクションの各パラメータを説明し、参照先へのリンクやその他の情報を示します。

SERVERS セクションで指定する情報 (省略可能)
パラメータ (必須/省略可能)
参照先 (クリックするとリンク先にジャンプ)
サーバが会話型サーバであるかどうか。接続は、会話型サーバに対してのみ行うことができます。tpacall(3c) または tpcall(3c) を使った rpc 要求は、非会話型サーバに対してのみ行うことができます。
CONV (省略可能な実行時パラメータ)
ID 確認のためのプロセスのプリンシパル名、プリンシパル ユーザのプライベート キーの場所、およびパスワードを格納する環境変数。
SEC_PRINCIPAL_NAMESEC_PRINCIPAL_LOCATIONSEC_PRINCIPAL_PASSVAR
他のサーバとの関連で、このサーバをいつ起動または停止するか。
SEQUENCE (省略可能な起動パラメータ)
tmboot によって起動されるサーバのオカレンスの最小数。
MIN (省略可能な起動パラメータ)
起動できるサーバのオカレンスの最大数。
MAX (省略可能な起動パラメータ)
起動時にサーバ プロセスに渡される servopts(5) オプションのリスト。何も指定しない場合、デフォルトの -A が使用されます。string_value は 256 文字まで指定できます。
CLOPT (省略可能な起動パラメータ)
初期化時に、該当するファイルの値をサーバ環境に追加する要求。サーバが、別のマシンに移行可能なサーバ グループに関連付けられている場合は、移行元マシンと移行先マシンの同じ場所に ENVFILE を格納する必要があります。
ENVFILE (省略可能な実行時パラメータ)
サーバが所属するサーバ グループの名前。string_value には、GROUPS セクションのサーバ グループに関連付けられた論理名を指定します。
SRVGRP (必須)
サーバ グループ内のサーバをユニークに識別する整数。識別子は、1 以上 30,000 以下でなければなりません。
SRVID (必須)
プロセスの要求キューのシンボリック名。
RQADDR (省略可能な実行時パラメータ)
要求キューに対するパーミッション (数値で指定)。
RQPERM (省略可能な実行時パラメータ)
プロセスに対して応答キューを確立するかどうか。
REPLYQ (省略可能な実行時パラメータ)
応答キューに対するパーミッション (数値で指定)。
RPPERM (省略可能な実行時パラメータ)
再起動可能なプロセスが異常終了した場合に実行するコマンド。
RCMD (省略可能な実行時パラメータ)
再起動可能なプロセスの再起動回数。GRACE で指定された時間内に再起動できる最大回数から 1 を引いた数を指定します。
MAXGEN (省略可能な実行時パラメータ)
再起動可能なプロセスの再起動回数。指定した秒内で MAXGEN 回まで再起動できることを指定します。
GRACE (省略可能な実行時パラメータ)
プロセスを再起動できるかどうか。デフォルト値は N です。サーバを移行できる場合は、RESTARTY に設定します。SIGTERM シグナルで終了されたサーバは再起動する必要があります。
RESTART (省略可能な実行時パラメータ)
アプリケーション プロセス内で、Oracle Tuxedo のシステム ライブラリから内部テーブルへのアクセスを実現するデフォルト モード。
SYSTEM_ACCESS (省略可能な実行時パラメータ)
最初にサーバを起動するときのサーバ ディスパッチ スレッドの最小数。MAXDISPATCHTHREADS > 1 のときに使用される個別のディスパッチ スレッドは、MAXDISPATCHTHREADS の値の一部としてはカウントされません。MAXDISPATCHTHREADS は、MINDISPATCHTHREADS と同じか、またはそれ以上でなければなりません (MINDISPATCHTHREADS<=
MAXDISPATCHTHREADS)。このパラメータのデフォルト値は 0 です。
MINDISPATCHTHREADS
各サーバ プロセスで生成される、同時に実行できるディスパッチ スレッドの最大数。MAXDISPATCHTHREADS > 1 のときに使用される個別のディスパッチ スレッドは、パラメータで指定した数には含まれません。MAXDISPATCHTHREADS は、MINDISPATCHTHREADS と同じか、またはそれ以上でなければなりません (MINDISPATCHTHREADS<=
MAXDISPATCHTHREADS)。このパラメータのデフォルト値は 1 です。
MAXDISPATCHTHREADS
最初のスレッド以降の各サーバ スレッドのスタック サイズ (バイト単位)。このパラメータを指定しないか、または 0 の場合は、オペレーティング システムのデフォルト値が使用されます。このオプションは、MAXDISPATCHTHREADS に 1 より大きい値が指定された場合のみサーバに影響を与えます。
THREADSTACKSIZE
WebLogic Server の組み込み LDAP ベース認証サーバ。System /T で用意されたサーバであり、ユーザのセキュリティ情報が WebLogic Server にあるときに認証サービスを提供します。このサーバは、クライアントがアプリケーションに参加するときにユーザ単位の認証を提供するために、セキュリティ付きアプリケーションで使用されます。
SECURITY USER_AUTH またはそれ以上を指定する必要があります。
デフォルトでは $TUXDIR/udataobj/tpldap ファイルを使用して、LDAP のコンフィグレーション情報を取得します。
例 : LAUTHSVR SRVGRP= “AUTH’’SRVID=100
CLOPT=”-A--
-f/usr/tuxedo/udataobj/tpldap”
LAUTHSVR (省略可能)

SERVERS セクションの例

以下は、コンフィグレーション ファイルの SERVERS セクションの例です。

*SERVERS
DEFAULT: RESTART=Y MAXGEN=5 GRACE=3600
REPLYQ=N CLOPT=”-A”
ENVFILE=”/usr/home/envfile”
SYSTEM_ACCESS=PROTECTED

RINGUP1 SRVGRP=GROUP1 SRVID=1 MIN=3
RQADDR=”ring1"
RINGUP2 SRVGRP=GROUP1 SRVID=4 MIN =3
RQADDR=”ring2"
注意 : この例では、SEQUENCE (1 ~ 6 の順に起動)、REPLYQRPPERM (サーバは応答を受け取らない)、RCMD (再起動時のコマンド不要)、および CONV (非会話型サーバ) が省略されています。特定のサーバに対して特に設定を行わない限り、すべてのサーバにはデフォルト設定が適用されます。

SERVERS セクションの例のパラメータ

上の SERVERS セクションの例では、以下のパラメータと値が指定されています。

パラメータ
説明
RESTART=Y (デフォルト)
サーバを再起動します。
MAXGEN=5 (デフォルト)
MAXGEN パラメータには、GRACE パラメータで指定した期間内にサーバが起動できる回数を制御する、0 より大きく 256 よりも小さい数値を指定します。デフォルト値は 1 です。サーバが再起動可能な場合、このパラメータには 2 以上 (MAXGEN>= 2) を指定します。再起動は、指定した値から 1 を引いた回数行うことができます。RESTART は、Y に指定します。指定しないと、MAXGEN は無視されます。
GRACE=3600 (デフォルト)
RESTARTY の場合、GRACE パラメータを使用して、サーバの再起動を行える期間 (秒単位) を指定することができます。再起動は、MAXGEN - 1 回行うことができます。秒数として 0 以上 2,147,483,648 未満 (または 68 年強) の値を指定します。GRACE を指定しない場合は、デフォルトの 86,400 秒 (24 時間) が指定されます。GRACE 期間が終了すると、次の期間が開始します。このパラメータに 0 を設定すると、すべての制限が解除されます。つまり、サーバの再起動回数が制限されなくなります。
REPLYQ=N (デフォルト)
応答キューはありません。
CLOPT=”-A” (デフォルト)
各サーバのコマンドラインに -A を指定します。
ENVFILE=”/usr/home/envfile” (デフォルト)
ENVFILE に指定したファイルから環境設定を読み取ります。
SYSTEM_ACCESS=PROTECTED (デフォルト)
システム コード外から内部テーブルへのアクセスを拒否します。
RINGUP1
最初に起動するサーバのサンプル名。
SRVGRP=GROUP1 SRVID=1 MIN=3
RQADDR=”ring1"
サンプル サーバの 3 つのインスタンスが、サーバ グループ GROUP1 で起動します。サーバ ID は、12、および 3 です。3 つのサーバは、MSSQ セットを構成し、キュー ring1 からの要求を読み取ります。

注意 : RQADDR は、このサーバの要求キューにシンボリック名を割り当てます。MSSQ セットを作成するには、複数のサーバに対して同じシンボリック キュー名を指定し、これらのサーバの実行可能ファイルに同じ名前を割り当てます。MIN には、1 より大きい値を指定します。

RINGUP2
2 番目に起動するサンプル サーバの名前。

関連項目

 


サーバを会話型として指定する

サーバが会話型サーバである (つまり、クライアントと専用サーバの間に双方向接続を確立する) 場合、CONV は必須パラメータであり Y を設定する必要があります。デフォルト値は N で、この場合はそのサーバが会話に含まれないことを示します。

CONV パラメータの特性

CONV パラメータには、以下の特性があります。

 


サーバを起動する順序を設定する

サーバを起動する順序を指定するには、各サーバの SEQUENCE パラメータを設定します。SEQUENCE には、1 から 10,000 までの任意の数字を指定します。SEQUENCE パラメータの値が小さいサーバは、値が大きいサーバより先に起動します。SEQUENCE パラメータをまったく指定しない場合、サーバは SERVERS セクションに示されている順序で起動します。順序が指定されたサーバと指定されていないサーバが混在する場合は、順序が指定されたサーバが先に起動します。サーバは、起動する順序とは逆の順序で停止されます。

SEQUENCE は、省略可能なパラメータです。このパラメータは、大規模なアプリケーションで、サーバを起動する順序を指定する必要がある場合に役立ちます。

警告 : CORBA 環境では、システムのイベント ブローカ、FactoryFinder オブジェクト、およびアプリケーション ファクトリを起動する順序が厳密に規定されています。この順序に従わないと、CORBA アプリケーションは起動しません。詳細については、「CORBA C++ サーバの起動順序」を参照してください。

複数のサーバを起動するには、MIN パラメータを設定して、起動作業を簡略化できます。この場合、すべてのサーバに同じオプションが適用されます。RQADDR を指定すると、サーバは MSSQ セットを生成します。MIN のデフォルト値は 1 です。

起動するサーバの最大数を指定するには、MAX パラメータを設定します。tmboot(1) コマンドを実行すると、実行時に MIN で指定した数のサーバが起動します。続いて、MAX で指定した数までのサーバが起動します。デフォルトは、MIN で指定した数のサーバです。

MIN および MAX パラメータは、大規模なアプリケーションのコンフィグレーション ファイルを管理しやすいサイズに保つ上で役立ちます。MAX の最大値は、IPC リソースを割り当てて設定します。MIN および MAX パラメータは、会話型サービスやサーバの自動生成でも使用されます。

CORBA C++ サーバの起動順序

Oracle Tuxedo CORBA 環境でのサーバの正しい起動順序は以下のとおりです。この順序に従わないと、CORBA アプリケーションは起動しません。

  1. システムのイベント ブローカである TMSYSEVT
  2. -N および -M オプションが設定された TMFFNAME サーバ。NameManager サービスを (マスタとして) 起動します。このサービスは、アプリケーション側で提供される名前とオブジェクト参照のマッピングを維持します。
  3. -N オプションのみが設定された TMFFNAME サーバ。スレーブ NameManager サービスを起動します。
  4. -F オプションが設定された TMFFNAME サーバ。FactoryFinder オブジェクトを起動します。
  5. ファクトリを宣言するアプリケーション C++ サーバ。

コード リスト 3-2 は、Oracle Tuxedo ソフトウェアに収録されているサンプル アプリケーションの 1 つである、Oracle Tuxedo CORBA University Basic アプリケーションの起動順序を示します。この SERVERS セクションは、ubb_b.nt コンフィグレーション ファイルを編集したものから抜粋しています。

コード リスト 3-2 University 用の UBBCONFIG サンプル ファイルの SERVERS セクションを編集した例
*SERVERS
    # デフォルトでは、サーバがクラッシュした場合、24 時間以内に最大 5 回まで
    # 再起動する
    #
DEFAULT:
RESTART = Y
MAXGEN = 5

    # Oracle Tuxedo System のイベント ブローカを起動する。このイベント ブローカは、
    # NameManager サービスを提供するサーバを起動する前に
    # 起動する必要がある
    #
TMSYSEVT
SRVGRP = SYS_GRP
SRVID = 1

    # TMFFNAME は、Oracle Tuxedo CORBA 環境で提供される、
    # NameManager および FactoryFinder サービスを実行するサーバ

    # NameManager は、Oracle Tuxedo CORBA 環境固有のサービスで、
     # アプリケーションが提供する名前とオブジェクト参照の
    # マッピングを管理する

    # NameManager Service (-N オプション) を起動する。この NameManager は
    # マスタとして起動される (-M オプション)
    #
TMFFNAME
SRVGRP = SYS_GRP
SRVID = 2
CLOPT = "-A -- -N -M"

    # スレーブ NameManager サービスを起動する
    #
TMFFNAME
SRVGRP = SYS_GRP
SRVID = 3
CLOPT = "-A -- -N"

    # FactoryFinder (-F) サービスを起動する
    #
TMFFNAME
SRVGRP = SYS_GRP
SRVID = 4
CLOPT = "-A -- -F"

    # インタフェース リポジトリ サーバを起動する
    #
TMIFRSVR
SRVGRP = SYS_GRP
SRVID = 5

    # University サーバを起動する
    #
univb_server
SRVGRP = ORA_GRP
SRVID = 6
RESTART = N

    # IIOP クライアントのリスナを起動する
    #
    # サーバ マシンのホスト名とポート番号を
    # 指定する。通常、ポート番号は 2500
#
ISL
SRVGRP = SYS_GRP
SRVID = 7
CLOPT = "-A -- -n //TRIXIE:2500"

この例では、TMSYSEVT サーバと TMFFNAME サーバを起動した後、以下のコンポーネントが起動します。

注意 : 何らかの理由でグループやマシンを移行または停止するとき、アクティブなスレーブ NameManager が別のグループにある場合は、マスタ NameManager がアクティブになる前に FactoryFinder やスレーブ NameManager が再起動されないように、UBBCONFIG ファイルを設定してください。たとえば、FactoryFinder がマスタ NameManager と同じグループにある場合、マスタ NameManager が先に起動されるように、UBBCONFIG ファイルでサーバの起動順序を変更します。

 


SEQUENCE、MIN、および MAX パラメータの特性

パラメータ
説明
SEQUENCE
省略可能なパラメータです。値には 1 ~ 10,000 の範囲の数値を設定します。
小さい値が指定されたサーバは、大きい値が指定されたサーバより先に起動します。
このパラメータが設定されていないサーバは、SERVERS セクションに示されている順序で起動します。
順序が指定されているサーバは、指定されていないサーバより先に起動します。
MIN
実行時に起動するサーバの最小数を指定します。
RQADDR が指定されており、MIN が 1 より大きい場合 (MIN > 1) は、MSSQ セットが作成されます。
すべてのインスタンスには、同じサーバ オプションが適用されます。
値には、0 ~ 1000 を指定します。
デフォルト値は 1 です。
MAX
起動するサーバの最大数を指定します。
MAX には 0 ~ 1000 の値を指定します。MAX を指定しない場合、デフォルトで MIN の値が指定されます。

 


サーバのコマンドライン オプションを指定する

Oracle Tuxedo システムでは、サーバが要求を処理するときに使用するオプションを指定できます。これらのオプションは、servopts で定義します。これを実行すると、サーバ プロセス用の実行時オプションが示されます。サーバサイドでは、コマンドラインからの情報の取得が必要な場合があります。CLOPT パラメータを使用すると、コマンドライン オプションを指定して、サーバに設定されたデフォルト値を変更したり、ユーザ定義のオプションを tpsvrinit() 関数に渡すことができます。

標準の main() を使用すると、引数 -- までのオプションのセットが解析され、以降のオプションは tpsvrinit() に渡されます。CLOPT のデフォルトのオプション -A は、buildserver(1) または buildobjserver(1) によって組み込まれたすべてのサービスを宣言するようサーバに通知します。次の表は、使用可能なオプションの一部です。

オプション
目的
-o filename
標準出力を filename ファイルにリダイレクトします。
-e filename
標準エラーを filename ファイルにリダイレクトします。
-s services
サービスを宣言します。たとえば、-s x,y,z は、サービス xy、および z を宣言します。
-s x,y,z:funcname
サービス xy、および z を宣言しますが、関数 funcname を使用してこれらのサービスの要求を処理します。これは、関数名のエリアスと呼ばれます。
-r
実行したサービスがログに記録されるようにサーバを指定します。
-v
標準出力にサービス名と関数名のリストを出力します。
このオプションは、UBBCONFIGCLOPT では使用できません。これは、サーバを手動で起動するときに使用します。

注意 : その他の標準的な main() オプションについては、『Oracle Tuxedo のファイル形式とデータ記述方法』の「servopts(5)」を参照してください。

CLOPT パラメータの特性

サンプルの BANKAPP アプリケーションでは、次のようにコマンドライン オプションを指定しています。

CLOPT=”-A -- -T 10"

これは、サーバに対し、すべてのサービスを宣言するオプション (-A) と 10 という窓口 ID が指定されていることを示します。操作が発生すると、特定の窓口のレコードは更新されます。このオプション、特に tpsvrinit() に渡されるオプションを使用する場合、システム管理者とアプリケーション プログラマは、よく相談する必要があります。

関連項目

 


サーバ環境ファイルの場所を識別する

環境設定を指定するには、MACHINES セクションにある ENVFILE パラメータを使用します。また、特定のサーバ プロセスに同じパラメータを指定できますが、セマンティクスは同じです。MACHINES セクションの ENVFILE と、SERVERS セクションの ENVFILE が指定されると、両方とも有効になります。MACHINES および SERVERS セクションの両方に同じ変数が定義された場合は、SERVERS セクションの設定が優先されます。

サーバ環境ファイルの特性

ENVFILE は、サーバ環境ファイルを定義するパラメータであり、以下の特性があります。

環境変数の設定の詳細については、『Oracle Tuxedo のファイル形式とデータ記述方法』の「tuxenv (5)」を参照してください。

 


サーバ名、サーバ グループ、およびサーバ ID を定義する

まず、SERVERS セクションでサーバに名前を割り当てます。指定する名前は、以下のいずれかのコマンドを使用して作成した実行可能ファイルです。

また、各サーバにグループ識別子 (SRVGRP) を指定する必要があります。SRVGRP には、GROUPS セクションのエントリの最初に指定した名前を設定します。最後に、指定されたグループ内の各サーバ プロセスにユニークな数値識別子 (SRVID) を指定します。サーバ エントリには、必ず SRVGRP パラメータと SRVID パラメータが必要です。エントリでは、アプリケーションのほか、起動するマシンも記述されるため、複数のエントリに同じサーバ名が表示される場合もあります。

サーバ名、SRVGRP、および SRVID パラメータの特性

パラメータ
説明
Server_name
起動する実行可能ファイルを識別します。
ATMI では buildserver(1) で作成されます。
CORBA では buildobjserver(1) で作成されます。
必須パラメータですが、サーバ グループ内でユニークでなくてもかまいません。
SRVGRP (サーバ グループ)
グループとの関係を識別します。
グループ名は、GROUPS セクションのエントリに設定されているものを指定します。
必須パラメータです。
SRVID (サーバ ID)
数値で指定します。
必須パラメータであり、サーバ グループ内でユニークな値を設定します。

 


サーバ キュー情報を識別する

サーバ キュー情報を指定すると、サーバ メッセージ キューを作成し、このキューへのアクセスを制御できます。Oracle Tuxedo システムでは、RQADDR パラメータを使用して複数サーバ、単一キュー (MSSQ) セットを作成できます。どのサーバに対しても、このパラメータの値に英数字を設定できます。同じサービスを提供するすべてのサーバに対して同じ RQADDR 値を設定すると、サービスを 1 つのメッセージ キューにまとめて MSSQ セットを作成することができ、ロード バランシングを実現できます。

MSSQ の例

MSSQ セットは、銀行の窓口担当者の業務に似ています。たとえば、窓口が 4 つあり、顧客は 1 列に並んで順番にサービスを受けるとします。顧客は、空いた窓口へ順番に進みます。当然ながら、融資担当の窓口は別です。融資担当の窓口では、預金の預け入れや引き出しを処理できません。また、融資を希望する顧客は限られています。同様に、MSSQ セットの場合も、提供するサービスが異なるサーバは、同じ MSSQ セットに参加できません。

RQPERM パラメータを使用すると、UNIX システムの規則に従った、サーバ要求キューのパーミッションを指定できます (0666 など)。この設定により、要求キューへのアクセスを制御できます。

MSSQ サーバ内のサービス ルーチンでサービス要求が発行されると、それらの要求に対する応答を応答キューで受け取る必要があります。このような応答キューは、REPLYQ=Y で指定することができます。デフォルトでは、REPLYQN が設定されています。REPLYQY に設定されている場合、RPPERM パラメータを使ってその応答キューにパーミッションを割り当てることもできます。

RQADDR、RQPERM、REPLYQ、および RPPERM パラメータの特性

パラメータ
説明
RQADDR
MSSQ セットを作成できるようにする英数値です。値は、MSSQ セットのすべてのメンバーに対して同じです。MSSQ のすべてのメンバーは、同じサービスのセットを提供する必要があり、MSSQ セットのサーバは同じ実行可能ファイル名を持っていなければなりません。複数のサーバを起動するには、Min パラメータに 1 より大きい値を設定します。
RQPERM
要求キューのパーミッションを表します。パラメータを指定しない場合、RESOURCES セクションの PERM で指定された掲示板のパーミッションが使用されます。値が指定されない場合は、デフォルト値の 0666 が使用されます。デフォルトを使用すると、システム上にログインしたユーザがすべてアプリケーションにアクセスできるようになります。
REPLYQ
このサーバに対して、応答キュー (要求キューとは別) を設定するかどうかを指定します。要求キューを使用しているサーバが 1 つだけの場合、応答は問題なく要求キューから受け取られます。Oracle Tuxedo システムでは、サーバが MSSQ セットのメンバーであり、サービスが応答メッセージを受け取るようにプログラミングされている場合は、REPLYQ を Y に設定して、このサーバに対して応答キューが個別に作成されるようにします。そうでない場合、応答は、MSSQ セット内の全サーバが共有する要求キューに送信されてしまい、応答が要求元のサーバに返されるかどうかは保証されません。マルチスレッド化されたサーバの場合は、このパラメータが設定されていなくても、自動的に REPLYQ が作成されます。
RPPERM
応答キューのパーミッションを割り当てます。このパラメータは、REPLYQ=Y の場合のみ有効です。要求と応答が同じキューから読み出される場合、必要なのは RQPERM のみで、RPPERM は無視されます。

 


サーバの再起動に関する情報を定義する

適切にデバッグされたサーバは、自動的に終了しません。デフォルトでは、アプリケーションの実行中に終了したサーバは、自動的に再起動しません。サーバを再起動する場合は、RESTART パラメータに Y を設定します。RESTART が Y の場合、RCMDMAXGEN、または GRACE パラメータを設定できます。

RCMD パラメータを使用すると、サーバの再起動時に並行して実行されるコマンドを指定できます。たとえば、サーバ開発者や、サーバのアクティビティを監査する担当者に電子メールを送信する、という操作を実行できます。

MAXGEN パラメータは、GRACE で指定された期間内にサーバを再起動できる回数を示します。サーバは、GRACE で指定された秒数の間に MAXGEN-1 回だけ再起動できます。GRACE がゼロに設定されると、サーバの再起動は無制限に行われます。MAXGEN はデフォルトで 1 に設定されており、256 より大きい値は設定できません。GRACE には、ゼロまたはゼロより大きい値を設定します。ただし、2,147,483,647 (231 - 1) 以上の値は設定できません。

注意 : 完全にデバッグされたサーバを再起動する必要はありません。RESTART パラメータおよび関連するパラメータには、テスト用とプロダクション用の 2 つの値を設定する必要があります。

RESTART、RCMD、MAXGEN、および GRACE パラメータの特性

パラメータ
説明
RESTART
Y を設定すると、サーバを再起動できるようになります。
デフォルト値は N です。
RCMD
再起動時に実行される実行可能ファイルを指定します。
サーバの再起動時にアクションを行えるようにします。
MAXGEN
指定された時間の間隔内でのサーバ再起動の最大数を表します。
デフォルト値は 1 で、最大値は 256 です。
GRACE
MAXGEN に使用される時間間隔を表します。
ゼロの場合は、起動回数に制限がないことを表します。
0 ~ 2,147,483,647 (231 - 1) の範囲の値である必要があります。
デフォルト値は 24 時間です。

 


共有メモリに対するサーバ アクセスを定義する

SYSTEM_ACCESS パラメータは、サーバ プロセスを共有メモリにアタッチし、システム コードの外から内部テーブルへのアクセスを許可するかどうかを決定します。アプリケーション開発時には、このようなアクセスを許可しないように設定しておく (PROTECTED) ことをお勧めします。アプリケーションをテストした後で、SYSTEM_ACCESS の値を FASTPATH に変更すると、パフォーマンスを高めることができます。

このパラメータの設定は、RESOURCES セクションで NO_OVERRIDE が指定されない限り、RESOURCES セクションの値をオーバーライドします。RESOURCES セクションで NO_OVERRIDE が指定されている場合、このパラメータは無視されます。NO_OVERRIDE 値は、このセクションでは使用されません。

SYSTEM_ACCESS パラメータの特性

SYSTEM_ACCESS パラメータには、以下の特性があります。

 


サーバ ディスパッチ スレッドを定義する

MAXDISPATCHTHREADS は、各サーバ プロセスで生成される、同時に実行できるディスパッチ スレッドの最大数です。MAXDISPATCHTHREADS > 1 のときに使用される個別のディスパッチ スレッドは、パラメータで指定した数には含まれません。MAXDISPATCHTHREADS は、MINDISPATCHTHREADS と同じか、またはそれ以上でなければなりません (MINDISPATCHTHREADS<=MAXDISPATCHTHREADS)。指定しない場合、このパラメータのデフォルト値は 1 です。

MINDISPATCHTHREADS は、最初にサーバを起動するときのサーバ ディスパッチ スレッドの最小数です。MAXDISPATCHTHREADS > 1 のときに使用される個別のディスパッチャ スレッドは、MAXDISPATCHTHREADS の値の一部としてはカウントされません。MAXDISPATCHTHREADS は、MINDISPATCHTHREADS と同じか、またはそれ以上でなければなりません (MINDISPATCHTHREADS<=MAXDISPATCHTHREADS)。このパラメータのデフォルト値は 0 です。

最初のスレッド以降の各サーバ スレッドのスタック サイズをバイト数で指定する必要があります。このパラメータを指定しないか、または 0 の場合は、オペレーティング システムのデフォルト値が使用されます。このオプションは、MAXDISPATCHTHREADS に 1 より大きい値が指定された場合のみサーバに影響を与えます。

 


ISL サーバのセキュリティ パラメータを設定する

CORBA 環境では、IIOP リスナ (ISL) プロセスが、リモート クライアントの接続要求をリスンします。ISL プロセスは、Oracle Tuxedo システム側で提供されるサーバとして、1 つのエントリで指定されます。

IIOP を使用する場合、Secure Socket Layer (SSL) プロトコルによってプロセス間の安全な通信方法を定義します。ISL コマンドの -s オプションを使用して、必須パラメータを設定します。これらのパラメータは、SSL プロトコルを使用する場合のみ設定する必要があります。SSL プロトコルは、Oracle Tuxedo Security Pack にインストールされています。

表 3-1 に、SSL パラメータの特性を示します。

これらのパラメータ設定の詳細については、『Tuxedo CORBA アプリケーションのセキュリティ機能』を参照してください。

 


コンフィグレーション ファイルの SERVICES セクションの作成方法

コンフィグレーション ファイルの SERVICES セクションでは、アプリケーションで提供されるサービスに関する詳しい情報を指定できます。トランザクションに関与しない非分散型のアプリケーションの場合、これらの情報の指定は簡単です。SERVICES セクションには、以下の種類の情報が含まれます。

サービスには必須パラメータはありません。サービスを示す必要があるのは、省略可能なパラメータを設定する場合のみです。

次の表では、SERVICES セクションの各パラメータを説明し、参照先へのリンクやその他の情報を示します。

SERVICES セクションで指定する情報
パラメータ (必須/省略可能)
参照先 (クリックするとリンク先にジャンプ)
まだトランザクション モードでない状態で要求のメッセージを受け取った場合に、トランザクションが自動的に開始されるかどうか。
AUTOTRAN (DTP アプリケーションのみ)
このサービスで受け付けるデータ バッファのタイプおよびサブタイプのリスト。このパラメータには、最大 32 のタイプとサブタイプの組み合わせを最大 256 文字で指定できます。
BUFTYPE (省略可能)
SVCNAM によってシステムに指定されるロード ファクタ。
LOAD (省略可能)
データ依存型ルーティングを行うときに、このサービスに使用されるルーティング基準名。
ROUTING (省略可能)
SVCNAM がグループ パラメータのすべての設定を取得するサーバ グループ名。
SRVGRP (省略可能)
SVCNM をキューから取り出すときの優先順位。
PRIO (省略可能)
特定のサービスのトランザクションに関与しないブロックタイム値 (秒単位)。
BLOCKTIME (省略可能)
特定のサービスの処理にかかる時間 (秒単位)。
SVCTIMEOUT (省略可能)
関連するサービスに対するトランザクションを自動的に開始するまでのデフォルトのタイムアウト値 (秒単位)。
TRANTIME (DTP アプリケーションのみ)

SERVICES セクションの例

以下は、コンフィグレーション ファイルの SERVICES セクションの例です。

*SERVICES
#
DEFAULT: LOAD=50 PRIO=50
RINGUP BUFTYPE=”VIEW:ringup”

この例では、サービスのデフォルトのロードおよび優先順位の値は 50 です。宣言されている 1 つのサービスは、RINGUP サービスであり、バッファ タイプ ringup VIEW が指定されています。

関連項目

 


トランザクションの自動開始とタイムアウト間隔を指定する

AUTOTRAN ={Y|N} パラメータをコーディングして、要求メッセージがすでにトランザクション モードの場合に、トランザクションを自動的に開始するかどうかを指定できます。デフォルト値は N です。

あるサービスに対するトランザクションが開始した後でそのトランザクションが失敗した場合、ロールバックされるまでのタイムアウト間隔を指定することができます。タイムアウト間隔が自動的に実行されるように指定するには、TRANTIME パラメータを次のように設定します。

TRANTIME = number

デフォルト値は 30 秒です。0 (タイムアウトの最大値) をコンピュータに指定すると、トランザクションでタイムアウトは発生しません。

UBBCONFIG ファイルの RESOURCES セクションでは、MAXTRANTIME という追加のトランザクション タイムアウト プロパティを使用できます。MAXTRANTIME タイムアウト値が TRANTIME タイムアウト値またはトランザクションを開始する tpbegin(3c) の呼び出しで渡されたタイムアウト値より小さい場合、トランザクションのタイムアウトは MAXTRANTIME の値に削減されます。

注意 : MAXTRANTIME は Oracle Tuxedo 8.0 以前を実行するマシン上で開始されるトランザクションには影響を与えません。ただし、Oracle Tuxedo 8.1 以降を実行するマシンがトランザクションの影響を受ける場合は、そのノードに対してコンフィグレーションされている MAXTRANTIME 値までトランザクション タイムアウト値が制限 (必要に応じて減少) されます。

関連項目

 


サービスで受け付けるバッファ タイプのリストを指定する

BUFTYPE パラメータを使用すると、サービス コードとは関係なく、バッファ タイプをチェックするサービスを調整できます。このパラメータを設定する場合は、サービスで受け付けるバッファ タイプのリストを次の形式で指定します。

type[:subtype[,subtype]]

すべての subtype を受け入れるには、サブタイプの値に * を設定します。

サービスの BUFTYPE パラメータの値が ALL の場合、このサービスはすべてのバッファ タイプを受け付けます。デフォルト値は ALL です。

BUFTYPE パラメータの例

BUFTYPE の例
説明
BUFTYPE=”FML;VIEW:aud,aud2"
サブタイプが aud および aud2FML および VIEW バッファ タイプを受け付けます。
BUFTYPE=”FML;VIEW:*”
すべての FML および VIEW バッファ タイプを受け付けます。
BUFTYPE=ALL
すべてのバッファ タイプを受け付けます (デフォルト)。

 


要求を処理する時間を指定する

要求の処理中に、予期しないシステム エラーが発生し、サービスが停止 (フリーズ) したり、制御不可能になる場合があります。このようなプロセスは削除することが望ましいですが、実際にこれらのエラーを検出したり、エラー原因を追跡することは困難です。Oracle Tuxedo システムには、エラーを識別できなくても、このようなプロセスを終了できるメカニズムが組み込まれています。このメカニズムを使用するには、SVCTIMEOUT パラメータを設定します。

SVCTIMEOUT パラメータは、サービスが要求を処理できる時間 (秒) を指定します。このパラメータで定義された間隔が経過してもサービスが要求を処理できなかった場合、その要求の処理は強制終了されます。本質的に、サービス タイムアウトは、停止または制御不能状態にあるアプリケーション サーバのスカベンジ機能として働きます。デフォルトでは、Oracle Tuxedo システムはサービス プロセスを終了しません。この機能を有効にするには、SVCTIMEOUT を設定する必要があります。

UBBCONFIG ファイルの SVCTIMEOUT パラメータに値を割り当てるか、または TM_MIBTA_SVCTIMEOUT 属性を動的に変更することによって設定できます。SVCTIMEOUT または TA_SVCTIMEOUT の値には、サービスが 1 つの要求の処理に費やす時間の 2 ~ 3 倍の時間を指定しておくことをお勧めします。このような値を設定しておくと、Oracle Tuxedo システムは、停止状態のプロセスだけを削除します。

この節では、サービス タイムアウト エラーの原因と結果、および Oracle Tuxedo システムによるエラーのレポート方法を説明します。また、エラーの処理方法に関するアドバイスも掲載しています。

タイムアウト発生時の処理

タイムアウトが発生すると、Oracle Tuxedo システムは、停止されたサービスの実行元であるサーバ プロセスを終了します。ただし、子プロセスは終了しません。次に、TPESVCERR エラーを返し、サービスの処理中に未知のエラーが発生したことを示します。会話型サービスでは、会話型イベントである TPEV_SVCERR が返されます。

サービスのタイムアウトの通知方法

Oracle Tuxedo システムでは、以下の 3 つの機能を使用してサービス タイムアウトを通知します。

SVCTIMEOUT 値がコンフィグレーション可能になったため、クライアント アプリケーション側では、SVCTIMEOUT の値を超過して発生した TPESVCERR とそれ以外の原因で発生した TPESVCERR を簡単に識別できるようにしておくことが必要です。この情報は、ULOG にも記録されていますが、クライアント プログラムによって抽出するのは困難です。サービス タイムアウトの TPESVCERR をその他のエラーと区別するため、プログラムで TPESVCERR を検出した後に tperrordetail(3c) ルーチンを呼び出し、サービス タイムアウトが発生したときに TPED_SVCTIMEOUT を生成することができます。

また、サービス タイムアウトが発生すると、システム イベントである .SysServiceTimeout が生成されます。.SysServiceTimeout イベントが発生すると、ULOG に次のように記録されます。

ERROR: .SysServiceTimeout: %TA_SERVERNAME、グループ %TA_SRVGRP、id %TA_SRVID のサーバが、サービス・タイムアウトのため強制終了しました。 

サービス タイムアウトの制御方法

 


トランザクションに関与しないサービスのブロックタイムを指定する

処理にかかる時間はサービスごとに異なるため、それぞれ個別に BLOCKTIME 値を設定する必要があります。アプリケーションによっては、クライアントごとまたはサービス呼び出しごとに、個別にデフォルトのブロックタイム値をオーバーライドする必要がある場合もあります。

UBBCONFIG ファイルの SERVICES セクションの BLOCKTIME パラメータを使用すると、トランザクションに関与しない個々のサービスに秒単位でブロックタイム値を指定できます。ここで設定した値によって、指定したサービスのデフォルト値 (RESOURCES セクションの BLOCKTIME パラメータの値) がオーバーライドされます。サービスごとの BLOCKTIME パラメータ値は、DMCONFIG ファイルを使用してリモート サービスに設定することもできます。詳細については、「UBBCONFIG(5)」(SERVICES セクション) および「DMCONFIG(5)」(DM_IMPORT セクション) を参照してください。

SVCTIMEOUT パラメータとは異なり、BLOCKTIME パラメータはサービス アプリケーションを終了しません。代わりに、指定した時間が経過した後に、サービス要求の処理中にサーバが応答を受信しなかったことをクライアントに通知します。

注意 : tpsblktime(3c) および tpgblktime(3c) 関数を使用すると、トランザクションに関与しないブロックタイム要求を設定してブロックタイム値を取得することもできます。

 


ロード バランシングを有効にする

ロード バランシングを有効にするには、RESOURCES セクションの LDBAL パラメータを Y に設定します。実行するサービスには、LOAD パラメータの値に基づいてロード ファクタが割り当てられます。Oracle Tuxedo システムは、各サーバの負荷の合計をモニタします。各サービス要求は、負荷の合計が最も低いサーバにルーティングされます。ルーティング先のサーバの負荷合計は、要求されたサービスの LOAD ファクタ分だけ増加します。

負荷の情報は、サービス要求のルーティング元サイトにのみ保存されます。Oracle Tuxedo システムでは、分散アプリケーションのすべてのサイトに負荷の情報を常に伝播するのは非効率的です。このような環境でロード バランシングを行う場合、各サイトは、そのサイトで発生した負荷だけを認識し、必要に応じてロード バランシングを行います。つまり、各サイトは、指定されたサーバ (またはキュー) に関し、それぞれ異なる負荷の統計情報を持ちます。したがって、負荷が最も低いと見なされるサーバは、サイトごとに異なります。

ロード バランシングが無効であり、複数のサーバが同じサービスを提供する場合は、使用可能な最初のキューが要求を受け取ります。

LDBAL パラメータの特性

LDBAL パラメータには、以下の特性があります。

 


ルーティング基準名を定義する

データ依存型ルーティングを使用するときは、サービス用のルーティング基準を指定する必要があります。このような基準を指定するには、ROUTING パラメータを次のように設定します。

ROUTING=string_value

このパラメータが指定されないと、サービスはデータ依存型ルーティングを実行しません。

文字列の最大値は 15 文字です。サービスには、1 つ以上の ROUTING パラメータの値は割り当てられません。1 つのサービスに複数のエントリがあり、それらのエントリに異なる SRVGRP パラメータが含まれている場合でも、ROUTING の値はすべてのエントリで同じでなければなりません。

 


異なるサーバ グループに対してサービス パラメータを指定する

複数のグループに同じサービスを割り当てたり、異なるグループのサービス エントリに対して設定したさまざまなサービス固有のパラメータに異なる値を割り当てることができます。そのためには、SRVGRP パラメータにグループ固有の値を指定して、各グループのサービスに対して個別のエントリを作成してください。

 


サービスの優先順位を指定してデータ フローを制御する

PRIO パラメータを使用して、サービスの優先順位を割り当てることにより、アプリケーション内のデータ フローを有効に制御できます。PRIO には、0 ~ 100 の数値を指定する必要があります。数値が大きいほど割り当てられるサービスの優先順位も高くなります。優先順位の高いサービスは優先順位の低いサービスより先にキューから取り出されますが、システムは、10 回に 1 回ごとに FIFO 順序で要求をキューから取り出し、メッセージがキューで無制限に待機することがないようにしています。

たとえば、サーバ 1 はサービス A、B、および C を提供します。サービス A および B の優先順位は 50、サービス C の優先順位は 70 です。サービス C に対するサービス要求は、常に A または B に対する要求の前にキューから取り出されます。A および B に対する要求は、互いに等しくキューから取り出されます。

注意 : tpsprio() 呼び出しを使用すると、優先順位を動的に変更できます。

PRIO パラメータの特性

PRIO パラメータには、以下の特性があります。

優先順位の異なる SERVICES セクションの例

次の SERVICES セクションの例は、サービスに対する優先順位の割り当て方を示します。

*SERVICES
A SRVGRP=GRP1 PRIO=50 LOAD=60
A SRVGRP=GRP2 PRIO=70 LOAD=30

この例では、2 つのサーバ グループに対して異なるサービス固有のパラメータが割り当てられます。サーバ グループ GRP1 のサービス A には、優先順位 50、およびロード 60 が割り当てられ、サーバ グループ GRP2 のサービス A に優先順位 70、およびロード 30 が割り当てられます。

 


サービスの処理時間を指定する

サービスの処理にかかる最大時間を秒単位で指定するには、SVCTIMEOUT パラメータを次のように設定します。

SVCTIMEOUT=number

値は 0 以上でなければなりません。この値が 0 以外の場合は、サービスに対してタイムアウトが適用されることを示します。サービス要求を処理しているサーバは SIGKILL シグナルによって終了します。このパラメータのデフォルト値は 0 です。

 


コンフィグレーション ファイルの INTERFACES セクションの作成方法

注意 : このセクションは、Oracle Tuxedo CORBA 環境にのみ適用されます。

コンフィグレーション ファイルの INTERFACES セクションは、Oracle Tuxedo システムの CORBA 環境用のパラメータを定義するためのセクションです。このセクションでは、アプリケーションで使用される CORBA インタフェースに対する、アプリケーション全体のデフォルト パラメータを指定します。ファクトリベース ルーティングに参加する CORBA インタフェースに対しては、インタフェース名を定義し、Tuxedo CORBA 環境で各インタフェースに適用するルーティング基準の名前を指定します。ファクトリベース ルーティングは、プロセスを特定のサーバ グループに分散するための機能です。

ファクトリベース ルーティングを実装する場合、INTERFACES セクションだけでなく、ROUTING セクションでルーティング基準を定義し、GROUPS セクションでグループ名を定義する必要があります。関連パラメータとファクトリベース ルーティングの詳細については、この章の「コンフィグレーション ファイルの ROUTING セクションの作成方法」を参照してください。

INTERFACES セクションで CORBA インタフェースを指定する

アプリケーションで使用する CORBA インタフェース固有の情報は、コンフィグレーション ファイルの INTERFACES セクションで指定します。必須パラメータはありません。省略可能なパラメータが不要の場合、CORBA インタフェースを示す必要はありません。INTERFACES セクションには、以下の種類の情報が含まれます。

表 3-2 に、AUTOTRAN、FACTORYROUTING、LOAD、PRIO、SRVGRP、TRANTIME、および TIMEOUT パラメータの特性を示します。

表 3-2 INTERFACES セクションのパラメータの特性
パラメータ
特性
AUTOTRAN = {Y | N }
操作の呼び出しを受け取るときにトランザクションを自動的に開始する場合は、CORBA インタフェースごとに AUTOTRANY に設定します。AUTOTRAN=Y は、インタフェースがすでにトランザクション モードにある場合は無効です。デフォルト値は N です。
AUTOTRAN の設定が有効かどうかは、システム設計者が実装コンフィグレーション ファイル (ICF) またはサーバ記述ファイル (XML) でそのインタフェースに対して指定したトランザクション ポリシーによって異なります。このトランザクション ポリシーが、実行時に、関連する T_IFQUEUE MIB オブジェクトのトランザクション ポリシーの属性になります。この値が実際にアプリケーションの動作に影響するのは、システム設計者がトランザクション ポリシーを「optional」に指定した場合だけです。

注意 : このパラメータを正しく機能させるには、システム設計者とシステム管理者の間のコミュニケーションが重要です。プログラマが設定した ICF または XML パラメータを知らずにシステム管理者がこの値を Y に設定すると、実行時にパラメータが適切に動作しない可能性があります。

FACTORYROUTING = criterion-name
この CORBA インタフェースのファクトリベース ルーティングで使用するルーティング基準の名前を指定します。ファクトリベース ルーティングを要求しているインタフェースに対して FACTORYROUTING パラメータを指定する必要があります。
LOAD = number
CORBA インタフェースがシステムに与える相対的な負荷を示す、1 ~ 100 の任意の数です。この値は、このアプリケーションで使用される他の CORBA インタフェースに割り当てられた LOAD 値との関係で相対的に決まります。デフォルトは 50 です。この値は、Oracle Tuxedo システムが要求のルーティング先サーバを選択する際に使用されます。
PRIO = number
CORBA インタフェースのすべてのメソッドに対して、キューから取り出す優先順位を指定します。この値には、1 ~ 100 の値を指定します。100 は、優先順位が最も高いことを示します。デフォルト値は 50 です。
SRVGRP = server-group-name
SRVGRP を使用して、INTERFACES セクションのこの部分で定義されたパラメータを、指定したサーバ グループに適用します。この機能を使用すると、指定された CORBA インタフェースで、サーバ グループごとに異なるパラメータを定義することができます。
TRANTIME = number
AUTOTRANY に設定されている場合は、TRANTIME パラメータを設定する必要があります。これは、対象トランザクションに対するタイムアウト値 (秒単位) です。この値には、0 ~ 2,147,483,647 (231 - 1、つまり約 70 年) の値を指定します。0 は、トランザクションにタイムアウトが設定されていないことを示します。デフォルト値は 30 秒です。
TIMEOUT=number
この CORBA インタフェースでメソッドの処理に使用できる時間を秒単位で指定します。値は 0 以上でなければなりません。この値が 0 の場合は、インタフェースに対してタイムアウトが適用されないことを示します。タイムアウト メソッドにより、インタフェースに対してメソッドを処理するサーバが SIGKILL イベントと共に終了します。このため、インタフェースに対する処理に時間のかかるメソッドの場合は、タイムアウト値を指定することをお勧めします。

ファクトリ ルーティング基準を指定する

各 CORBA インタフェースに対し、INTERFACES セクションでインタフェースのルーティング基準を指定します。INTERFACES セクションでは、FACTORYROUTING 識別子を使用してルーティング基準を指定します。

University のサンプル

University Production サンプル アプリケーションでは、ファクトリベース ルーティングのコード作成方法を示しています (コード リスト 3-3 を参照)。このサンプルの UBBCONFIG ファイル (ubb_p.nt または ubb_p.mk) は、Oracle Tuxedo ソフトウェアのインストール ディレクトリに収められています。\samples\corba\university\production サブディレクトリを検索してください。

コード リスト 3-3 Production サンプルの INTERFACES セクション
*INTERFACES

"IDL:beasys.com/UniversityP/Registrar:1.0"
FACTORYROUTING = STU_ID

"IDL:beasys.com/BillingP/Teller:1.0"
FACTORYROUTING = ACT_NUM

上の例では、University Production サンプルの 2 つのインタフェースに、完全修飾されたインタフェース名が使用されています。FACTORYROUTING 識別子は、ルーティング値の名前を指定します。値はそれぞれ、STU_ID および ACT_NUM です。

INTERFACES FACTORYROUTING パラメータと ROUTING セクションの関連性については、「University Production サンプル アプリケーションの CORBA ファクトリベース ルーティング」を参照してください。

Bankapp のサンプル

コード リスト 3-4 は、サンプル アプリケーション Bankapp でのファクトリベース ルーティングの指定例を示しています。

コード リスト 3-4 Bankapp サンプルのファクトリベース ルーティング
*INTERFACES
"IDL:BankApp/Teller:1.0"
FACTORYROUTING=atmID
*ROUTING
atmID
TYPE = FACTORY
FIELD = "atmID"
FIELDTYPE = LONG
RANGES = "1-5:BANK_GROUP1,
6-10: BANK_GROUP2,
*:BANK_GROUP1

この例では、IDL:Bankapp/Teller インタフェースが、ROUTING セクションで定義された atmID という名前のファクトリベース ルーティング基準を使用しています。この例の ROUTING セクションでは、2 つのグループに処理を分散するように指定しています。atmID フィールドが 1 ~ 5 または 10 より大きい場合は、BANK_GROUP1 がアプリケーションで使用されるインタフェースを処理し、atmID が 6 ~ 10 の場合は、BANK_GROUP2 がアプリケーションで使用されるインタフェースを処理します。

ロード バランシングを有効にする

Oracle Tuxedo の CORBA 環境では、ロード バランシングは常に有効です。

各 CORBA インタフェースには、起動するたびに LOAD ファクタが割り当てられます。これで、各サーバ プロセスの実行結果として CORBA インタフェース全体にかかる負荷が追跡されます。各インタフェース要求は、負荷の合計が最も低いサーバにルーティングされます。ルーティング先のサーバの負荷は、ルーティングされた CORBA インタフェースのロード ファクタ分 (LOAD) だけ増加します。ロード バランシングが無効であり、複数のサーバが同じ CORBA インタフェースを提供する場合は、使用可能な最初のキューが要求を受け取ります。

Oracle Tuxedo CORBA 環境でのロード バランシングの詳細については、『Oracle Tuxedo CORBA アプリケーションのスケーリング、分散、およびチューニング』の「システム制御のロード バランシングの有効化」を参照してください。

Oracle Tuxedo のリリース 8.0 では、CORBA 環境におけるパラレル オブジェクトがサポートされるようになりました。これにより、ローカル ドメイン内の複数サーバ間でロード バランシングが可能になります。Oracle Tuxedo CORBA 環境のパラレル オブジェクトについては、『Oracle Tuxedo CORBA アプリケーションのスケーリング、分散、およびチューニング』の「パラレル オブジェクトの使用」を参照してください。

インタフェースの優先順位を指定してデータ フローを制御する

PRIO パラメータを使用してインタフェースの優先順位を割り当てることにより、Oracle Tuxedo のクライアントまたはサーバ アプリケーションのデータ フローを制御することができます。たとえば、サーバ 1 がインタフェース A、B、および C を提供し、インタフェース A と B の優先順位が 50、インタフェース C の優先順位が 70 であるとします。インタフェース C に対する要求は、常に A または B に対する要求より先にキューから取り出されます。A および B に対する要求がキューから取り出される優先順位は同等です。システムは、10 回に 1 回の割合で FIFO 順序で要求をキューから取り出し、メッセージがキューで無制限に待機しないようにします。

PRIO パラメータには、以下の特性があります。

サーバ グループごとに異なるインタフェース パラメータを指定する

ロード バランシングや優先順位など、インタフェース固有のパラメータは、サーバ グループごとに変えて設定することができます。この場合、SRVGRP パラメータに指定したグループごとに、インタフェースの設定を繰り返す必要があります。

 


コンフィグレーション ファイルの ROUTING セクションの作成方法

UBBCONFIGROUTING セクションでは、SERVICES セクション (ATMI のデータ依存型ルーティングの場合) や INTERFACES セクション (CORBA のファクトリベース ルーティングの場合) で指定されたルーティング基準を詳細に定義することができます。

注意 : CORBA 環境でのファクトリベース ルーティングのコンフィグレーションについては、『Oracle Tuxedo CORBA アプリケーションのスケーリング、分散、およびチューニング』を参照してください。

次の表では、ROUTING セクションの各パラメータを説明し、参照先へのリンクやその他の情報を示します。

ROUTING セクションで指定する情報 (省略可能)
パラメータ (必須/省略可能)
参照先 (クリックするとリンク先にジャンプ)
ルーティング フィールドの範囲および関連するサーバ グループ。
RANGES (必須)
この値は、最大 15 文字の文字列。
ATMI の場合は、データ依存型ルーティング用に SERVICES セクションの ROUTING パラメータで指定したルーティング基準名になります。
CORBA の場合は、ファクトリベース ルーティング用に、INTERFACES セクションの FACTORYROUTING パラメータで指定したルーティング基準名になります。
criterion_name (必須)
 
ルーティングのタイプ。
ATMI の場合、デフォルトは TYPE=SERVICE になり、Tuxedo ATMI 環境で使用される既存の UBBCONFIG ファイルが引き続き正常に動作することが確認されます。
CORBA では、CORBA インタフェースに対してファクトリベース ルーティングを実装する場合は TYPE=FACTORY を使用します。
TYPE
 
ルーティング フィールドの名前。値は、FML バッファ、XML の要素または要素の属性、FML フィールド テーブルで指定された VIEW フィールド名 (FLDTBLDIR および FIELDTBLS 環境変数を使用)、または FML の VIEW テーブル (VIEWDIR および VIEWFILES 環境変数を使用) になります。この情報は、メッセージの送信時に、データ依存型ルーティングに関連するフィールド値を取得するために使用されます。
CORBA のファクトリベース ルーティングでは、この値によってルーティング フィールドの名前が指定されます。最大 30 文字まで指定できます。この値は、そのインタフェースの TP::create_object_reference (C++) または com.beasys.Tobj.TP::create_object_reference (Java) に対するファクトリの呼び出しで、ファクトリベース ルーティングに指定されたフィールド名と対応していなければなりません。
FIELD (必須)
このルーティング エントリで有効なデータ バッファのタイプとサブタイプのリスト。このパラメータには、最大 32 のタイプとサブタイプの組み合わせを最大 256 文字で指定できます。
BUFTYPE (必須)

ROUTING セクションの例

以下は、コンフィグレーション ファイルの ROUTING セクションの例です。

BRNCH FIELD=B_FLD 
RANGES="0-2:DBG1,3-5:DBG2,6-9:DBG3"
BUFTYPE="FML"

 


ルーティング バッファ フィールドとフィールド タイプを定義する

次の表は、ルーティング バッファ フィールドとフィールド タイプの説明です。

パラメータ
説明
FIELD
ルーティングが行われるバッファ フィールドの名前。30 文字まで使用できます。
Oracle Tuxedo のデータ依存型ルーティングでは、このパラメータの値は、FML フィールドの名前 (FML バッファ)、XML の要素または属性、FML フィールド テーブルで指定された VIEW フィールド名 (FLDTBLDIR および FIELDTBLS 環境変数を使用)、FML の VIEW テーブル (VIEWDIR および VIEWFILES 環境変数を使用) のいずれかになります。この情報は、メッセージの処理時に、データ依存型ルーティングに関連するフィールド値を取得するために使用されます。FML32 バッファ内のフィールドがルーティングに使用される場合は、8191 以下の数値をフィールド番号として指定します。
XML 文書のルーティングでは、FIELD 構文には、ルーティング要素のタイプ (または名前) またはルーティング要素の属性名が含まれます。FIELD パラメータは、次の構文で定義します。
root_element[/child_element][/child_element][/.. .][/@attribute_name]
要素は、XML 文書またはデータグラムの要素のタイプ (要素名) または要素の属性名と見なされます。この情報は、文書またはデータグラムの送信時に、データ依存型ルーティングに関連する要素の内容または属性値を取得するために使用されます。インデックスはサポートされないので、Oracle Tuxedo システムは、データ依存型ルーティングで XML バッファを処理する際に、与えられた要素タイプの最初のオカレンスだけを認識します。
CORBA のファクトリベース ルーティングでは、この値によってルーティング フィールドの名前が指定されます。最大 30 文字まで指定できます。この値は、そのインタフェースの
TP::create_object_reference (C++) または com.beasys.Tobj.TP::create_object_reference (Java) に対するファクトリの呼び出しで、ファクトリベース ルーティングに指定されたフィールド名と対応していなければなりません。
FIELDTYPE
このパラメータは、XML バッファをルーティングする場合にのみ使用されます。このパラメータは、FIELD で指定されたルーティング フィールドのデータ型を示します。構文は次のとおりです。
FIELDTYPE=type
type は、stringcharshortlongfloat、または double のいずれかです。
ルーティング フィールドのデフォルトのデータ型は string です。

 


範囲の基準を指定する

RANGES パラメータでは、フィールド値を次のようにグループ名にマップできます。

RANGES=”[val1[-val2]:group1] [,val3[-val4]:group2]...[,*:groupn]”

val1val2 などはフィールドの値であり、groupn はグループ名または任意のグループが選択されることを示すワイルドカード文字 (*) です。最後に val の代わりに指定されている * は「catch-all」、つまり、データが指定された範囲内にない場合はデフォルトのグループに割り当てられることを示します。また、データが範囲内にあっても、その範囲のエントリに関連する有効なサーバがグループ内にない場合、サービス要求は、ワイルドカード「*」で指定したデフォルトのグループに転送されます。val1 には、以下の値を使用できます。

範囲はいくつでも指定できますが、ルーティング情報は共有メモリに保存されるため、システム リソースを消費します。

注意 : 範囲は重複してもかまいません。ただし、値が 2 つの範囲に当てはまる場合、その値は最初のグループにマップされます。たとえば、RANGESRANGES=”0-5:Group1,3-5:Group2" に指定されている場合、4Group1 にルーティングされます。

 


バッファ タイプを定義する

Oracle Tuxedo のデータ依存型ルーティングでは、BUFTYPE パラメータを使用して、バッファ タイプを指定できます。このパラメータは、特定のバッファ タイプとサブタイプに対してルーティング基準を適用するため、SERVICES セクションの対応するパラメータと似ています。ルーティングに使用できるのは、FMLXML、および VIEW タイプだけです。構文は、SERVICES セクションと同じく、type:subtype[,subtype] をセミコロンで区切って示します。ルーティング基準には 1 つのタイプしか指定できません。この制限により、サービスのルーティング時に受け付けられるバッファ タイプの数が限定されます。

 


University Production サンプル アプリケーションの CORBA ファクトリベース ルーティング

CORBA University Production サンプル アプリケーションでは、Oracle Tuxedo でファクトリベース ルーティングを実装する方法を示します。このサンプルの UBBCONFIG ファイル (ubb_p.nt または ubb_p.mk) は、Oracle Tuxedo ソフトウェアのインストール ディレクトリに収められています。\samples\corba\university\production サブディレクトリを検索してください。

ubb_b.nt コンフィグレーション ファイルから抜粋した以下の INTERFACES、ROUTING、および GROUPS セクションは、Oracle Tuxedo の CORBA アプリケーションでファクトリベース ルーティングを実装する方法を示しています。

INTERFACES セクションには、ファクトリベース ルーティングを有効にするインタフェースの名前のリストが示されます。各インタフェースに対し、このセクションでインタフェースのルーティング基準を指定します。このセクションでは、コード リスト 3-5 の例に示すように、FACTORYROUTING という識別子を使用してルーティング基準を指定します。

コード リスト 3-5 Production サンプルの INTERFACES セクション
*INTERFACES

"IDL:beasys.com/UniversityP/Registrar:1.0"
FACTORYROUTING = STU_ID

"IDL:beasys.com/BillingP/Teller:1.0"
FACTORYROUTING = ACT_NUM

上の例では、ファクトリベース ルーティングを使用する Production サンプルで、2 つのインタフェースに完全修飾されたインタフェース名が使用されています。FACTORYROUTING 識別子は、ルーティング値の名前を指定します。値はそれぞれ、STU_ID および ACT_NUM です。

ROUTING セクションでは、ルーティング値ごとに以下のデータを指定します。

コード リスト 3-6 は、Production サンプル アプリケーションで使用される UBBCONFIG ファイルの ROUTING セクションを示しています。

コード リスト 3-6 Production サンプルの ROUTING セクション
*ROUTING

STU_ID
FIELD = "student_id"
TYPE = FACTORY
FIELDTYPE = LONG
RANGES = "100001-100005:ORA_GRP1,100006-100010:ORA_GRP2"

ACT_NUM
FIELD = "account_number"
TYPE = FACTORY
FIELDTYPE = LONG
RANGES = "200010-200014:APP_GRP1,200015-200019:APP_GRP2"

上の例では、ID が特定の範囲に含まれる学生の Registrar オブジェクトが 1 つのサーバ グループに、別の範囲に含まれる学生の Registrar オブジェクトが別のグループにインスタンス化されています。同様に、特定の範囲に含まれる口座の Teller オブジェクトが 1 つのサーバ グループに、別の範囲に含まれる口座の Teller オブジェクトが別のグループにインスタンス化されています。

UBBCONFIG ファイルの ROUTING セクションで RANGES 識別子によって指定されたグループを、識別してコンフィグレーションする必要があります。たとえば、Production サンプルでは、ORA_GRP1ORA_GRP2APP_GRP1、および APP_GRP2 の 4 つのグループが指定されていますが、ここでこれらのグループをコンフィグレーションし、実行するマシンを識別する必要があります。

コード リスト 3-7 は、Production サンプルの UBBCONFIG ファイルにある GROUPS セクションの例を示しています。GROUPS セクションに列挙されている名前が、ROUTING セクションに指定されているグループ名とどのように一致するかに注目してください。この点が、ファクトリベース ルーティングの正常な動作に不可欠です。さらに、アプリケーションでグループをコンフィグレーションする方法に関する何らかの変更も、ROUTING セクションに反映される必要があります。Oracle Tuxedo ソフトウェアに収録されている Production サンプルは、1 台のマシンで実行するようにコンフィグレーションされていますが、複数のマシンで実行するようにコンフィグレーションすることもできます。

コード リスト 3-7 Production サンプルの GROUPS セクション
*GROUPS

APP_GRP1
LMID = SITE1
GRPNO = 2
TMSNAME = TMS

APP_GRP2
LMID = SITE1
GRPNO = 3
TMSNAME = TMS

ORA_GRP1
LMID = SITE1
GRPNO = 4
OPENINFO = "ORACLE_XA:Oracle_XA+Acc=P/scott/tiger+SesTm=100+LogDir=.+MaxCur=5"
   CLOSEINFO = ""
TMSNAME = "TMS_ORA"

ORA_GRP2
LMID = SITE1
GRPNO = 5
OPENINFO = "ORACLE_XA:Oracle_XA+Acc=P/scott/tiger+SesTm=100+LogDir=.+MaxCur=5"

CLOSEINFO = ""
TMSNAME = "TMS_ORA"

 


Bankapp サンプル アプリケーションの CORBA ファクトリベース ルーティング

コード リスト 3-8 は、INTERFACES セクションを使用して Bankapp サンプル アプリケーションを拡張し、ファクトリベース ルーティングを使用する方法を示しています。Oracle Tuxedo ソフトウェアに収録されているサンプル アプリケーションでは、以下のパラメータは設定されていません。

コード リスト 3-8 Bankapp サンプルの INTERFACES セクション
*INTERFACES
"IDL:BankApp/Teller:1.0"
FACTORYROUTING=atmID
*ROUTING
atmID
TYPE = FACTORY
FIELD = "atmID"
FIELDTYPE = LONG
RANGES = "1-5:BANK_GROUP1,
6-10: BANK_GROUP2,
*:BANK_GROUP1
*GROUPS
SYS_GRP
LMID = SITE1
GRPNO = 1
BANK_GROUP1
LMID = SITE1
GRPNO = 2
BANK_GROUP2
LMID = SITE1
GRPNO = 3

この例では、IDL:Bankapp/Teller インタフェースが、ROUTING セクションで定義された atmID という名前のファクトリベース ルーティング基準を使用しています。この例では、以下の 2 つのサーバ グループに処理が分散されます。

 


スレッドを利用する Oracle Tuxedo システムのコンフィグレーション方法

マルチコンテキスト化されたアプリケーションをコンフィグレーションするには、UBBCONFIG ファイルを通常どおりに編集し、アプリケーションに必要な次の表のパラメータを追加します。編集には、テキスト エディタまたは Oracle Tuxedo Administration Console を使用します。

表 3-3 スレッドを使用するコンフィグレーション ファイルのパラメータの設定
セクション
パラメータ
注意事項
RESOURCES
MAXACCESSERS
省略可能なパラメータ。ただし、50 アクセサ (デフォルト値) より大きい値を指定する必要があります。
ライセンスの制限のため、マルチコンテキスト化されたクライアントの各コンテキストは個別にカウントされます。
NOTIFY
省略可能なパラメータ。非請求通知に適用するデフォルトの方法を定義します。マルチコンテキスト化されたアプリケーションの有効値は、次のとおりです。
  • DIPIN
  • THREAD
  • IGNORE
MACHINES
MAXACCESSERS
省略可能なパラメータ。ただし、50 アクセサ (デフォルト値) より大きい値を指定する必要があります。
ライセンスの制限のため、マルチコンテキスト化されたクライアントの各コンテキストは個別にカウントされます。
MAXWSCLIENTS
省略可能なパラメータ。
マルチコンテキスト化されたワークステーション クライアントの各コンテキストは、ライセンス制限のため、個別にカウントされます。デフォルト値は 0 であるため、ワークステーション クライアントが定義されているマシンを介してシステムにアクセスする場合は、このパラメータを設定する必要があります
SERVERS
MINDISPATCHTHREADS
省略可能なパラメータ。
MAXDISPATCHTHREADS
マルチスレッド化されたサーバの必須パラメータ。
既存のサーバをマルチスレッド化する場合、経験のあるプログラマは、サーバのソース コードがスレッドセーフな方法で作成されているかどうかを検証しなければなりません。つまり、コンフィグレーション ファイルの MAXDISPATCHTHREADS の値を増やすだけで、静的変数でシングルスレッド化されたサーバをマルチスレッド化されたサーバに変換することはできません。このようなサーバは、マルチスレッド用として作成する必要があります。
THREADSTACKSIZE
省略可能なパラメータ。
サーバ ディスパッチ スレッドに対してサイズの大きいスタックが必要な場合に設定します。
デフォルト値は 0 です。ほとんどのアプリケーションでは、デフォルト値で十分です。オペレーティング システムに 0 が渡されると、オペレーティング システムに設定されているデフォルト値が呼び出されます。

 


コンフィグレーション ファイルのコンパイル方法

コンフィグレーション ファイルのコンパイルとは、テキスト形式の UBBCONFIG ファイルを、バイナリ形式の TUXCONFIG ファイルに変換することです。コンフィグレーション ファイルをコンパイルするには、tmloadcf コマンドを実行します。tmloadcf により UBBCONFIG ファイルが解析され、バイナリ形式のファイルがロードされます。

tmloadcf は、ファイル (UBBCONFIG の構文に記述された標準入力) を読み取って構文をチェックし、成功すると、バイナリ形式のコンフィグレーション ファイルである TUXCONFIG ファイルをロードします。TUXCONFIG 環境変数および TUXOFFSET 環境変数 (省略可能) により、TUXCONFIG ファイルとオフセットが指定され、情報はこの場所に格納されます。tmloadcf は、-c または -n オプションが指定されていない限り、UBBCONFIG ファイルの RESOURCES セクションで指定されている MASTER マシンでのみ実行できます。

注意 : UBBCONFIG ファイルの RESOURCES セクションに UID が指定されている場合、この値は、tmloadcf を実行する担当者のユーザ識別子 (UID) と同じでなければなりません。
注意 : TUXCONFIG 環境変数に指定されたパス名は、UBBCONFIG ファイルの MACHINES セクションに指定されている TUXCONFIG パラメータの値と完全に一致しなければなりません (大文字/小文字の区別も含む)。パス名が一致していない場合、tmloadcf(1) は正常に実行されません。

  ページの先頭       前  次