目次 前 次 PDF


構成ファイルの作成

構成ファイルの作成
このトピックには次の項が含まれます:
構成ファイルの作成方法
構成ファイルの要件は、アプリケーションのニーズによって決まります。次に、様々なタイプの構成手順を示します。
関連項目
『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』UBBCONFIG(5)に関する項
1台のマシンで構成するアプリケーション用の構成ファイル
1台のマシンによる構成では、構成ファイルの次のセクションを作成する必要があります。各タスクをクリックすると、そのタスクの実行に関する説明が表示されます。
1.
2.
3.
4.
5.
6.
7.
次の図のいずれかの領域をクリックして、その領域で指定されているセクションの作成方法を参照することもできます。
複数のマシンで構成(分散)するアプリケーション用の構成ファイル
分散型のATMIアプリケーションに対しては、構成ファイルの次のセクションを作成する必要があります。次のいずれかのタスクをクリックすると、そのタスクの実行に関する説明が表示されます。
1.
2.
3.
4.
5.
6.
7.
8.
注意:
Oracle Tuxedoシステムで分散型のCORBAアプリケーション用の構成ファイルを作成する方法の詳細は、『CORBAアプリケーションのスケーリング、配布およびチューニング』ガイドを参照してください。
次の図のいずれかの領域をクリックして、その領域で指定されているセクションの作成方法を参照することもできます。
複数のドメインにまたがるアプリケーション用の構成ファイル
複数ドメインの構成では、参加しているドメインごとに2つの構成ファイルを作成する必要があります。
UBBCONFIG - アプリケーション構成ファイル
DMCONFIG - ドメイン構成ファイル
2つのドメイン(たとえば、ローカル・ドメインのlappとリモート・ドメインのrapp)から構成されるアプリケーションでは、次のタスクが必要です。
各作業をクリックすると、その作業を行う手順が表示されます。
図3-1に、複数のドメインにまたがるサンプル・アプリケーションの構成タスクを示します。
図3-1 複数のドメインにまたがるサンプル・アプリケーションの構成タスク
図3-2に、2つのドメインにまたがるアプリケーションの構成に必要なUBBCONFIGファイルとDMCONFIGファイルのセクションを示します。一方のドメインがローカル・ドメインを表し、もう一方のドメインがリモート・ドメインを表しています。
次の図のいずれかの領域をクリックすると、構成ファイルのそのセクションの作成手順が表示されます。
図3-2 複数のドメインにまたがるアプリケーションの構成
関連項目
『Oracle Tuxedo Domainsコンポーネントの使用』Domainsに関する項
『Oracle Tuxedo Domainsコンポーネントの使用』ATMI Domainsの計画と構成に関する項
『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』DMCONFIG(5)に関する項
構成ファイルのRESOURCESセクションの作成方法
すべての構成ファイルの最初のセクションは、RESOURCESセクションである必要があります。このセクションで定義されるパラメータは、アプリケーション全体を制御し、システム全体のデフォルトとして機能します。ただし、MACHINESセクションに他の値を割り当てることで、RESOURCESパラメータの値をマシンごとにオーバーライドできます。
表3-1に、RESOURCESセクションの各パラメータの説明を示し、リファレンス・ページへのリンクや追加情報を示します。
 
IPCKEY (必須)
UIDGIDおよびPERM (オプション)
MAXACCESSERS (オプション)
MAXSERVERS (オプション)
MAXSERVICES (オプション)
MAXINTERFACES (オプション)
MAXOBJECTS (オプション)
MASTER (必須)
MODELSHMまたはMP、およびLANまたはMIGRATEオプション(必須)
SECURITYAUTHSVC (オプション)
SEC_PRINCIPAL_NAMESEC_PRINCIPAL_LOCATIONおよびSEC_PRINCIPAL_PASSVAR
NOTIFYUSIGNAL (オプション)
SYSTEM_ACCESS (オプション)
LDBAL (オプション)
MAXBUFTYPEMAXBUFSTYPES (オプション)
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
関連項目
『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』UBBCONFIG(5)に関する項
アプリケーション・タイプを定義する
Oracle Tuxedoアプリケーションで特に必要なアーキテクチャ上の決定は次のとおりです。
MODELパラメータとOPTIONSパラメータを使用して、アプリケーション・タイプを定義します。
MODELパラメータは、アプリケーションを単一プロセッサで実行するかどうかを指定します。ユニプロセッサおよびグローバル共有メモリーのあるマルチプロセッサの場合はSHMに設定されます。グローバル共有メモリーのないマルチプロセッサとネットワーク化されたアプリケーションの場合は、MPMODEL値が使用されます。これは必須パラメータです。
OPTIONSパラメータは、アプリケーション構成オプションのカンマ区切りリストです。使用可能な2つのオプションは、(ネットワーク構成を示す)LANと(アプリケーション・サーバー移行が許可されることを示す)MIGRATEです。
MODELおよびOPTIONSパラメータの特性
表3-2に、MODELおよびOPTIONSパラメータの特性を示します。
 
 
これは必須パラメータです。SHMの値は、グローバル共有メモリーのある単一のマシンを示します。値MPは、グローバル共有メモリーのない複数のマシン、またはネットワーク・アプリケーションを示します。
これは、アプリケーション構成オプションのカンマ区切りリストです。LANの値は、ローカル・エリア・ネットワークを示します。値MIGRATEはサーバー移行を有効にします。
RESOURCESセクションの例では、MODELMPに設定されています。OPTIONSLANおよびMIGRATEに設定されています。
設定例
次に、構成ファイルのRESOURCESセクションの設定例を示します。
*RESOURCES
MODEL MP
OPTIONS LAN, MIGRATE
バッファのタイプとサブタイプの数を制御する
アプリケーションで使用できるバッファ・タイプおよびサブタイプの数はそれぞれ、MAXBUFTYPEパラメータおよびMAXBUFSTYPEパラメータで制御できます。ユーザー定義のバッファ・タイプを多数作成していないかぎり、MAXBUFTYPEは省略できます。何種類ものVIEWサブタイプを使用する予定がある場合は、MAXBUFSTYPEの設定を、現在のデフォルト値より増やしておきます。
MAXBUFTYPEおよびMAXBUFSTYPEパラメータの特性
l
システムで使用できるバッファ・タイプの最大数。ユーザー定義のバッファ・タイプを8つ以上作成する場合のみ使用します。MAXBUFTYPEは、0より大きく32,768より小さい値にする必要があります。指定されていない場合、デフォルトは16です。
例: MAXBUFTYPE 20
システムで使用できるバッファ・サブタイプの最大数。MAXBUFSTYPEは、0より大きく32,768より小さい値にする必要があります。指定されていない場合、デフォルトは32です。
例: MAXBUFSTYPE 40
設定例
この例では、バッファ・タイプの最大数は20です。サブタイプの最大数は40です。
*RESOURCES
MAXBUFTYPE 20
MAXBUFSTYPE 40
会話の数を制御する
MAXCONVパラメータで、マシン上の同時会話の最大数を指定できます。MAXCONVは0より大きく32,768より小さい値にする必要があります。
MAXCONVパラメータの特性
MAXCONVパラメータには、次の特性があります。
SERVERSセクションにリストされる会話サーバーを持つアプリケーションのデフォルトは10です。それ以外の場合、デフォルトは1です。
MACHINESセクションに別の値を指定することで、どのマシンでもこのパラメータを上書きできます。
設定例
この例では、各マシンで許可される同時会話の最大数は15です。
*RESOURCES
MAXCONV 15
IPCリソースの上限値を定義する
多くのプロセス間通信(IPC)および共有メモリー掲示板表は、処理を高速化することを目的に静的に割り当てられているため、正しくチューニングすることが重要です。これらのサイズ設定が大きすぎると、メモリーおよびIPCリソースが無駄に消費されます。小さすぎると、上限値を超えた場合にプロセスが失敗します。tmloadcf -cコマンドを使用すると、特定のアプリケーションに必要なIPCリソースの最大量を確認できます。(『Oracle Tuxedoコマンド・リファレンス』tmloadcf(1)に関する項を参照してください。)
MAXACCESSERSMAXSERVERSMAXSERVICESMAXINTERFACESおよびMAXOBJECTSは、IPCのサイズ設定を制御するチューニング可能なパラメータです。アプリケーションに割り当てられている共有メモリー量は、MAXGTTパラメータとMAXCONVパラメータで制御されます。
MAXACCESSERS、MAXSERVERS、MAXSERVICES、MAXINTERFACES、およびMAXOBJECTSパラメータの特性
 
MAXACCESSERSは0より大きく32,768より小さい値にする必要があります。指定されていない場合、デフォルトは50です。MACHINESセクションで、マシンごとにMAXACCESSERSを上書きできます。
MAXSERVERSは、0より大きく8,192より小さい値にする必要があります。指定されていない場合、デフォルトは50です。
アプリケーションで通知できる様々なOracle Tuxedoサービスの最大数。MAXSERVICESは、0より大きく1,048,574より小さい値にする必要があります。指定されていない場合、デフォルトは100です。
注意:
CORBA環境の場合、各CORBAインタフェースは、Oracle Tuxedoサービスにマップされます。サービス数に対応するアカウントが生成されていることを確認してください。
CORBA環境の場合、アプリケーションで通知できるCORBAインタフェースの最大数。MAXINTERFACESは、0より大きく32,766より小さい値にする必要があります。指定されていない場合、デフォルトは100です。
注意:
インタフェースのすべてのインスタンスは、掲示板のインタフェース表の同じスロットを占有および再利用します。たとえば、サーバーSVR1がインタフェースIF1IF2を通知し、サーバーSVR2がインタフェースIF2IF3を通知し、サーバーSVR3がインタフェースIF3IF4を通知する場合、MAXINTERFACESを計算したときのインタフェース・カウントは(6ではなく) 4です。
CORBA環境の場合、アプリケーションでアクティブなCORBAオブジェクトの最大数。MAXOBJECTSは、0より大きく32,766より小さい値にする必要があります。指定されていない場合、デフォルトは100です。
注意:
システム提供のサーバーの例として、AUTHSVRTMQUEUETMQFORWARDTMUSREVTTMSYSEVTTMSTMS_QMGWTDOMAINWSLがあります。
MAXACCESSERSの増加によるコストは、クライアントまたはサーバー・プロセス(アクセサ - 次の注意を参照)のサイト当たり1つの追加セマフォです。MAXACCESSERS値によって追加されるオーバーヘッドに加えて、システム・プロセスには小さい固定のセマフォ・オーバーヘッドがあります。MAXSERVERSMAXSERVICESの増加のコストは、サーバー、サービス、クライアント・エントリそれぞれに保持される少量の共有メモリーです。これらのパラメータに関する一般的な概念は、アプリケーションの将来の拡張に対応することです。MAXACCESSERSを精査することの方が重要です。
注意:
リリース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パラメータには、次の特性があります。
LDBALYに設定されている場合は、ロード・バランシングが使用されます。
LDBALYに設定され、アプリケーションがネットワーク化されている場合は、ローカル・プリファレンスにTMNETLOADを使用できます。
LDBALNに設定されている場合、割り当てられるサーバーは最初に使用可能なサーバーです。
LDBALはオーバーヘッドを発生させるため、必要な場合にのみ使用してください。
すべてのOracle Tuxedoサービスが1つのMSSQサーバー・セットによって提供される場合は、ロード・バランシングを使用しないでください。
 
