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

     前  次    新規ウィンドウで目次を開く  新規ウィンドウで索引を開く  PDFとして表示 - 新規ウィンドウ  Adobe Readerを取得 - 新規ウィンドウ
コンテンツはここから始まります

構成ファイルの作成

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

 


構成ファイルの作成方法

構成ファイルの要件は、アプリケーションのニーズによって決まります。いくつかのタイプの構成を次に説明します。

関連項目

 


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アプリケーション用の構成ファイルを作成する方法については、CORBAアプリケーションのスケーリング、分散およびチューニングを参照してください。

次の図のいずれかの領域をクリックして、その領域で指定されているセクションの作成方法を参照することもできます。

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

 


複数のドメインにまたがるアプリケーション用の構成ファイル

複数ドメインの構成では、参加しているドメインごとに2つの構成ファイルを作成する必要があります。

2つのドメイン(たとえば、ローカル・ドメインのlappとリモート・ドメインのrapp)から構成されるアプリケーションでは、次のタスクが必要です。

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

図3-1に、複数のドメインにまたがるサンプル・アプリケーションの構成タスクを示します。

図3-1 複数のドメインにまたがるサンプル・アプリケーションの構成タスク

複数のドメインにまたがるサンプル・アプリケーションの構成タスク

図3-2は、2つのドメインにまたがるアプリケーションの構成に必要なUBBCONFIGファイルとDMCONFIGファイルのセクションを示しています。一方のドメインがローカル・ドメインを表し、もう一方のドメインがリモート・ドメインを表しています。

次の図のいずれかの領域をクリックすると、構成ファイルのそのセクションの作成手順が表示されます。

図3-2 複数のドメインにまたがるアプリケーションの構成

複数のドメインにまたがるアプリケーションの構成

関連項目

 


構成ファイルのRESOURCESセクションの作成方法

構成ファイルの最初のセクションは、RESOURCESセクションである必要があります。このセクションで定義されるパラメータは、アプリケーション全体を制御し、システム全体のデフォルトとして機能します。ただし、MACHINESセクションに他の値を割り当てることで、RESOURCESパラメータの値をマシンごとにオーバーライドできます。

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

表3-1 説明、および参照ページと追加情報へのリンク
RESOURCESセクションで指定する情報
パラメータ(必須/省略可能)
参照先(クリックするとリンク先にジャンプ)
プロセス間通信(IPC)リソースの一意のアドレス
IPCKEY (必須)
共有メモリー・アドレス
セキュリティ・アクセス
UIDGIDおよびPERM(オプション)
掲示板に同時に接続できるプロセスの最大数
MAXACCESSERS (オプション)
IPCリソースの上限値
掲示板のサーバー表エントリの最大数
MAXSERVERS (オプション)
IPCリソースの上限値
掲示板のサービス表エントリの最大数
MAXSERVICES (オプション)
IPCリソースの上限値
CORBAインタフェースの最大数
MAXINTERFACES(オプション)
IPCリソースの上限値
CORBAオブジェクトの最大数
MAXOBJECTS (オプション)
IPCリソースの上限値
起動、停止およびその他の管理タスクの実行時の特別掲示板連絡(DBBL)の場所
MASTER (必須)
マスター・プロセッサ
掲示板アーキテクチャ
MODELSHMまたはMP、およびLAN またはMIGRATEオプション(必須)
セキュリティ・レベル
SECURITYAUTHSVC(オプション)
セキュリティ・レベル
ID確認のためのプロセスのプリンシパル名、プリンシパル・ユーザーの秘密鍵の場所、およびパスワードを格納する環境変数。
SEC_PRINCIPAL_NAMESEC_PRINCIPAL_LOCATIONおよびSEC_PRINCIPAL_PASSVAR
セキュリティ属性
クライアントが非請求メッセージを検出するデフォルトの方法
NOTIFYUSIGNAL(オプション)
非請求通知
共有メモリーの保護
SYSTEM_ACCESS(オプション)
共有メモリー保護
サーバーのロード・バランシングが有効になっているかどうか
LDBAL(オプション)
バッファのタイプとサブタイプの最大数
MAXBUFTYPE、MAXBUFSTYPES(オプション)
バッファ・タイプ/サブタイプ
マシンで許可されている会話の最大数
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に設定されます。グローバル共有メモリーのないマルチプロセッサとネットワーク化されたアプリケーションの場合は、MPMODEL値が使用されます。これは必須パラメータです。