設定例
この例では、アプリケーションに対してロード・バランシングが有効になります。
*RESOURCES
LDBAL Y
関連項目
『Oracle Tuxedo ATMIの紹介』ロード・バランシングに関する項
マスター・マシンを識別する
MASTERマシンは、アプリケーション全体の起動と管理を制御します。MASTERパラメータを設定することで、すべてのアプリケーションにMASTERマシンを指定する必要があります。MASTERの値は、適切なコンピュータの論理マシン識別子(LMID)です。LMIDは、管理者によって選択された英数字文字列として定義され、MACHINESセクションのLMIDパラメータに割り当てられています。したがって、たとえばLMIDパラメータの値がSITE1の場合は、MASTERの値もSITE1になります。
アプリケーションを停止せずにMASTERマシンを停止できるようにするには、MASTERを移行できる必要があります。移行を有効にするには、LMIDに対してプライマリMASTERとバックアップMASTERの2つの値を指定する必要があります。
MASTERパラメータの特性
MASTERパラメータには、次の特性があります。
RESOURCESセクションの例では、マスター・サイトはSITE1、バックアップ・サイトはSITE2です。
設定例
Site1MASTERマシンです。SITE2はバックアップ・マシンです。
*RESOURCES
MASTER SITE1, SITE2
ネットワーク・グループの最大数を指定する
構成されるネットワーク・グループの最大数を指定するには、MAXNETGROUPSパラメータを設定します。この値は、1以上8192未満にする必要があります。デフォルトは8です。このパラメータは省略できます。
正常性チェックおよびブロッキング・タイムアウトを指定する
掲示板連絡(BBL)によって、定期的(デフォルトでは120秒ごと)にマシン上のサーバーの正常性がチェックされます。ただし、SCANUNITパラメータとSANITYSCANパラメータを設定することで、これらのチェックの頻度を変更できます。
SANITYSCANパラメータを使用して、サーバーの正常性チェックと、次回のチェックまでの間に経過するSCANUNITの数を指定します。現在のデフォルトは、SANITYSCAN * SCANUNITが約120秒になるように設定されています。
また、BLOCKTIMEパラメータを設定することで、メッセージ、トランザクションおよびその他のシステム・アクティビティのブロッキングに対するタイムアウト期間数を指定できます。
注意:
非トランザクション型のブロッキング時間値は、サービスごと、ATMI呼出しごとおよびコンテキストごとに設定できます。これらのブロック時間値は、UBBCONFIGファイルのRESOURCESセクションで設定されたシステム全体のデフォルトであるBLOCKTIME値をオーバーライドします。詳細は、「非トランザクション型サービス・レベルのブロック時間を指定する」を参照してください。
SCANUNIT、SANITYSCAN、およびBLOCKTIMEパラメータの特性
 
チェック間隔とタイムアウトの粒度を制御します。SCANUNITは、0から60の間の2または5の倍数である必要があります。
例: SCANUNIT 10
SANITYSCANには、32,767までの任意の数を指定できます。
デフォルトは、SCANUNIT * SANITYSCANが約120秒になるように設定されます。
SCANUNIT * BLOCKTIMEは、32,767以下である必要があります。
デフォルトは、SCANUNIT * BLOCKTIMEが約60秒になるように設定されます。
ATMI操作のブロックとタイムアウト
タイムアウトという用語は、クライアントが次の操作を行っている間に経過する時間を総称するために使用されます。
ブロッキング・タイムアウトという用語は、クライアント・リクエストがブロッキング条件のクリアを待機するために費やした時間を表します。非同期サービス・リクエストおよび会話のブロック・タイムアウトは、個々の送信操作と受信操作に適用されます。プロセスがtpacall (3c)、tpconnect (3c)またはtpsend (3c)を使用してメッセージを送信する場合、タイムアウトは、キューが一杯の場合にリクエストがキューに入るまで待機している期間にのみ適用されます。クライアント・プロセスがtpgetrply (3c)またはtprecv(3c)呼出しを発行してメッセージを受信する場合、タイムアウトはキューが空の場合にクライアントが着信メッセージを待機できる時間の長さを指定します。
設定例
この例では、正常性スキャンは30秒ごとに実行され、10秒を上限としたブロックがリクエストされます。SCANUNITが10、SANITYSCANが3になっていることで、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パラメータの特性
 
デフォルトは、tmloadcf(1)を実行するユーザーのユーザーIDです。
例: UID=3002
デフォルトは、tmloadcf(1)を実行するユーザーのグループIDです。
例: GID=100
例: PERM=0660
注意:
リモート・マシンのこれらのパラメータに割り当てられている値は、上書きできます。リモート・マシン上のユーザーIDおよびグループIDは、MASTERマシン上のユーザーIDおよびグループIDと同じである必要はありません。構成ファイルのMACHINESセクションに別のユーザーIDとグループIDを指定することで、デフォルトをオーバーライドできます。指定されていない場合は、RESOURCESセクションに指定されている値が使用されます。
セキュリティ・レベルを指定する
次の3つのセキュリティ・レベルを設定できます。
PERMパラメータ - 権限を介してアプリケーション・キューへの書込み機能を制限することで最小限のセキュリティを提供します。
SECURITYパラメータ - より高いセキュリティを提供します。このパラメータが設定されている場合、クライアントはアプリケーションに参加するときにパスワードを指定する必要があります。このパスワードは、TUXCONFIGファイルがUBBCONFIGファイルから生成されたときに管理者が指定したパスワードに照らしてチェックされます。
AUTHSVCパラメータ - 最大レベルのセキュリティを設定します。このパラメータが設定されている場合、アプリケーションに参加するためのクライアント・リクエストは認証サービスに送信されます。認証サービスは、Oracle Tuxedoシステムで提供されるデフォルトのサービスまたはKerberosサービスなどのサード・パーティ・ベンダーのサービスです。このレベルのセキュリティは、SECURITYパラメータが設定されていないかぎり使用できません。
注意:
LDAPシングル・セキュリティ管理を有効にするには、UBBCONFIGファイルのSERVERSセクションでLAUTHSVRを設定する必要があります。
認証および認可の拡張セキュリティ管理を有効にするには、UBBCONFIGファイルのSERVERSセクションでXAUTHSVRを設定する必要があります。
SECURITY、AUTHSVCおよびOPTIONSパラメータの特徴
 
LDAPシングル・セキュリティ管理または拡張セキュリティ管理を有効にするには、SECURITYレベルをUSER_AUTHMANDATORY_ACLまたはACLに設定する必要があります。
デフォルトはNONEです。
例: SECURITY APP_PW
SECURITY APP_PW以上を指定する必要があります。
例: AUTHSVC "AUTHSVC"
拡張セキュリティ管理を有効にするには、OPTIONSEXT_AAに設定する必要があります。
関連項目
『ATMIアプリケーションにおけるセキュリティの使用』ATMIのセキュリティの紹介に関する項
サーバーのセキュリティ属性を定義する
SEC_PRINCIPAL_NAMESEC_PRINCIPAL_LOCATIONおよびSEC_PRINCIPAL_PASSVARパラメータを使用すると、認証用のサーバーのセキュリティ属性を指定できます。
SEC_PRINCIPAL_NAME - 様々なセキュリティ操作で使用するサーバーのプリンシパル名を指定します。
SEC_PRINCIPAL_LOCATION - プリンシパル・ユーザーの秘密鍵の場所を指定します。
SEC_PRINCIPAL_PASSVAR - プリンシパル・ユーザーの秘密鍵を開くためのパスワードを含む環境変数を指定します。
 
注意:
関連項目
『ATMIアプリケーションにおけるセキュリティの使用』のATMIのセキュリティの紹介に関する項
『CORBAアプリケーションにおけるセキュリティの使用』のセキュリティの管理に関する項
共有メモリーを保護する
SYSTEM_ACCESSパラメータを使用すると、共有メモリーにあるシステム表を、アプリケーション・クライアントとアプリケーション・サーバーから保護できます。このパラメータを指定しておくと、アプリケーションの開発中に、欠陥のあるアプリケーション・コードが不当なポインタによって誤って共有メモリーの内容を破壊することを防ぐことができます。アプリケーションが完全にデバッグされ、テストされたら、パラメータの値を変更して、リクエストが早く返されるように設定できます。このパラメータの有効な値は、次のとおりです。
PROTECTED - アプリケーション・コードとともにコンパイルされたOracle Tuxedoライブラリは、システム・コードの実行中には共有メモリーにアタッチされません。
FASTPATH - Oracle Tuxedoライブラリは、常に共有メモリーにアタッチされます。
値を選択した後でNO_OVERRIDEを指定すると、選択したオプションをクライアントや管理者が変更できなくなります(クライアントの場合はtpinit()呼出しのTPINIT構造体、管理者の場合はサーバーのSERVERSセクションで指定)。
PROTECTED、FASTPATH、およびNO_OVERRIDEパラメータの特性
 
FASTPATH (デフォルト)
指定されたオプション(PROTECTEDまたはFASTPATH)は変更できません。
設定例
SYSTEM_ACCESS PROTECTED, NO_OVERRIDE
アプリケーションのシステム・リソースのアドレスを設定する
共有メモリーのアドレスを設定するには、IPCKEYパラメータを設定します。このパラメータにより、Oracle Tuxedoシステムは、アプリケーションに対してIPCリソースを割り当てます。これにより、新たにアプリケーションに参加したプロセスはIPCリソースを簡単に見つけることができます。キーの値は、新しいアプリケーション・プロセスに対して掲示板、メッセージ・キュー、およびセマフォを割り当てるために内部で使用されます。単一プロセッサ・モードでは、このキーが掲示板を指定します。マルチプロセッサ・モードでは、このキーがDBBLのメッセージ・キューを指定します。
IPCKEYパラメータの特性
IPCKEYパラメータには、次の特性があります。
システム上の他のアプリケーションのIPCKEYパラメータに同じ値を使用することはできません。値は、すべてのアプリケーションで一意でなければなりません。
設定例
*RESOURCES
IPCKEY 39211
非請求メッセージの受信方法を指定する
NOTIFYパラメータを設定すると、クライアントが非請求メッセージを受信するデフォルトの方法を設定できます。ただし、クライアントは、tpinit()を呼び出してこの選択をオーバーライドできます。
以下の4つの方法が可能です。
IGNORE - クライアントは、非請求メッセージを無視します。
DIPIN - クライアントは、tpchkunsol()を呼び出したとき、またはATMI呼出しを行ったときにのみ非請求メッセージを受信します。
SIGNAL - クライアントは、シグナル・ハンドラに関数を呼び出させるシグナルをシステムに生成させて、つまり、tpsetunsol()を使用して設定して、非請求メッセージを受信します。
注意:
THREAD - 非請求メッセージは、Oracle Tuxedoシステムがこの目的で管理する別のスレッドによって処理されます。
USIGNALパラメータは、SIGNALベースの通知を使用する場合に使用されるシグナルを指定します。SIGUSR1SIGUSR2の2種類のシグナルが生成されます。デフォルト設定はSIGUSR2です。この方法を使用すると、直ちに通知を返すことができますが、ネイティブ・クライアントを実行しているときは、制限があります。つまり、送信プロセス側のユーザーIDが同じでなければなりません。ただし、ワークステーション・クライアントには、この制限はありません。
注意:
NOTIFYおよびUSIGNALパラメータの特性
 
IGNOREは、クライアントが非請求メッセージを無視することを示します。
DIPINは、クライアントが、tpchkunsol()を呼び出すとき、またはATMI呼出しを行うときにのみ非請求メッセージを受信することを示します。
SIGNALは、クライアントがシグナルにより非請求メッセージを受信することを示します。
例: NOTIFY SIGNAL
SIGUSR1SIGUSR2は、クライアントにこのタイプのシグナルを通知することを意味します。
デフォルトはSIGUSR2です
例: USIGNAL SIGUSR1
構成ファイルのMACHINESセクションの作成方法
すべての構成ファイルの2番目のセクションには、必ずMACHINESセクションを指定します。MACHINESセクションでは、アプリケーション内の各マシンに対するパラメータを定義します。これらのパラメータは、次の情報を指定します。
マシン・アドレスから論理識別子(LMID)へのマッピング
構成ファイル(TUXCONFIG)の場所
環境ファイル(ENVFILE)の場所
注意:
特定のマシンでは、システム全体に関するパラメータUIDGIDPERMMAXACCESSERSMAXOBJECTSMAXCONVおよびMAXGTTをオーバーライドできます。MAXGTT以外のパラメータについては、RESOURCESセクションを参照してください。
表3‑3に、MACHINESセクションの各パラメータの説明を示し、リファレンス・ページへのリンクや追加情報を示します。
 
SECURITYACLまたはMANDATORY_ACLに設定されている場合に、ACLエントリで使用されるキャッシュ内のエントリ数。
MAXACLCACHE (オプション)
NETLOAD (オプション)
LMID (必須)
SPINCOUNT (オプション)
TYPE (オプション)
バイナリ形式のTUXCONFIGファイルが置かれているマシン上のファイルまたはデバイスの絶対パス名。
注意:
このパラメータに指定するパス名は、TUXCONFIG環境変数に指定したパス名(大文字/小文字の区別も含む)と完全に一致する必要があります。パス名が一致していない場合、tmloadcf(1)は正常に実行されません。
TUXCONFIG (必須)
MAXCONV (オプション)
TLOGSIZE (オプション)
TLOGNAME (オプション)
ENVFILE (オプション)
このマシンのDTPトランザクション・ログ(TLOG)を格納するOracle Tuxedoのファイル・システム。
TLOGDEVICE (オプション)
MAXACCESSERS (オプション)
MAXOBJECTS (オプション)
MAXGTT (オプション)
MAXWSCLIENTS (オプション)
MAXPENDINGBYTES (オプション)
TLOGOFFSET (オプション)
デバイスの先頭からOracle Tuxedoファイル・システムの開始点(このマシンのTUXCONFIGファイルを格納)までのページ単位の数値のオフセット。
TUXOFFSET (オプション)
GID (オプション)
PERM (オプション)
UID (オプション)
SEC_PRINCIPAL_NAMESEC_PRINCIPAL_LOCATIONSEC_PRINCIPAL_PASSVAR
アプリケーション・ディレクトリ(APPDIR)の絶対パス名。このディレクトリは、このマシンで起動するすべてのアプリケーションおよび管理サーバーのカレント・ディレクトリになります。また、Oracle Tuxedoシステム・ソフトウェアのインストール先ディレクトリの絶対パス名でもあります。
TUXDIR (必須)
リモート・プロセス(string_value1)およびローカル・プロセス(string_value2)にバインドされる、自動データ圧縮が実行されるメッセージのメッセージ・サイズのしきい値。
CMPLIMIT (オプション)
このマシンのuserlog(3c)メッセージ・ファイル名の接頭辞として使用されるフルパス名。
ULOGPFX (オプション)
ULOGのパス名
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セクションの例では、次のパラメータと値が指定されています。
 