OPTIONSパラメータは、アプリケーション構成オプションのカンマ区切りリストです。使用可能な2つのオプションは、(ネットワーク構成を示す)LANと(アプリケーション・サーバー移行が許可されることを示す)MIGRATEです。

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

表3-2に、MODELおよびOPTIONSパラメータの特性を示します。

表3-2 MODELおよびOPTIONSパラメータの特性
パラメータ
説明
MODEL
これは必須パラメータです。値SHMはグローバル共有メモリーのある1台のマシンを示します。値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リソースが消費されます。過度にサイズが小さい場合は、限界値を超えると処理が失敗します。tmloadcf -cコマンドを使用し、特定のアプリケーションに必要なIPCリソースの最大量を検索できます。(『Oracle 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の増加によるコストは、クライアントまたはサーバー・プロセス(アクセサ - 次の注意を参照)のサイトあたり1つの追加セマフォです。MAXACCESSERS値によって追加されるオーバーヘッドに加えて、システム・プロセスには小さい固定のセマフォ・オーバーヘッドがあります。MAXSERVERSMAXSERVICESの増加のコストは、サーバー、サービス、クライアント・エントリそれぞれに保持される少量の共有メモリーです。これらのパラメータに関する一般的な概念は、アプリケーションの将来の拡張に対応することです。MAXACCESSERSを精査することの方が重要です。

注意: システムは、アクセス・スロットごとに1つのセマフォを掲示板に割り当てます。セマフォは、複数のプロセスが掲示板内の同じ共有メモリーに同時にアクセスすることを防ぐラッチ回路です。

リリース7.1より前のOracle Tuxedoでは、アプリケーションのMAXACCESSERSパラメータとMAXSERVERSパラメータの両方が、ユーザー・ライセンス・チェック・スキームに関与しました。具体的には、そのマシンのMAXACCESSERSの数と、アプリケーションですでに実行されている1台以上のマシンのMAXACCESSERSの数の合計が、MAXSERVERSの数とアプリケーションのユーザー・ライセンス数の合計を超える場合、マシンの起動は許可されません。したがって、アプリケーションのMAXACCESSERSの合計数は、MAXSERVERSの数とアプリケーションのユーザー・ライセンス数の合計以下である必要があります。

Oracle Tuxedoリリース7.1以降のユーザー・ライセンス・チェック・スキームでは、チェックの実行時に、アプリケーションのユーザー・ライセンス数とアプリケーションで現在使用されているライセンス数の2つの要因のみ考慮されます。すべてのユーザー・ライセンスが使用中の場合、新規クライアントはアプリケーションに参加できません。

設定例

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

*RESOURCES
MAXACCESSERS 75
MAXSERVERS 40
MAXSERVICES 55

 


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

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

ロード・バランシングを使用する必要があるかどうかを指定するには、LDBALパラメータをY(Yes)またはN(No)に設定します。デフォルトでは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の2つの値を指定する必要があります。

MASTERパラメータの特性

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

設定例

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

*RESOURCES
MASTER SITE1, SITE2

 


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

構成ネットワーク・グループの最大数を指定するには、MAXNETGROUPSパラメータを設定します。値には、 1 以上 8192 未満を指定します。デフォルトは8です。このパラメータは省略できます。

 


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

定期的に(デフォルトでは120秒ごとに)掲示板連絡(BBL)はマシン上のサーバーのサニティをチェックします。ただし、SCANUNITパラメータとSANITYSCANパラメータを設定することで、これらのチェックの頻度を変更できます。

SANITYSCANパラメータを使用して、サーバーのサニティ・チェック間のSCANUNITの経過数を指定します。現在のデフォルトは、SANITYSCAN * SCANUNITが約120秒になるように設定されています。

また、BLOCKTIMEパラメータを設定することで、ブロッキング・メッセージ、トランザクションおよびその他のシステム・アクティビティのタイムアウト期間数を指定できます。

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

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

パラメータ
説明
SCANUNIT
チェック間隔とタイムアウトのきめ細かく制御します。SCANUNITは、0から60秒の間の2または5の倍数でなければなりません。
例: SCANUNIT 10
デフォルトは10です。
SANITYSCAN
サーバーのサニティ・チェック間のスキャン単位の経過数を指定します。
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秒を超えてブロックされることはありません。10のSCANUNITと3のSANITYSCANにより、BBLスキャンの前に10秒のブロックが3回、つまり30秒の経過が許可されます。

*RESOURCES
SCANUNIT 10
SANITYSCAN 3
BLOCKTIME 1

 


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

UIDGIDPERMの3つのパラメータを設定することで、Oracle Tuxedo管理機能へのアクセスを認可された管理者のみに制限できます。

MACHINESセクションで指定された値をオーバーライドしていないかぎり、UIDおよびGIDのデフォルトは、それぞれ構成に対してtmloadcf(1)コマンドを実行するユーザーのユーザーIDとグループIDです。

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構造を無認可アクセスから保護する最初のレベルを提供します。本番アプリケーションではこれらの値を指定する必要があります。
デフォルトは0666で、すべてに対する読取り/書込みアクセス権を付与します。
例: PERM=0660

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

 


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

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

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

パラメータ
説明
SECURITY
アプリケーションへの参加にパスワードを要求するセキュリティ・レベル。指定できる値は、NONE(デフォルト)、APP_PWUSER_AUTHArrow symbolACLおよび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
SIGUSR1SIGUSR2の値は、クライアントにこのタイプのシグナルを通知することを意味します。
デフォルトはSIGUSR2です
例: USIGNAL SIGUSR1

 


構成ファイルのMACHINESセクションの作成方法

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

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

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

表3-3 構成ファイルの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 (オプション)
IPCリソースの上限値
CORBA環境で、このプロセッサのアクティブ・オブジェクト表に同時に対応できるCORBAオブジェクトの最大数。
MAXOBJECTS (オプション)
IPCリソースの上限値
特定のマシンが同時に関与できるグローバル・トランザクションの最大数。
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パラメータを使用して、あるマシンから別のマシンにサービス・リクエストを送信するコストの計算時に加算する負荷を指定できます。この値は0以上、32,768未満の数値にする必要があります。デフォルトは0です。

関連項目

 


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

最初に、アドレス部分にMASTERマシンのアドレスを定義します(これはMACHINESセクション・エントリの基礎になります)。エントリの他のすべてのパラメータは、このアドレスで指定されたマシンを記述します。UNIXシステムでuname -nを呼び出すことで、出力する値にアドレスを設定する必要があります。Windowsシステムでは、「ネットワーク」コントロール パネルの「ネットワークID」ダイアログで「コンピュータ名」の値を参照してください。

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は、次の特性を持つオプションのパラメータです。

環境変数の設定の詳細は、『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』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にマップするだけです。分散トランザクション・システムをサポートする柔軟性も備えられています。

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

表3-4 構成ファイルのGROUPSセクションの作成方法
GROUPSセクションで指定する情報
パラメータ(必須/省略可能)
参照先(クリックするとリンク先にジャンプ)
グループの論理名。
GROUPNAME (必須)
このサーバー・グループに関連付けられたグループ番号。0より大きく、30000未満の番号を指定します。番号は、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 : 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(『Oracle 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セクションを構成します。

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

表3-5 構成ファイルの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アドレスを含む文字配列に変換されます。

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

 


構成ファイルのNETGROUPSセクションの作成方法

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

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

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

表3-6 構成ファイルの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というプライベート・グループにも属しています。図3-3は、ネットワーク内のアドレスを持つマシンAからEを示します。

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

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

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

表3-7 マシンと、対応するグループのアドレス
マシン
マシンが属するグループのアドレス
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のシステム管理者は、リスト3-1に示すように、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システムでサポートされるコマンドライン・オプションについては、『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』の「servopts(5)」を参照してください。

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

表3-8 構成ファイルの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のときに使用される個別のディスパッチ・スレッドは、パラメータで指定した数には含まれません。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 (オプション)
LAUTHSVR(5)

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時間)が指定されます。1つのGRACE期間が経過したら、次の期間が始まります。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
# By default, restart a server if it crashes, up to 5 times
# in 24 hours.
#
DEFAULT:
RESTART = Y
MAXGEN = 5

# Start the Oracle Tuxedo System EventBroker. This event broker
# must be started before any servers providing the
# NameManager Service
#
TMSYSEVT
SRVGRP = SYS_GRP
SRVID = 1

# TMFFNAME is a Oracle Tuxedo CORBA provided server that
# runs the NameManager and FactoryFinder services.

# The NameManager service is a Oracle Tuxedo CORBA-specific
# service that maintains a mapping of application-supplied names
# to object references.

# Start the NameManager Service (-N option). This name
# manager is being started as a Master (-M option).
#
TMFFNAME
SRVGRP = SYS_GRP
SRVID = 2
CLOPT = "-A -- -N -M"

# Start a slave NameManager Service
#
TMFFNAME
SRVGRP = SYS_GRP
SRVID = 3
CLOPT = "-A -- -N"

# Start the FactoryFinder (-F) service
#
TMFFNAME
SRVGRP = SYS_GRP
SRVID = 4
CLOPT = "-A -- -F"

# Start the interface repository server
#
TMIFRSVR
SRVGRP = SYS_GRP
SRVID = 5

# Start the university server
#
univb_server
SRVGRP = ORA_GRP
SRVID = 6
RESTART = N

# Start the listener for IIOP clients
#
# Specify the host name of your server machine as
# well as the port. A typical port number is 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)によって組み込まれたすべてのサービスを通知するようサーバーに指示します。表3-9は、使用可能なオプションの一部です。

表3-9 サーバーのコマンドライン・オプションの指定
オプション
目的
-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()オプションについては、『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』の「servopts(5)」を参照してください。

CLOPTパラメータの特性

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

CLOPT=”-A -- -T 10"

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

関連項目

 


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

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

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

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

環境変数の設定の詳細は、『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』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は0より大きい必要があり、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セクションの値をオーバーライドします。この場合、このパラメータは無視されます。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にインストールされています。

次の表に、SSLパラメータの特性をリストします。

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

 


構成ファイルのSERVICESセクションの作成方法

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

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

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

表3-10 構成ファイルの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, group %TA_SRVGRP, id %TA_SRVID server killed due to a service timeout 

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

 


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

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

UBBCONFIGファイルのSERVICESセクションのBLOCKTIMEパラメータを使用すると、nontransactionalの個々のサービスに対してブロック・タイム値を秒単位で指定できます。指定したサービスに関してデフォルトの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セクションには、以下の種類の情報が含まれます。

次の表に、AUTOTRAN、FACTORYROUTING、LOAD、PRIO、SRVGRP、TRANTIME、TIMEOUTの各パラメータの特性をリストします。

パラメータ
特性
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パラメータを設定する必要があります(これは、計算するトランザクションに対するタイムアウト値(秒)です)。値はゼロ以上、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つのグループに処理を分散するように指定しています。BANK_GROUP1は、atmIDフィールドが1から5の間か、または10を越える場合に、アプリケーションで使用されるインタフェースを処理します。BANK_GROUP2は、atmIDフィールドが6から10 (10を含む)の間にある場合に、アプリケーションで使用されるインタフェースを処理します。

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

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

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

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

Oracle Tuxedoのリリース8.0では、CORBA環境におけるパラレル・オブジェクトがサポートされるようになり、ローカル・ドメイン内の複数サーバー間でロード・バランシングが可能になります。Oracle Tuxedo CORBA環境のパラレル・オブジェクトについては、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環境でのファクトリ・ベース・ルーティングの構成については、『CORBAアプリケーションのスケーリング、分散およびチューニング』を参照してください。

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

表3-11 構成ファイルの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ファイルを通常どおりに編集し、アプリケーションに必要な表3-12のパラメータを追加します。編集には、テキスト・エディタまたはOracle Tuxedo管理コンソールを使用します。

表3-12 スレッドを使用する構成ファイルのパラメータの設定
セクション
パラメータ
注意事項
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)は正常に実行されません。

  先頭に戻る       前  次