UNIXシステムでuname -nコマンドを使用して取得されるマシン名。Windowsシステムの場合は、「コントロール・パネル」の「ネットワーク」にある「コンピュータ名」で指定します。名前はすべて大文字で指定します。
マシンgumbyの論理マシン識別子。
注意:
このパラメータに指定するパス名は、TUXCONFIG環境変数に指定したパス名(大文字/小文字の区別も含む)と完全に一致する必要があります。パス名が一致していない場合、tmloadcf(1)は正常に実行されません。
このマシンでは、システム全体にわたる値(RESOURCESセクションで定義済)を100でオーバーライドします。
(CORBAの例の場合。)このマシンでは、システム全体にわたる値(RESOURCESセクションで定義済)を700でオーバーライドします。
このマシンでは、システム全体にわたる値(RESOURCESセクションで定義済)を15でオーバーライドします。
MACHINESセクションの例のカスタマイズ方法
MACHINESセクションをカスタマイズするには、次を指定します。
gumbyのマシン名
注意:
TUXDIRの値としてのOracle Tuxedoソフトウェアが格納されているディレクトリのフルパス名
APPDIRの値としてのアプリケーション・ディレクトリのフルパス
ENVFILETUXCONFIGおよびULOGPFXのシステム上でのフルパス名
関連項目
『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』UBBCONFIG(5)に関する項
キャッシュ内のACL用エントリの最大数を指定する
SECURITYACLまたはMANDATORY_ACLに設定されている場合は、MAXACLCACHEパラメータを使用して、キャッシュ内のACLエントリ数を指定できます。このパラメータに適切な値を設定すると、以下のことを実現できます。
この値には、10以上30,000未満を指定します。デフォルトは100です。
サービス・リクエストの負荷を定義する
NETLOADパラメータを使用して、あるマシンから別のマシンにサービス・リクエストを送信するコストの計算時に加算する負荷を指定できます。この値は0以上、32,768未満の数値にする必要があります。デフォルトは0です。
関連項目
『Oracle Tuxedo ATMIの紹介』のロード・バランシングに関する項
物理アドレスとマシンIDを予約する
最初に、アドレス部分にMASTERマシンのアドレスを定義します(これはMACHINESセクション・エントリの基礎になります)。エントリの他のすべてのパラメータは、このアドレスで指定されたマシンを記述します。UNIXシステムでuname -nを呼び出すことで、出力する値にアドレスを設定する必要があります。Windowsシステムでは、「ネットワーク」コントロール パネルの「ネットワークID」ダイアログで「コンピュータ名」の値を参照してください。
LMIDパラメータは必須です。このパラメータは、アドレスを指定したばかりのコンピュータを示す論理名を指定します。論理名には、アプリケーション内のマシン間で一意の英数字を指定します。
アドレスとLMIDパラメータの特性
アドレスおよびマシンIDには、以下の特性があります。
address LMID=logical_machine_name
アドレス(address)は、物理プロセッサ名を示します。
LMIDは、次の形式で指定します。
LMID=logical_machine_name
LMIDは、物理プロセッサに対する論理マシン名です。論理マシン名には、MACHINESセクションで一意の英数字を指定します。
ロック・スピンの回数を設定する
Oracle Tuxedoシステムの一部の操作(サービス名のルックアップやトランザクションなど)では、排他的アクセスのために掲示板をロックする必要があります。つまり、1つのプロセスのみがアクセスできるようにする必要があります。プロセスまたはスレッドは、掲示板が別のプロセスまたはスレッドでロックされていることを検出すると、再試行するか、ロック・スピンSPINCOUNTの回数実行した後、この操作を中止して、待機キューでスリープ状態になります。スリープ状態はリソースを消費するため、一定のロック・スピンを行ってからスリープ状態になるように設定しておく方が効率的です。
SPINCOUNTパラメータの特性
SPINCOUNTパラメータの値は、アプリケーションおよびシステムによって異なりますが、次の基本的なガイドラインを覚えておくと便利です。
ユニプロセッサの場合、SPINCOUNTの適切な値は1です。
マルチプロセッサの場合、SPINCOUNTの値は5,000から始めるのが適切ですが、場合によっては100,000が適切です。
SPINCOUNTの値を設定した後で、アプリケーションのスループットを確認します。SPINCOUNTの値は、TMIBを使用してシステムの実行中に調整できます。
マシンをタイプ別に指定する
TYPEパラメータを使用すると、マシンをクラスごとにグループ化できます。TYPEには、15文字以下の任意の文字列を設定できます。
TYPEパラメータの特性
2つのマシンに対して同じTYPEの値が指定されている場合、これらのマシン間でデータを送信するときは、データのエンコードおよびデコードは実行されません。
TYPEには、任意の文字列値を指定できます。このパラメータは、比較のために使用します。
TYPEパラメータは、アプリケーションが異機種ネットワークのマシンで構成されている場合、またはネットワーク内のマシン上で様々なコンパイラを使用している場合に使用する必要があります。
構成ファイルの場所を識別する
マシンを識別するエントリの構成ファイルの場所とファイル名を識別するには、必須パラメータであるTUXCONFIGを設定します。TUXCONFIGパラメータの値は二重引用符で囲まれ、最大64文字のフルパス名を表します。
注意:
このパラメータに指定するパス名は、TUXCONFIG環境変数に指定したパス名(大文字/小文字の区別も含む)と完全に一致する必要があります。パス名が一致していない場合、tmloadcf(1)は正常に実行されません。
TUXCONFIGパラメータの特性
TUXCONFIGパラメータには、次の特性があります。
TUXCONFIGパラメータの構文は、TUXCONFIG="full_path_of_tuxconfig"です。
TUXCONFIGの値には、64文字以下の文字列を指定できます。
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は、システム側で設定されます。したがって、これらのパラメータはファイル内で指定しないでください。
ただし、アプリケーション操作に関連する次のパラメータについては、環境設定を指定できます。
FIELDTBLSFLDTBLDIR
VIEWFILESVIEWDIR
ENVFILEパラメータの特性
ENVFILEは省略可能なパラメータで、次の特性があります。
ENVFILEパラメータの値の構文は、ENVFILE="envfile"のように文字列を二重引用符で囲みます。
ENVFILEは、Oracle Tuxedoシステムが起動するすべてのプロセスに対する環境変数設定を格納するファイルです。(UBBCONFIGファイルは、同様の方法、つまり完全修飾パス名を使用して警告を生成します。)
FIELDTBLSFLDTBLDIRなどを設定しますが、TUXDIRAPPDIRは設定しません。
すべての設定はハードコードする必要があります。FLDTBLDIR=$APPDIRなどの評価は許可されません。
環境変数の設定の詳細は、『ファイル形式、データ記述、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つあります。
BRIDGEが非同期接続をリクエストする場合
メモリーとディスク容量が多い大型コンピュータでは大きなMAXPENDINGBYTESを設定し、小型コンピュータでは小さなMAXPENDINGBYTESを設定できます。
DTPトランザクション・ログのオフセットを指定する
すべてのOracle Tuxedoファイル・システムには、ボリューム・リスト(VTOC)があります。これは、汎用デバイス・リスト(UDL)で指定されたデバイス上のファイルのリストです。UDLでは、Oracle Tuxedoシステム表の物理ストレージ・スペースの場所が指定されます。Oracle Tuxedoシステム・アプリケーションでは、すべてのシステム・ファイルを同じrawディスク・スライスやオペレーティング・システムのファイル・システムのファイルに格納できます。
TLOGOFFSETパラメータを使用して、このマシンのデバイスの先頭からOracle Tuxedoファイル・システムの開始点(このマシンのDTPトランザクション・ログを格納)までのオフセットをページ単位で指定します。オフセットには、0以上でデバイス上のページ数より小さい値を指定します。デフォルトは0です。
TUXCONFIGのオフセットを定義する
すべてのOracle Tuxedoファイル・システムには、ボリューム・リスト(VTOC)があります。これは、汎用デバイス・リスト(UDL)で指定されたデバイス上のファイルのリストです。UDLでは、Oracle Tuxedoシステム表の物理ストレージ・スペースの場所が指定されます。Oracle Tuxedoシステム・アプリケーションでは、すべてのシステム・ファイルを同じrawディスク・スライスやオペレーティング・システムのファイル・システムのファイルに格納できます。
TUXOFFSETパラメータを使用して、このマシンのデバイスの先頭からOracle Tuxedoファイル・システムの開始点(このマシンのTUXCONFIGを格納)までのオフセットをページ単位で定義します。(この値が環境でどのように使用されるかについては、MACHINESセクションのENVFILEを参照してください。)
TUXOFFSETパラメータの特性
0以外のTUXOFFSETの値は、マシン上で起動するすべてのサーバーの環境に設定されます。
システム・ソフトウェアおよびアプリケーション・サーバー・ソフトウェアの場所を識別する
サーバーをサポートするアプリケーション内の各マシンには、Oracle Tuxedoシステム・ソフトウェアとアプリケーション・ソフトウェアのコピーが必要です。TUXDIRパラメータでシステム・ソフトウェアの場所を指定します。APPDIRパラメータでアプリケーション・ソフトウェアの場所を指定します。どちらのパラメータも必須です。APPDIRパラメータは、すべてのサーバー・プロセスの現在の作業ディレクトリになります。Oracle Tuxedoソフトウェアは実行可能ファイルをTUXDIR/binおよびAPPDIRで探します。
APPDIRおよびTUXDIRパラメータの特性
 
構文は、APPDIR="APPDIR"のようにフルパス名を二重引用符で囲む必要があります。
APPDIRは、アプリケーション・ソフトウェアの場所を示します。
APPDIRは必須パラメータです。
APPDIRは、サーバー・プロセスの現在の作業ディレクトリになります。
構文は、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パラメータには、次の特性があります。
ULOGPFXパラメータの値の構文は、ULOGPFX="ULOGPFX"のように文字列を二重引用符で囲みます。
アプリケーション・ログには、TPESYSTEMおよびTPEOSエラーに関するすべてのメッセージが記録されます。
ULOGPFXは、APPDIR/ULOGにデフォルト設定されます。
たとえば、BANKLOG.022667というファイルの場合、userlogの名前の接頭辞は、次のように指定されます。
ULOGPFX="/mnt/usr/appdir/logs/BANKLOG"
関連項目
構成ファイルのGROUPSセクションの作成方法
GROUPSセクションを使用して、論理的にグループ化されたサーバー・セットを指定します。これを後で使用して、リソース・マネージャにアクセスしたり、サーバー・グループの移行を簡単に行うことができます。構成ファイルのGROUPSセクションでは、サーバー・グループが定義されています。アプリケーション・サーバーをマシン上で実行するには、マシンに対して少なくとも1つのサーバー・グループを定義する必要があります。ただし、マシンに対してサーバー・グループが定義されていなくても、アプリケーションの一部にグループを含め、そのサイトから管理コマンドtmadmin(1)を実行できます。
非トランザクション型、非分散型のシステムの場合、グループは比較的単純です。各グループの番号および論理マシンIDにグループ名をマップすることのみが必要になります。分散トランザクション・システムをサポートする柔軟性も備えられています。
表3‑4に、GROUPSセクションの各パラメータの説明を示し、リファレンス・ページへのリンクや追加情報を示します。
 
GROUPNAME (必須)
GRPNO (必須)
CLOSEINFO (オプション)
OPENINFO (オプション)
TMSNAMEが指定されている場合に、関連するグループに対して起動するトランザクション・マネージャ・サーバーの数。
TMSCOUNT (オプション)
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セクションで指定されるグループ名とどのように一致するかについては、3‑89ページの「?$paratext>?」という項を参照してください。ルーティング機能を正しく動作させるには、この一致が重要です。また、アプリケーションでグループを構成する際にグループ名を変更した場合は、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文字以下の英数文字列を指定する必要があります。
関連項目
『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』UBBCONFIG(5)に関する項
トランザクション・マネージャ・サーバーの名前とグループごとの数を指定する
分散トランザクション、つまり、複数のリソース・マネージャおよびマシンにわたるトランザクションに参加するサーバーを含むグループのエントリには、トランザクション・マネージャ・サーバー(TMS)の名前を指定する必要があります。TMSを指定するには、TMSNAMEパラメータを設定します。このパラメータは、サーバー・グループの起動時にtmboot(1)が実行するファイル(string_value)を指定します。
値TMSは、null XAインタフェースの使用を示すために予約されています。このインタフェースは、リソース・マネージャのないサーバー・グループで使用できます。リソース・マネージャがない場合は、TMSが必要ないこともあります。このサーバー・グループは、トランザクション・メッセージの影響を受ける場合があります。TMS以外の空ではない値が指定された場合は、このエントリのLMID値に関連付けられているマシンに、TLOGDEVICEを指定する必要があります。各TMサーバーには、一意のサーバー識別子が自動的に割り当てられます。サーバーは何度でも再起動できます。
TMSNAMEが指定されている場合は、TMSCOUNT=numberも指定し、関連するグループに対して起動するトランザクション・マネージャ・サーバーの数を指定する必要があります。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の形式は次のようになります。
UNIXの場合
OPENINFO = "TUXEDO/QM:qmconfig:qspace"
Windowsの場合
OPENINFO = "TUXEDO/QM:qmconfig;qspace"
これらすべての設定では、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セクションの各パラメータの説明を示し、リファレンス・ページへのリンクや追加情報を示します。
 
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"
関連項目
『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』UBBCONFIG(5)に関する項
BRIDGEプロセス用のデバイス名を指定する
LMID上に置かれたBRIDGEプロセスで使用するデバイス名を指定し、ネットワークにアクセスするには、BRIDGEパラメータを次のように設定します。
BRIDGE=string_value
TCP/IPを使用する場合は、BRIDGEにデバイス名を指定する必要はありません。
ネットワーク・トランスポートのエンドポイント・ファイルのパス名は、次の形式で指定します。
/dev/provider_name
BRIDGEのネットワーク・アドレスを割り当てる
LMIDのリスニング・アドレスとして、LMID上に置かれているBRIDGEプロセスで使用する完全なネットワーク・アドレスを指定するには、NADDRパラメータを次のように設定します。
NADDR = string_value
BRIDGEのリスニング・アドレスは、アプリケーションに参加している別のBRIDGEプロセスが通信する場所です。
BRIDGEのリスニング・アドレスは、次の3つのうち、いずれかの形式で指定できます。
0xhex-digitsまたは\\xhex-digits
これらの最初の形式では、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
関連項目
『CORBAアプリケーションにおけるセキュリティの使用』のリンク・レベルの暗号化に関する項
tlistenのネットワーク・アドレスを割り当てる
LMIDが指定するマシン上でネットワークにサービスを提供するtlisten(1)プロセスで使用されるネットワーク・アドレスを指定するには、NLSADDRパラメータを次のように設定します。
NLSADDR=string_value
stringの値には、NADDRパラメータと同じ形式でネットワーク・アドレスを指定します。
NLSADDRtlistenアドレスは、次の3つのうち、いずれかの形式で指定できます。
0xhex-digitsまたは\\xhex-digits
これらの最初の形式では、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セクションの各パラメータの説明を示し、リファレンス・ページへのリンクや追加情報を示します。
 
MAXNETGROUPS (オプション)
MAXPENDINGBYTES (オプション)
NETGROUP (必須)
NETGRPNO (必須)
NETPRIO (オプション)
ネットワーク・グループの構成の例
ネットワーク・アドレスは、ネットワーク・グループに関連付けることができます。次の例に、この機能がどのように役立つかを示します。
First State Bankには、5台のマシン(A-E)で構成されるネットワークがあります。各マシンは、次のように定義した4つのネットグループの中の2つまたは3つに属します。
DEFAULTNET (デフォルトのネットワークである企業WAN)
GREEN_GROUP (メンバーのマシン間に、高速な光ファイバのポイント・ツー・ポイント・リンクを提供する専用LAN)
すべてのマシンは、DEFAULTNET (企業WAN)に属します。さらに、各マシンはMAGENTA_GROUPまたはBLUE_GROUPに関連付けられます。MAGENTA_GROUP LANの一部のマシンは、GREEN_GROUPというプライベート・グループにも属しています。図3-3に、ネットワーク内のアドレスを持つマシンAからEを示します。
図3-3 ネットワークのグループ化の例
表3-7に、マシンと、対応するグループのアドレスを示します。
 
表3-7 マシンと、対応するグループのアドレス
DEFAULTNET (企業WAN)
DEFAULTNET (企業WAN)
DEFAULTNET (企業WAN)
注意:
ローカル・エリア・ネットワークは場所間でルーティングされないため、マシン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"
 
関連項目
『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』UBBCONFIG(5)に関する項
ネットワーク・グループに名前を割り当てる
ネットワーク・グループに名前を割り当てるには、NETGROUPパラメータを次のように設定します。
NETGROUP required_parameters [optional_parameters]
DEFAULTNETNETGROUPを設定すると、このエントリには、デフォルトのネットワーク・グループが指定されます。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セクションには、サーバー・プロセスに固有の情報が含まれています。このセクションは必須ではありません。ただし、このセクションがないということは、アプリケーション・サーバーがなく、機能もほとんどないことを意味します。このセクションの各エントリは、アプリケーションで起動するサーバー・プロセスを表し、次の情報を指定します。
servoptsで定義するサーバーのコマンド行オプション(CLOPT)
サーバーのキューに関する情報(RQADDRRQPERMREPLYQRPPERM)
再起動に関する情報(RESTARTRCMDMAXGENGRACE)
注意:
表3-8に、SERVERSセクションの各パラメータの説明を示し、リファレンス・ページへのリンクや追加情報を示します。
 
サーバーが会話型サーバーであるかどうか。接続は、会話型サーバーに対してのみ行うことができます。tpacall(3c)またはtpcall(3c)を使用したrpcリクエストは、非会話型サーバーに対してのみ行うことができます。
CONV (省略可能な実行時パラメータ)
SEC_PRINCIPAL_NAMESEC_PRINCIPAL_LOCATIONSEC_PRINCIPAL_PASSVAR
SEQUENCE (省略可能な起動パラメータ)
tmbootによって起動されるサーバーのオカレンスの最小数。
MIN (省略可能な起動パラメータ)
MAX (省略可能な起動パラメータ)
起動時にサーバー・プロセスに渡されるservopts(5)オプションのリスト。何も指定しない場合は、デフォルトの-Aになります。string_valueの最大文字数は256文字です。
CLOPT (省略可能な起動パラメータ)
ENVFILE (省略可能な実行時パラメータ)
サーバーを実行するグループの名前。string_valueには、GROUPSセクションのサーバー・グループに関連付けられた論理名を指定します。
SRVGRP (必須)
SRVID (必須)
RQADDR (省略可能な実行時パラメータ)
RQPERM (省略可能な実行時パラメータ)
REPLYQ (省略可能な実行時パラメータ)
RPPERM (省略可能な実行時パラメータ)
RCMD (省略可能な実行時パラメータ)
GRACEで指定された期間内にプロセスを再起動できる最大回数から1を引いた数(プロセスが再起動可能な場合)。
MAXGEN (省略可能な実行時パラメータ)
指定した秒数内でプロセスをMAXGEN回まで再起動できることを指定するパラメータ(プロセスが再起動可能な場合)。
GRACE (省略可能な実行時パラメータ)
プロセスを再起動できるかどうか。デフォルトはNです。サーバーを移行できる場合は、RESTARTYに設定します。(SIGTERMシグナルで終了されたサーバーは再起動する必要があります。)
RESTART (省略可能な実行時パラメータ)
SYSTEM_ACCESS (省略可能な実行時パラメータ)
最初にサーバーを起動するときに開始されるサーバー・ディスパッチ・スレッドの最小数。MAXDISPATCHTHREADS>1のときに使用される個別のディスパッチ・スレッドは、MAXDISPATCHTHREADSの値の一部としてカウントされません。MAXDISPATCHTHREADSは、MINDISPATCHTHREADSと同じか、またはそれ以上でなければなりません(MINDISPATCHTHREADS<=
MAXDISPATCHTHREADS)。このパラメータのデフォルト値は0です。
各サーバー・プロセスで生成可能な、同時にディスパッチされるスレッドの最大数。MAXDISPATCHTHREADS>1のときに使用される個別のディスパッチャ・スレッドは、パラメータで指定した数には含まれません。MAXDISPATCHTHREADSは、MINDISPATCHTHREADSと同じか、またはそれ以上でなければなりません(MINDISPATCHTHREADS<=
MAXDISPATCHTHREADS)。このパラメータのデフォルト値は1です。
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パラメータには、GRACEパラメータで指定した期間内にサーバーを起動できる回数を制御する、0より大きく256より小さい数値を指定します。デフォルトは1です。サーバーが再起動可能な場合、このパラメータには2以上(MAXGEN>= 2)を指定します。再起動は、指定した値から1を引いた回数行うことができます。RESTARTYを指定しないと、MAXGENの値は無視されます。
RESTARTYの場合、GRACEパラメータは、このサーバーの再起動が可能な期間(秒単位)を指定します。再起動はMAXGEN - 1回できます。割り当てる数字は0以上にする必要があります。最大値は2,147,483,648秒(つまり68年より少し大きいくらい)です。GRACEを指定しない場合は、デフォルトの86,400秒(24時間)が指定されます。1つのGRACE期間が経過したら、次の期間が始まります。GRACE期間を0に設定すると、すべての制限が解除されます。つまり、サーバーの再起動回数が制限されなくなります。
ENVFILEファイルから環境設定を読み取ります。
サンプル・サーバーの3つのインスタンスが、グループGROUP1で起動されます。サーバーIDは、12および3です。3つのサーバーは、MSSQセットを構成し、キューring1からのリクエストを読み取ります。
注意:
RQADDRは、このサーバーのリクエスト・キューにシンボリック名を割り当てます。MSSQセットを作成するには、複数のサーバーに対して同じシンボリック・キュー名を指定し、これらのサーバーの実行可能ファイルに同じ名前を割り当てます。MINには、1より大きい値を指定します。
関連項目
『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』UBBCONFIG(5)に関する項
サーバーを会話型として指定する
サーバーが会話型サーバーである(つまり、クライアントと専用サーバーの間に双方向接続を確立する)場合、CONVは必須パラメータでありYを設定する必要があります。デフォルトはNで、この場合はそのサーバーが会話に含まれないことを示します。
CONVパラメータの特性
CONVパラメータには、次の特性があります。
Yは、サーバーが会話型であることを示します。値Nは、サーバーが会話型ではないことを示します。
サーバーを起動する順序を設定する
サーバーを起動する順序を指定するには、各サーバーのSEQUENCEパラメータを設定します。SEQUENCEには、1から10,000までの任意の数字を指定します。SEQUENCEパラメータの値が小さいサーバーは、値が大きいサーバーより先に起動します。SEQUENCEパラメータをまったく指定しない場合、サーバーはSERVERSセクションに示されている順序で起動します。順序が指定されたサーバーと指定されていないサーバーが混在する場合は、順序が指定されたサーバーが先に起動します。サーバーは、起動する順序とは逆の順序で停止されます。
SEQUENCEパラメータはオプションです。このパラメータは、大規模なアプリケーションで、サーバーを起動する順序を指定する必要がある場合に役立ちます。
警告:
複数のサーバーを起動するには、MINパラメータを設定して、起動作業を簡略化できます。この場合、すべてのサーバーに同じオプションが適用されます。RQADDRを指定すると、サーバーはMSSQセットを生成します。MINのデフォルト値は1です。
起動できるサーバーの最大数を指定するには、MAXパラメータを設定します。tmboot(1)コマンドを実行すると、実行時にMINで指定した数のサーバーが起動します。続いて、MAXで指定した数までのサーバーが起動します。デフォルトは、MINで指定した数のサーバーです。
MINおよびMAXパラメータは、大規模なアプリケーションの構成ファイルを管理しやすいサイズに保つ上で役立ちます。MAXの最大値は、IPCリソースを割り当てて設定します。MINおよびMAXパラメータは、会話型サービスやサーバーの自動生成でも使用されます。
CORBA C++サーバーの起動順序
Oracle Tuxedo CORBA環境でのサーバーの正しい起動順序は次のとおりです。この順序が変更されると、CORBAアプリケーション・プログラムは起動しません。
1.
2.
-Nおよび-Mオプションが設定されたTMFFNAMEサーバー。NameManagerサービスを(Masterとして)起動します。このサービスは、アプリケーション側で提供される名前とオブジェクト参照のマッピングを維持します。
3.
-Nオプションのみが設定されたTMFFNAMEサーバー。スレーブNameManagerサービスを起動します。
4.
-Fオプションが設定されたTMFFNAMEサーバー。FactoryFinderオブジェクトを起動します。
5.
リスト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サーバーが起動した後、次のコンポーネントのサーバーが起動します。
University Basicサンプル・アプリケーションのunivb_server。サンプル・アプリケーションの詳細は、『CORBA Universityサンプル・アプリケーション・ガイド』を参照してください<Default ?Font>
注意:
なんらかの理由でグループやマシンを移行または停止および再起動するとき、アクティブなスレーブNameManagerが別のグループにある場合は、マスターNameManagerがアクティブになる前にFactoryFinderやスレーブNameManagerが再起動されないように、UBBCONFIGファイルを設定してください。たとえば、FactoryFinderがマスターNameManagerと同じグループにある場合、マスターNameManagerが先に起動されるように、UBBCONFIGファイルでサーバーの起動順序を変更します。
SEQUENCE、MIN、およびMAXパラメータの特性
 
このパラメータが設定されていないサーバーは、SERVERSセクションにリストされている順序で起動します。
RQADDRが指定されており、MINが1より大きい場合(MIN>1)は、MSSQセットが作成されます。
MAXの値の範囲は0から1000です。MAXを指定しない場合、デフォルトでMINの値が指定されます。
サーバーのコマンド行オプションを指定する
Oracle Tuxedoシステムでは、サーバーがリクエストを処理するときに使用するオプションを指定できます。これらのオプションは、servoptsで定義されます。これには、サーバー・プロセスの実行時オプションがリストされます。サーバー側では、コマンド行からの情報の取得が必要な場合があります。CLOPTパラメータを使用すると、コマンド行オプションを指定して、サーバーに設定されたデフォルト値を変更したり、ユーザー定義のオプションをtpsvrinit()関数に渡すことができます。
サーバーの標準のmain()を使用すると、引数--までのオプションのセットが解析され、以降のオプションはtpsvrinit()に渡されます。CLOPTのデフォルトの-Aは、buildserver(1)またはbuildobjserver(1)によって組み込まれたすべてのサービスを通知するようサーバーに指示します。表3-9に、使用可能なオプションの一部を示します。
 
-o filename
標準出力をfilenameファイルにリダイレクトします。
-e filename
標準エラーをfilenameファイルにリダイレクトします。
-s services
サービスを通知します。たとえば、-s x,y,zは、サービスxyおよびzを通知します。
-s x,y,z:funcname
サービスxyおよびzを通知しますが、関数funcnameを使用してこれらのサービスのリクエストを処理します。これは、関数名の別名と呼ばれます。
-v
このオプションは、UBBCONFIGCLOPTでは使用できません。これは、サーバーを手動で起動するときに使用します。
注意:
他の標準のmain()オプションは、『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』のservopts(5)に関する項のリストを参照してください。
CLOPTパラメータの特性
構文は、CLOPT="servopts -- application_opts"です。
main()およびtpsvrinit()では、サーバーのコマンド行オプションが使用されます。
servopts(5)オプションはmain()に渡されます。
アプリケーションのオプションはtpsvrinit()に渡されます。
BANKAPPサンプル・アプリケーションでは、コマンド行オプションは次のように指定されます。
CLOPT=”-A -- -T 10"
このサーバーは、すべてのサービスを通知するオプション(-A)および窓口IDの10を与えられるので、操作ごとに特定の窓口レコードを更新できます。このオプション、特にtpsvrinit()に渡されるオプションを使用する場合、システム管理者とアプリケーション・プログラマは、よく相談する必要があります。
関連項目
『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』servopts(5)に関する項
サーバー環境ファイルの場所を識別する
環境設定を指定するには、MACHINESセクションにあるENVFILEパラメータを使用します。また、特定のサーバー・プロセスに同じパラメータを指定できますが、セマンティクスは同じです。MACHINESセクションのENVFILEと、SERVERSセクションのENVFILEが指定されると、両方とも有効になります。MACHINESおよびSERVERSセクションの両方に同じ変数が定義された場合は、SERVERSセクションの設定が優先されます。
サーバー環境ファイルの特性
ENVFILEは、サーバー環境ファイルを定義するパラメータであり、次の特性があります。
省略可能なパラメータであり、MACHINESセクションのENVFILEパラメータと同じセマンティクスを含みますが、定義するのは1つのサーバーのみです。
変数が重複する場合、SERVERSセクションのENVFILEの設定が、MACHINESおよびGROUPSセクションのENVFILEの設定をオーバーライドします。
環境変数の設定の詳細は、『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』のtuxenv(5)に関する項を参照してください。
サーバー名、サーバー・グループ、およびサーバーIDを定義する
まず、SERVERSセクションでサーバーに名前を割り当てます。指定する名前は、以下のいずれかのコマンドを使用して作成した実行可能ファイルです。
buildserver(1) (ATMIアプリケーションの場合)
buildobjserver(1) (CORBA C++サーバー・アプリケーションの場合)
また、各サーバーにグループ識別子(SRVGRP)を指定する必要があります。SRVGRPには、GROUPSセクションのエントリの最初に指定した名前を設定します。最後に、指定されたグループ内の各サーバー・プロセスに一意の数値識別子(SRVID)を指定します。サーバー・エントリには、必ずSRVGRPパラメータとSRVIDパラメータが必要です。エントリでは、アプリケーションのほか、起動するマシンも記述されるため、複数のエントリに同じサーバー名が表示される場合もあります。
サーバー名、SRVGRP、およびSRVIDパラメータの特性
 
ATMIではbuildserver(1)で構築されます。
CORBAではbuildobjserver(1)で構築されます。
グループ名は、GROUPSセクションのエントリに設定されているものを指定します。
SRVID (サーバーID)
サーバー・キュー情報を識別する
サーバー・キュー情報により、サーバー・メッセージ・キューの作成およびアクセスを制御します。Oracle Tuxedoシステムでは、RQADDRパラメータを使用して複数サーバー、単一キュー(MSSQ)セットを作成できます。どのサーバーに対しても、このパラメータの値に英数字を設定できます。同じサービスを提供するすべてのサーバーに対して同じRQADDR値を設定すると、サービスを1つのメッセージ・キューにまとめてMSSQセットを作成することができ、ロード・バランシングを実現できます。
MSSQの例
MSSQセットは、銀行の担当者に似ています。4人の窓口担当者が、1列に並んで待つ多数の顧客のビジネス要求を処理できるとします。顧客はすべて平等に1列に並んで待ちます。当然ですが、融資担当者は、その列の顧客の要求を処理する窓口担当者グループには含まれません。融資担当者は、(窓口担当者が処理できる)預金の入金や引出しの要求を処理できません。融資を希望しない顧客もいます。同様に、サーバーが提供するサービスが、MSSQセットのサーバーが提供するサービスと異なる場合、サーバーはMSSQセットに結合できません。
RQPERMパラメータでは、UNIXシステム規則の行(0666など)とともに、サーバー・リクエスト・キューの権限を指定できます。この設定では、サービスがリクエスト・キューへのアクセスを制御できます。
MSSQサーバー内のサービス・ルーチンでサービス・リクエストが実行されると、それらのリクエストに対する応答を応答キューで受け取る必要があります。このような応答キューは、REPLYQ=Yを指定することで設定できます。デフォルトでは、REPLYQNが設定されています。REPLYQYに設定されている場合、RPPERMパラメータを使ってその応答キューに権限を割り当てることもできます。
RQADDR、RQPERM、REPLYQ、およびRPPERMパラメータの特性
 
リクエスト・キューの権限を表します。パラメータを指定しない場合、RESOURCESセクションのPERMで指定された掲示板の権限が使用されます。値が指定されない場合は、デフォルト値の0666が使用されます。デフォルトを使用すると、システム上にログインしたユーザーがすべてアプリケーションにアクセスできるようになります。
このサーバーに対して、応答キュー(リクエスト・キューとは別)を設定するかどうかを指定します。リクエスト・キューを使用しているサーバーが1つのみの場合、応答は問題なくリクエスト・キューから取得できます。Oracle Tuxedoシステムでは、サーバーがMSSQセットのメンバーであり、サーバーに、応答メッセージを受け取るようにプログラミングされたサービスが含まれる場合は、REPLYQYに設定して、このサーバーに対して応答キューが個別に作成されるようにする必要があります。そうでない場合、応答は、MSSQセット内の全サーバーが共有するリクエスト・キューに送信されてしまい、応答がリクエスト元のサーバーに返されるかどうかは保証されません。マルチスレッド化されたサーバーの場合は、このパラメータが設定されていなくても、自動的にREPLYQが作成されます。
応答キューに権限を割り当てます。このパラメータは、REPLYQ=Yの場合にのみ有用です。リクエストと応答が同じキューから読み出される場合、必要なのはRQPERMのみで、RPPERMは無視されます。
サーバーの再起動に関する情報を定義する
適切にデバッグされたサーバーは、自動的に終了しません。デフォルトでは、アプリケーションの実行中に終了したサーバーは、Oracle Tuxedoシステムによって再起動されません。サーバーを再起動する場合は、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パラメータの特性
 
Yを設定すると、サーバーを再起動できるようになります。
MAXGENに使用される間隔を表します。
0から2,147,483,647 (231 - 1)の範囲の値である必要があります。
共有メモリーに対するサーバー・アクセスを定義する
SYSTEM_ACCESSパラメータは、サーバー・プロセスを共有メモリーにアタッチし、システム・コードの外から内部表へのアクセスを許可するかどうかを決定します。アプリケーション開発時には、このようなアクセスを許可しないように設定しておく(PROTECTED)ことをお薦めします。アプリケーションをテストした後で、SYSTEM_ACCESSの値をFASTPATHに変更すると、パフォーマンスを向上させることができます。
このパラメータの設定は、RESOURCESセクションで指定された値をオーバーライドします(値NO_OVERRIDEが指定されていない場合)。この場合、このパラメータは無視されます。NO_OVERRIDE値は、このセクションでは使用されません。
SYSTEM_ACCESSパラメータの特性
SYSTEM_ACCESSパラメータには、次の特性があります。
PROTECTEDは、サーバーがシステム・コードの外から共有メモリーにアタッチできないことを示します。
FASTPATHは、サーバーが常に共有メモリーにアタッチすることを示します。
RESOURCESセクションでNO_OVERRIDEが指定されている場合、このパラメータは無視されます。
デフォルトは、RESOURCESセクションのSYSTEM_ACCESSパラメータの値です。
PROTECTEDが設定されていると、Oracle Tuxedoシステムの処理速度は遅くなります。
サーバー・ディスパッチ・スレッドを定義する
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つのエントリで指定されます。
Secure Socket Layer (SSL)プロトコルでは、IIOPを使用したプロセス間の安全な通信方法を定義します。必須パラメータを設定するには、ISLコマンドで-sオプションを使用します。これらのパラメータは、SSLプロトコルを使用する場合のみ設定する必要があります。SSLプロトコルは、Oracle Tuxedo Security Packにインストールされています。
次の表に、SSLパラメータの特性をリストします。
:
これらのパラメータ設定の詳細は、『CORBAアプリケーションにおけるセキュリティの使用』を参照してください。
構成ファイルのSERVICESセクションの作成方法
構成ファイルのSERVICESセクションでは、アプリケーションで提供されるサービスに関する詳しい情報を指定できます。非トランザクション型、非分散型のアプリケーションの場合、これらの情報の指定は簡単です。SERVICESセクションには、以下の種類の情報が含まれます。
サービスに必須パラメータはありません。サービスを示す必要があるのは、省略可能なパラメータを設定する場合のみです。
表3‑10に、SERVICESセクションの各パラメータの説明を示し、リファレンス・ページへのリンクや追加情報を示します。
 
AUTOTRAN (DTPアプリケーションの場合のみ)
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が指定されています。
関連項目
『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』UBBCONFIG(5)に関する項
トランザクションの自動開始とタイムアウト間隔を指定する
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値までトランザクション・タイムアウト値が制限(必要に応じて減少)されます。
関連項目
MAXTRANTIMEの詳細は、UBBCONFIG(5)RESOURCESセクションにあるMAXTRANTIME、またはTM_MIB(5)T_DOMAINクラスにあるTA_MAXTRANTIMEを参照してください。
サービスで受け付けるバッファ・タイプのリストを指定する
BUFTYPEパラメータを使用すると、サービス・コードとは関係なく、バッファ・タイプをチェックするサービスを調整できます。このパラメータを設定する場合は、サービスで受け付けるバッファ・タイプのリストを次の形式で指定します。
type[:subtype[,subtype]]
すべてのサブタイプを受け入れるには、subtypeの値を*に設定します。
サービスのBUFTYPEパラメータの値がALLの場合、このサービスはすべてのバッファ・タイプを受け入れます。デフォルトはALLです。
BUFTYPEパラメータの例
 
サブタイプがaudおよびaud2FMLおよびVIEWバッファ・タイプを受け入れます。
すべてのFMLおよびVIEWバッファ・タイプを受け入れます。
リクエストを処理する時間を指定する
リクエストの処理中に、予期しないシステム・エラーが発生し、サービスがフリーズしたり、制御不能になる場合があります。当然、これらのプロセスは削除することが望ましいですが、これらを検出したり、エラー原因を特定することは困難です。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つの機能を使用してサービス・タイムアウトを通知します。
TPED_SVCTIMEOUT - tpstrerror(3c)より詳細な情報を提供するタイムアウト・エラーの詳細
.SysServiceTimeout - システム・イベント
.SysServiceTimeoutに関するULOG情報
SVCTIMEOUT値が構成可能であるため、クライアントは、SVCTIMEOUTに設定された値を超過して発生したTPESVCERRと、それ以外の状況で発生したTPESVCERRを簡単に識別できることが重要です。この情報は、ULOGにも記録されていますが、クライアント・プログラムによって抽出するのは困難です。サービス・タイムアウトのTPESVCERRをその他のエラーと区別するため、プログラムでTPESVCERRを検出した後にtperrordetail(3c)ルーチンを呼び出し、サービス・タイムアウトが発生したときにTPED_SVCTIMEOUTを生成することができます。
また、サービス・タイムアウトが発生すると、システム・イベントである.SysServiceTimeoutが生成されます。.SysServiceTimeoutイベントが発生すると、ULOGに次のように記録されます。
ERROR: .SysServiceTimeout: %TA_SERVERNAME、グループ%TA_SRVGRP、id %TA_SRVIDのサーバーが、サービス・タイムアウトのため強制終了しました。
サービス・タイムアウトの制御方法
アプリケーション管理者は、UBBCONFIGファイルのSERVICESセクションにあるSVCTIMEOUTパラメータを変更するか、TM_MIBT_SERVERクラスまたはT_SERVICEクラスのTA_SVCTIMEOUT属性を変更して、サービス・タイムアウトを制御できます。また、ULOGファイルをモニターして、サービス・タイムアウトの動作を確認することもできます。
サービス・タイムアウトの動作についてULOGファイルをモニタリングする他に、アプリケーション・オペレータは、サービス・タイムアウトの発生時にアラートする.SysServiceTimeoutイベントをサブスクライブできます。
アプリケーション・プログラマは、tperrordetail(3c)およびtpstrerrordetail(3c)関数と、TPED_SVCTIMEOUTエラー詳細コードを使用できます。これらは、サービス・タイムアウトの発生時に生成される.SysServiceTimeoutシステム・イベントに1つ以上のサブスクリプションを追加できます。
非トランザクション型サービス・レベルのブロック時間を指定する
処理にかかる時間はサービスごとに異なるため、それぞれ個別に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パラメータには、次の特性があります。
RESOURCES LDBALパラメータがYに設定されている場合、ロード・バランシングが使用されます。
ルーティング基準名を定義する
データ依存型ルーティングを使用するときは、サービスで使用するルーティング基準を指定する必要があります。このような基準を指定するには、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セクションの作成方法
注意:
構成ファイルのINTERFACESセクションは、Oracle TuxedoシステムのCORBA環境用のパラメータを定義するために使用されます。このセクションでは、アプリケーションで使用されるCORBAインタフェースに対する、アプリケーション全体のデフォルト・パラメータを指定します。ファクトリ・ベース・ルーティングに参加するCORBAインタフェースに対しては、インタフェース名を定義し、Tuxedo CORBA環境で各インタフェースに適用するルーティング基準の名前を指定します。ファクトリ・ベース・ルーティングは、プロセスを特定のサーバー・グループに分散するための機能です。
ファクトリ・ベース・ルーティングを実装する場合、INTERFACESセクションの定義に加え、ROUTINGセクションでルーティング基準を指定し、GROUPSセクションでグループ名を指定する必要があります。パラメータおよびファクトリ・ベース・ルーティングの詳細は、この章の「?$paratext>?」という項を参照してください。
INTERFACESセクションでCORBAインタフェースを指定する
アプリケーションで使用するCORBAインタフェース固有の情報は、構成ファイルのINTERFACESセクションで指定します。必須パラメータはありません。省略可能なパラメータが不要の場合、CORBAインタフェースを示す必要はありません。INTERFACESセクションには、以下の種類の情報が含まれます。
次の表に、AUTOTRANFACTORYROUTINGLOADPRIOSRVGRPTRANTIMEおよびTIMEOUTの各パラメータの特性を示します。
 
操作の呼出しを受け取るときにトランザクションを自動的に開始する場合は、CORBAインタフェースごとにAUTOTRANYに設定します。 AUTOTRAN=Yは、インタフェースがすでにトランザクション・モードにある場合は無効です。デフォルトはNです。
AUTOTRANの値の指定が有効かどうかは、システム設計者が実装構成ファイル(ICF)またはサーバー記述ファイル(XML)でそのインタフェースに対して指定したトランザクション・ポリシーによって異なります。このトランザクション・ポリシーが、実行時に、関連するT_IFQUEUE MIBオブジェクトのトランザクション・ポリシーの属性になります。この値が実際にアプリケーションの動作に影響するのは、システム設計者がトランザクション・ポリシーを「optional」に指定した場合だけです。
CORBAインタフェースがシステムに与える相対的な負荷を示す、1から100の任意の数です。この番号付けスキームは、このアプリケーションで使用される他のCORBAインタフェースに割り当てられたLOAD値との関係で相対的に決まります。デフォルトは50です。この値は、Oracle Tuxedoシステムがリクエストのルーティング先サーバーを選択する際に使用されます。
CORBAインタフェースのすべてのメソッドに対して、キューから取り出す優先度を指定します。この値は、0より大きい100以下の数にする必要があります。100は、優先度が最も高いことを示します。デフォルトは50です。
SRVGRPを使用して、INTERFACESセクションのこの部分で定義されたパラメータが、指定したサーバー・グループ内のインタフェースに適用されることを示します。この機能を使用すると、指定されたCORBAインタフェースで、サーバー・グループごとに異なるパラメータを定義することができます。
AUTOTRANYに設定されている場合は、TRANTIMEパラメータを設定する必要があります(これは、計算するトランザクションに対するトランザクション・タイムアウト(秒)です)。値はゼロ以上、2,147,483,647 (231-1)(約70年)以下にする必要があります。値0(ゼロ)は、トランザクションにタイムアウトが設定されていないことを示します。(デフォルトは30秒です。)
ファクトリ・ルーティング基準を指定する
各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セクションの間の接続の詳細は、3‑89ページの「?$paratext>?」という項を参照してください。
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パラメータには、次の特性があります。
10回に1回ごとにリクエストはFIFOでキューから取り出されます。
サーバー・グループごとに異なるインタフェース・パラメータを指定する
別のサーバー・グループに、異なる負荷、優先度または他のインタフェース固有のパラメータを指定できます。これを実行するには、SRVGRPパラメータに異なる値を指定して、各グループに対してインタフェースのエントリを繰り返す必要があります。
構成ファイルのROUTINGセクションの作成方法
UBBCONFIGROUTINGセクションでは、SERVICESセクション(ATMIのデータ依存型ルーティングの場合)やINTERFACESセクション(CORBAのファクトリ・ベース・ルーティングの場合)で指定されたルーティング基準を詳細に定義できます。
注意:
表3‑11に、ROUTINGセクションの各パラメータの説明を示し、リファレンス・ページへのリンクや追加情報を示します。
 
RANGES (必須)
ATMIの場合は、データ依存型ルーティング用にSERVICESセクションのROUTINGパラメータの値として指定されたルーティング基準名になります。
CORBAの場合は、ファクトリ・ベース・ルーティング用にINTERFACESセクションでFACTORYROUTINGパラメータとして指定されたルーティング基準名になります。
ATMIの場合、デフォルトはTYPE=SERVICEになり、Tuxedo ATMI環境で使用される既存のUBBCONFIGファイルが引き続き正常に動作することが確実化されます。
ルーティング・フィールドの名前であり、値はそれぞれFMLバッファ、XMLの要素または要素の属性、FMLフィールド表で指定されたVIEWフィールド名(FLDTBLDIRおよびFIELDTBLS環境変数を使用)、FMLのVIEW表(VIEWDIRおよびVIEWFILES環境変数を使用)になります。この情報は、メッセージの送信時に、データ依存型ルーティングに関連するフィールド値を取得するために使用されます。
FIELD (必須)
BUFTYPE (必須)
ROUTINGセクションの例
次に、構成ファイルのROUTINGセクションの例を示します。
BRNCH FIELD=B_FLD
RANGES="0-2:DBG1,3-5:DBG2,6-9:DBG3"
BUFTYPE="FML"
ルーティング・バッファ・フィールドとフィールド・タイプを定義する
次の表は、ルーティング・バッファ・フィールドとフィールド・タイプの説明です。
 
 
Oracle Tuxedoのデータ依存型ルーティングでは、このパラメータの値は、FMLフィールドの名前(FMLバッファの場合)、XMLの要素または属性、FMLフィールド表で指定されたVIEWフィールド名(FLDTBLDIRおよびFIELDTBLS環境変数を使用)、FMLのVIEW表(VIEWDIRおよびVIEWFILES環境変数を使用)のいずれかになります。この情報は、メッセージの処理時に、データ依存型ルーティングに関連するフィールド値を取得するために使用されます。FML32バッファ内のフィールドがルーティングに使用される場合は、8191以下の数値をフィールド番号として指定します。
XMLドキュメントのルーティングでは、FIELD構文には、ルーティング要素のタイプ(または名前)またはルーティング要素の属性名が含まれます。FIELDパラメータは、次の構文で定義します。
要素は、XMLドキュメントまたはデータグラムの要素のタイプ(または名前)または要素の属性名とみなされます。この情報は、ドキュメントまたはデータ・グラムの送信時に、データ依存型ルーティングに関連する要素の内容または属性値を取得するために使用されます。索引はサポートされないので、Oracle Tuxedoシステムは、データ依存型ルーティングでXMLバッファを処理する際に、与えられた要素タイプの最初のオカレンスだけを認識します。
インタフェースに対応するTP::create_object_reference (C++)またはcom.beasys.Tobj.TP::create_object_reference (Java)。
このパラメータは、XMLバッファをルーティングする場合にのみ使用されます。これは、FIELDで指定されたルーティング・フィールドのタイプを示します。構文は次のとおりです。
typeは、stringcharshortlongfloatまたはdoubleのいずれかです。
範囲の基準を指定する
RANGESパラメータでは、フィールド値を次のようにグループ名にマップできます。
RANGES=”[val1[-val2]:group1] [,val3[-val4]:group2]...[,*:groupn]”
val1val2などはフィールドの値であり、groupnはグループ名または任意のグループが選択されることを示すワイルドカード文字(*)です。最後にvalの代わりに指定されている*文字はcatch-all、つまり、データが指定された範囲内にない場合はデフォルトのグループに割り当てられることを示します。また、データが範囲内にあっても、その範囲のエントリに関連する有効なサーバーがグループ内にない場合、サービス・リクエストは、ワイルドカード「*」で指定したデフォルトのグループに転送されます。val1には、以下の値を使用できます。
STRINGバッファまたはCARRAYバッファ(一重引用符で囲む)
MINまたはMAX (マシンのデータの最小値または最大値)
範囲はいくつでも指定できますが、ルーティング情報は共有メモリーに保存されるため、システム・リソースを消費します。
注意:
範囲は重複してもかまいませんが、どちらの範囲にも属する値は、最初のグループにマップされます。たとえば、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でファクトリ・ベース・ルーティングを実装する方法を示しています。このサンプルのubb_p.ntまたはubb_p.mk UBBCONFIGファイルは、Oracle Tuxedoソフトウェアのインストール・ディレクトリに収められています。\samples\corba\university\productionサブディレクトリを検索してください。
次のubb_b.nt構成ファイルのINTERFACESROUTINGおよび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セクションでは、ルーティング値ごとに次のデータを指定します。
TYPEパラメータでは、ルーティングのタイプを指定します。Productionサンプルでは、ルーティングのタイプはファクトリ・ベース・ルーティングです。したがって、このパラメータは、FACTORYと定義します。
FIELDパラメータでは、ファクトリがルーティング値として挿入する変数名を指定します。Productionサンプルでは、フィールド・パラメータはそれぞれ、student_idおよびaccount_numberです。
FIELDTYPEパラメータでは、ルーティング値のデータ型を指定します。Productionサンプルでは、student_idおよびaccount_numberのフィールドはlong型です。
RANGESパラメータでは、サーバー・グループと、各ルーティング値の有効範囲のサブセットを関連付けます。
リスト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つのサーバー・グループにインスタンス化され、IDが別の範囲に含まれる学生の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つのサーバー・グループに処理が分散されます。
BANK_GROUP1は、atmIDフィールドが1から5 (5を含む)の間または10より大きい場合に、アプリケーションで使用されるインタフェースを処理します。
BANK_GROUP2は、atmIDが6から10 (10を含む)の場合に、アプリケーションで使用されるインタフェースを処理します。
スレッドを利用するOracle Tuxedoシステムの構成方法
マルチコンテキスト化されたアプリケーションを構成するには、UBBCONFIGファイルを通常どおりに編集し、アプリケーションに必要な表3-12に示されたパラメータを追加します。編集には、テキスト・エディタまたはOracle Tuxedo管理コンソールを使用します。
 
省略可能なパラメータ。ただし、50アクセサ(デフォルト値)より大きい値を割り当てる必要があります。
非請求通知に使用するデフォルトの方法を定義する省略可能なパラメータ。マルチコンテキスト・アプリケーションで有効な値は次のとおりです。
省略可能なパラメータただし、50アクセサ(デフォルト値)より大きい値を割り当てる必要があります。
マルチスレッド化されたサーバーの必須パラメータ
既存のサーバーをマルチスレッド化する場合は、サーバーのソース・コードがスレッド・セーフな方法で記述されていることを経験を積んだプログラマが検証する必要があります。つまり、構成ファイルのMAXDISPATCHTHREADSの値を増やすのみでは、静的変数を使用して記述されたシングルスレッドのサーバーをマルチスレッドのサーバーに変換することはできません。このようなサーバーは、マルチスレッド用として作成する必要があります。
構成ファイルのコンパイル方法
構成ファイルのコンパイルとは、テキスト形式(UBBCONFIG)から、バイナリ形式のファイル(TUXCONFIG)を生成することです。構成ファイルをコンパイルするには、tmloadcfコマンドを実行します。tmloadcfによりUBBCONFIGファイルが解析され、バイナリ形式のファイルがロードされます。
tmloadcfは、ファイル(UBBCONFIGの構文に記述された標準入力)を読み取って構文をチェックし、オプションでバイナリ形式の構成ファイルであるTUXCONFIGをロードします。TUXCONFIG環境変数およびTUXOFFSET環境変数(オプション)により、TUXCONFIGファイルとオフセットが指定され、情報はこの場所に格納されます。tmloadcfは、-cまたは -nオプションが指定されていないかぎり、UBBCONFIGファイルのRESOURCESセクションで指定されているMASTERマシンでのみ実行できます。
注意:
tmloadcfを実行するユーザーのユーザー識別子(UID)は、UBBCONFIGファイルのRESOURCESセクションのUIDと一致する必要があります(指定されている場合)。
TUXCONFIG環境変数に指定されたパス名は、UBBCONFIGファイルのMACHINESセクション内のTUXCONFIGパラメータに指定されているパス名と完全に一致する必要があります(大文字/小文字の区別も含む)。パス名が一致していない場合、tmloadcf(1)は正常に実行されません。

Copyright ©1994, 2017,Oracle and/or its affiliates. All rights reserved