図3-1に、複数のドメインにまたがるサンプル・アプリケーションの構成タスクを示します。
図3-2に、2つのドメインにまたがるアプリケーションの構成に必要な
UBBCONFIGファイルと
DMCONFIGファイルのセクションを示します。一方のドメインがローカル・ドメインを表し、もう一方のドメインがリモート・ドメインを表しています。
すべての構成ファイルの最初のセクションは、RESOURCESセクションである必要があります。このセクションで定義されるパラメータは、アプリケーション全体を制御し、システム全体のデフォルトとして機能します。ただし、
MACHINESセクションに他の値を割り当てることで、
RESOURCESパラメータの値をマシンごとにオーバーライドできます。
表3-1に、
RESOURCESセクションの各パラメータの説明を示し、リファレンス・ページへのリンクや追加情報を示します。
MODELパラメータと
OPTIONSパラメータを使用して、アプリケーション・タイプを定義します。
MODELパラメータは、アプリケーションを単一プロセッサで実行するかどうかを指定します。ユニプロセッサおよびグローバル共有メモリーのあるマルチプロセッサの場合は
SHMに設定されます。グローバル共有メモリーのないマルチプロセッサとネットワーク化されたアプリケーションの場合は、
MPの
MODEL値が使用されます。これは必須パラメータです。
OPTIONSパラメータは、アプリケーション構成オプションのカンマ区切りリストです。使用可能な2つのオプションは、(ネットワーク構成を示す)
LANと(アプリケーション・サーバー移行が許可されることを示す)
MIGRATEです。
表3-2に、MODELおよびOPTIONSパラメータの特性を示します。
|
|
|
これは必須パラメータです。SHMの値は、グローバル共有メモリーのある単一のマシンを示します。値 MPは、グローバル共有メモリーのない複数のマシン、またはネットワーク・アプリケーションを示します。
|
|
これは、アプリケーション構成オプションのカンマ区切りリストです。LANの値は、ローカル・エリア・ネットワークを示します。値 MIGRATEはサーバー移行を有効にします。
RESOURCESセクションの例では、 MODELは MPに設定されています。 OPTIONSは LANおよび MIGRATEに設定されています。
|
アプリケーションで使用できるバッファ・タイプおよびサブタイプの数はそれぞれ、MAXBUFTYPEパラメータおよび
MAXBUFSTYPEパラメータで制御できます。ユーザー定義のバッファ・タイプを多数作成していないかぎり、
MAXBUFTYPEは省略できます。何種類もの
VIEWサブタイプを使用する予定がある場合は、
MAXBUFSTYPEの設定を、現在のデフォルト値より増やしておきます。
MAXCONVパラメータで、マシン上の同時会話の最大数を指定できます。
MAXCONVは0より大きく32,768より小さい値にする必要があります。
MAXCONVパラメータには、次の特性があります。
•
|
SERVERSセクションにリストされる会話サーバーを持つアプリケーションのデフォルトは10です。それ以外の場合、デフォルトは1です。
|
•
|
MACHINESセクションに別の値を指定することで、どのマシンでもこのパラメータを上書きできます。
|
MAXACCESSERS、
MAXSERVERS、
MAXSERVICES、
MAXINTERFACESおよび
MAXOBJECTSは、IPCのサイズ設定を制御するチューニング可能なパラメータです。アプリケーションに割り当てられている共有メモリー量は、
MAXGTTパラメータと
MAXCONVパラメータで制御されます。
注意:
|
システム提供のサーバーの例として、AUTHSVR、 TMQUEUE、 TMQFORWARD、 TMUSREVT、 TMSYSEVT、 TMS、 TMS_QM、 GWTDOMAIN、 WSLがあります。
|
MAXACCESSERSの増加によるコストは、クライアントまたはサーバー・プロセス(アクセサ - 次の注意を参照)のサイト当たり1つの追加
セマフォです。
MAXACCESSERS値によって追加されるオーバーヘッドに加えて、システム・プロセスには小さい固定のセマフォ・オーバーヘッドがあります。
MAXSERVERSと
MAXSERVICESの増加のコストは、サーバー、サービス、クライアント・エントリそれぞれに保持される少量の共有メモリーです。これらのパラメータに関する一般的な概念は、アプリケーションの将来の拡張に対応することです。
MAXACCESSERSを精査することの方が重要です。
リリース7.1より前のOracle Tuxedoリリースでは、アプリケーションのMAXACCESSERSパラメータと
MAXSERVERSパラメータの両方が、ユーザー・ライセンス・チェック・スキームに関与しました。具体的には、そのマシンの
MAXACCESSERSの数と、アプリケーションですでに実行されている1台以上のマシンの
MAXACCESSERSの数の合計が、
MAXSERVERSの数とアプリケーションのユーザー・ライセンス数の合計を超える場合、マシンの起動は許可されません。したがって、アプリケーションの
MAXACCESSERSの合計数は、
MAXSERVERSの数とアプリケーションのユーザー・ライセンス数の合計以下である必要があります。
•
|
LDBALが Yに設定されている場合は、ロード・バランシングが使用されます。
|
•
|
LDBALが Yに設定され、アプリケーションがネットワーク化されている場合は、ローカル・プリファレンスに TMNETLOADを使用できます。
|
•
|
LDBALが Nに設定されている場合、割り当てられるサーバーは最初に使用可能なサーバーです。
|
•
|
LDBALはオーバーヘッドを発生させるため、必要な場合にのみ使用してください。
|
MASTERマシンは、アプリケーション全体の起動と管理を制御します。
MASTERパラメータを設定することで、すべてのアプリケーションに
MASTERマシンを指定する必要があります。
MASTERの値は、適切なコンピュータの論理マシン識別子(
LMID)です。
LMIDは、管理者によって選択された英数字文字列として定義され、
MACHINESセクションの
LMIDパラメータに割り当てられています。したがって、たとえば
LMIDパラメータの値が
SITE1の場合は、
MASTERの値も
SITE1になります。
アプリケーションを停止せずにMASTERマシンを停止できるようにするには、
MASTERを移行できる必要があります。移行を有効にするには、
LMIDに対してプライマリ
MASTERとバックアップ
MASTERの2つの値を指定する必要があります。
•
|
RESOURCESセクションの例では、マスター・サイトは SITE1、バックアップ・サイトは SITE2です。
|
Site1は
MASTERマシンです。
SITE2はバックアップ・マシンです。
SANITYSCANパラメータを使用して、サーバーの正常性チェックと、次回のチェックまでの間に経過する
SCANUNITの数を指定します。現在のデフォルトは、
SANITYSCAN *
SCANUNITが約120秒になるように設定されています。
また、BLOCKTIMEパラメータを設定することで、メッセージ、トランザクションおよびその他のシステム・アクティビティのブロッキングに対するタイムアウト期間数を指定できます。
タイムアウトという用語は、クライアントが次の操作を行っている間に経過する時間を総称するために使用されます。
ブロッキング・タイムアウトという用語は、クライアント・リクエストがブロッキング条件のクリアを待機するために費やした時間を表します。非同期サービス・リクエストおよび会話のブロック・タイムアウトは、個々の送信操作と受信操作に適用されます。プロセスが
tpacall (3c)、
tpconnect (3c)または
tpsend (3c)を使用してメッセージを送信する場合、タイムアウトは、キューが一杯の場合にリクエストがキューに入るまで待機している期間にのみ適用されます。クライアント・プロセスが
tpgetrply (3c)または
tprecv(3c)呼出しを発行してメッセージを受信する場合、タイムアウトはキューが空の場合にクライアントが着信メッセージを待機できる時間の長さを指定します。
UID、
GID、
PERMの3つのパラメータを設定することで、Oracle Tuxedo管理機能へのアクセスを、認可された管理者のみに制限できます。
MACHINESセクションで指定された値をオーバーライドしていないかぎり、
UIDおよび
GIDのデフォルトは、それぞれ構成に対して
tmloadcf(1)コマンドを実行するユーザーのユーザーIDとグループIDです。
|
|
|
デフォルトは、tmloadcf(1)を実行するユーザーのユーザーIDです。
|
|
デフォルトは、tmloadcf(1)を実行するユーザーのグループIDです。
|
|
|
•
|
PERMパラメータ - 権限を介してアプリケーション・キューへの書込み機能を制限することで最小限のセキュリティを提供します。
|
•
|
SECURITYパラメータ - より高いセキュリティを提供します。このパラメータが設定されている場合、クライアントはアプリケーションに参加するときにパスワードを指定する必要があります。このパスワードは、 TUXCONFIGファイルが UBBCONFIGファイルから生成されたときに管理者が指定したパスワードに照らしてチェックされます。
|
•
|
AUTHSVCパラメータ - 最大レベルのセキュリティを設定します。このパラメータが設定されている場合、アプリケーションに参加するためのクライアント・リクエストは認証サービスに送信されます。認証サービスは、Oracle Tuxedoシステムで提供されるデフォルトのサービスまたはKerberosサービスなどのサード・パーティ・ベンダーのサービスです。このレベルのセキュリティは、 SECURITYパラメータが設定されていないかぎり使用できません。
|
注意:
|
LDAPシングル・セキュリティ管理を有効にするには、 UBBCONFIGファイルの SERVERSセクションで LAUTHSVRを設定する必要があります。
|
認証および認可の拡張セキュリティ管理を有効にするには、
UBBCONFIGファイルの
SERVERSセクションで
XAUTHSVRを設定する必要があります。
SEC_PRINCIPAL_NAME、
SEC_PRINCIPAL_LOCATIONおよび
SEC_PRINCIPAL_PASSVARパラメータを使用すると、認証用のサーバーのセキュリティ属性を指定できます。
SYSTEM_ACCESSパラメータを使用すると、共有メモリーにあるシステム表を、アプリケーション・クライアントとアプリケーション・サーバーから保護できます。このパラメータを指定しておくと、アプリケーションの開発中に、欠陥のあるアプリケーション・コードが不当なポインタによって誤って共有メモリーの内容を破壊することを防ぐことができます。アプリケーションが完全にデバッグされ、テストされたら、パラメータの値を変更して、リクエストが早く返されるように設定できます。このパラメータの有効な値は、次のとおりです。
•
|
PROTECTED - アプリケーション・コードとともにコンパイルされたOracle Tuxedoライブラリは、システム・コードの実行中には共有メモリーにアタッチされません。
|
•
|
FASTPATH - Oracle Tuxedoライブラリは、常に共有メモリーにアタッチされます。
|
値を選択した後でNO_OVERRIDEを指定すると、選択したオプションをクライアントや管理者が変更できなくなります(クライアントの場合は
tpinit()呼出しの
TPINIT構造体、管理者の場合はサーバーの
SERVERSセクションで指定)。
SYSTEM_ACCESS PROTECTED, NO_OVERRIDE
共有メモリーのアドレスを設定するには、IPCKEYパラメータを設定します。このパラメータにより、Oracle Tuxedoシステムは、アプリケーションに対してIPCリソースを割り当てます。これにより、新たにアプリケーションに参加したプロセスはIPCリソースを簡単に見つけることができます。キーの値は、新しいアプリケーション・プロセスに対して掲示板、メッセージ・キュー、およびセマフォを割り当てるために内部で使用されます。単一プロセッサ・モードでは、このキーが掲示板を指定します。マルチプロセッサ・モードでは、このキーがDBBLのメッセージ・キューを指定します。
NOTIFYパラメータを設定すると、クライアントが非請求メッセージを受信するデフォルトの方法を設定できます。ただし、クライアントは、
tpinit()を呼び出してこの選択をオーバーライドできます。
•
|
IGNORE - クライアントは、非請求メッセージを無視します。
|
•
|
DIPIN - クライアントは、 tpchkunsol()を呼び出したとき、またはATMI呼出しを行ったときにのみ非請求メッセージを受信します。
|
•
|
SIGNAL - クライアントは、シグナル・ハンドラに関数を呼び出させるシグナルをシステムに生成させて、つまり、 tpsetunsol()を使用して設定して、非請求メッセージを受信します。
|
•
|
THREAD - 非請求メッセージは、Oracle Tuxedoシステムがこの目的で管理する別のスレッドによって処理されます。
|
USIGNALパラメータは、
SIGNALベースの通知を使用する場合に使用されるシグナルを指定します。
SIGUSR1と
SIGUSR2の2種類のシグナルが生成されます。デフォルト設定は
SIGUSR2です。この方法を使用すると、直ちに通知を返すことができますが、ネイティブ・クライアントを実行しているときは、制限があります。つまり、送信プロセス側のユーザーIDが同じでなければなりません。ただし、ワークステーション・クライアントには、この制限はありません。
|
|
|
値IGNOREは、クライアントが非請求メッセージを無視することを示します。
値DIPINは、クライアントが、 tpchkunsol()を呼び出すとき、またはATMI呼出しを行うときにのみ非請求メッセージを受信することを示します。
値SIGNALは、クライアントがシグナルにより非請求メッセージを受信することを示します。
|
|
値SIGUSR1と SIGUSR2は、クライアントにこのタイプのシグナルを通知することを意味します。
|
•
|
マシン・アドレスから論理識別子( LMID)へのマッピング
|
注意:
|
特定のマシンでは、システム全体に関するパラメータUID、 GID、 PERM、 MAXACCESSERS、 MAXOBJECTS、 MAXCONVおよび MAXGTTをオーバーライドできます。 MAXGTT以外のパラメータについては、 RESOURCESセクションを参照してください。
|
表3‑3に、
MACHINESセクションの各パラメータの説明を示し、リファレンス・ページへのリンクや追加情報を示します。
|
|
|
SECURITYが ACLまたは MANDATORY_ACLに設定されている場合に、ACLエントリで使用されるキャッシュ内のエントリ数。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
バイナリ形式のTUXCONFIGファイルが置かれているマシン上のファイルまたはデバイスの絶対パス名。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
このマシンのDTPトランザクション・ログ(TLOG)を格納するOracle Tuxedoのファイル・システム。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SEC_PRINCIPAL_NAME、SEC_PRINCIPAL_LOCATION、SEC_PRINCIPAL_PASSVAR
|
|
アプリケーション・ディレクトリ(APPDIR)の絶対パス名。このディレクトリは、このマシンで起動するすべてのアプリケーションおよび管理サーバーのカレント・ディレクトリになります。また、Oracle Tuxedoシステム・ソフトウェアのインストール先ディレクトリの絶対パス名でもあります。
|
|
|
リモート・プロセス( string_value1)およびローカル・プロセス( string_value2)にバインドされる、自動データ圧縮が実行されるメッセージのメッセージ・サイズのしきい値。
|
|
|
このマシンのuserlog(3c)メッセージ・ファイル名の接頭辞として使用されるフルパス名。
|
|
|
上のMACHINESセクションの例では、次のパラメータと値が指定されています。
MACHINESセクションをカスタマイズするには、次を指定します。
•
|
TUXDIRの値としてのOracle Tuxedoソフトウェアが格納されているディレクトリのフルパス名
|
•
|
APPDIRの値としてのアプリケーション・ディレクトリのフルパス
|
•
|
ENVFILE、 TUXCONFIGおよび ULOGPFXのシステム上でのフルパス名
|
SECURITYが
ACLまたは
MANDATORY_ACLに設定されている場合は、
MAXACLCACHEパラメータを使用して、キャッシュ内のACLエントリ数を指定できます。このパラメータに適切な値を設定すると、以下のことを実現できます。
NETLOADパラメータを使用して、あるマシンから別のマシンにサービス・リクエストを送信するコストの計算時に加算する負荷を指定できます。この値は0以上、32,768未満の数値にする必要があります。デフォルトは0です。
最初に、アドレス部分にMASTERマシンのアドレスを定義します(これは
MACHINESセクション・エントリの基礎になります)。エントリの他のすべてのパラメータは、このアドレスで指定されたマシンを記述します。UNIXシステムで
uname -nを呼び出すことで、出力する値にアドレスを設定する必要があります。Windowsシステムでは、「ネットワーク」コントロール パネルの「ネットワークID」ダイアログで「コンピュータ名」の値を参照してください。
LMIDパラメータは必須です。このパラメータは、アドレスを指定したばかりのコンピュータを示す論理名を指定します。論理名には、アプリケーション内のマシン間で一意の英数字を指定します。
LMID=logical_machine_name
LMIDは、物理プロセッサに対する論理マシン名です。論理マシン名には、
MACHINESセクションで一意の英数字を指定します。
SPINCOUNTパラメータの値は、アプリケーションおよびシステムによって異なりますが、次の基本的なガイドラインを覚えておくと便利です。
•
|
マルチプロセッサの場合、SPINCOUNTの値は5,000から始めるのが適切ですが、場合によっては100,000が適切です。
|
•
|
SPINCOUNTの値を設定した後で、アプリケーションのスループットを確認します。 SPINCOUNTの値は、 TMIBを使用してシステムの実行中に調整できます。
|
TYPEパラメータを使用すると、マシンをクラスごとにグループ化できます。
TYPEには、15文字以下の任意の文字列を設定できます。
•
|
2つのマシンに対して同じTYPEの値が指定されている場合、これらのマシン間でデータを送信するときは、データのエンコードおよびデコードは実行されません。
|
•
|
TYPEには、任意の文字列値を指定できます。このパラメータは、比較のために使用します。
|
•
|
TYPEパラメータは、アプリケーションが異機種ネットワークのマシンで構成されている場合、またはネットワーク内のマシン上で様々なコンパイラを使用している場合に使用する必要があります。
|
TUXCONFIGパラメータには、次の特性があります。
•
|
TUXCONFIGパラメータの構文は、 TUXCONFIG="full_path_of_tuxconfig"です。
|
•
|
TUXCONFIGの値には、64文字以下の文字列を指定できます。
|
•
|
TUXCONFIGの値は、 TUXCONFIG環境変数の値と一致する必要があります。
|
TLOGSIZEパラメータを使用して、このマシンのDTPトランザクション・ログのサイズをページ単位で指定します。この値は、オペレーティング・システムのファイル・システム上の使用可能な容量に応じて、0より大きく2048以下の数値にする必要があります。デフォルトは100ページです。
TLOGNAMEパラメータを使用して、このマシンのDTPトランザクション・ログの名前を定義します。デフォルトは、
TLOGです。1つの
TLOGDEVICEに複数の
TLOGがある場合、各TLOGの名前は一意でなければなりません。
TLOGNAMEには、
TLOG表の作成先である
TLOGDEVICEの
VTOC (ボリューム・リスト)内の表名とは異なる名前を指定する必要があります。
TLOGNAMEには、30文字以下の英数字を指定します。
ENVFILEパラメータを使用すると、Oracle Tuxedoシステムが起動するすべてのプロセスに対する環境変数設定を格納するファイルを指定できます。各プロセスの
TUXDIRおよび
APPDIRは、システム側で設定されます。したがって、これらのパラメータはファイル内で指定しないでください。
•
|
ENVFILEパラメータの値の構文は、 ENVFILE="envfile"のように文字列を二重引用符で囲みます。
|
•
|
ENVFILEは、Oracle Tuxedoシステムが起動するすべてのプロセスに対する環境変数設定を格納するファイルです。( UBBCONFIGファイルは、同様の方法、つまり完全修飾パス名を使用して警告を生成します。)
|
•
|
FIELDTBLS、 FLDTBLDIRなどを設定しますが、 TUXDIRと APPDIRは設定しません。
|
TLOGDEVICEパラメータを使用して、このマシンのDTPトランザクション・ログ(
TLOG)を格納するOracle Tuxedoのファイル・システムを指定します。
TLOGは、Oracle TuxedoシステムのVTOC表としてデバイスに格納されています。
TLOGDEVICEの値は、64文字以下の文字列でなければなりません。
MAXGTTパラメータを使用して、特定のマシンが同時に関与できるグローバル・トランザクションの最大数を指定します。この値は0以上、32,768未満の数値にする必要があります。
RESOURCESセクションで指定した値は、
MACHINESセクションでマシンごとにオーバーライドできます。
MAXWSCLIENTSパラメータを使用して、ワークステーション・クライアント用に確保しておくマシン上のエントリ数を定義します。
MAXWSCLIENTS用に確保しておくアクセサ・スロットの数は、慎重に設定してください。この値は、このマシンの
MAXACCESSERSで指定したアクセサ総数のうちの一部になります。このマシンのその他のクライアントやサーバーは、
MAXWSCLIENTS用に確保されたアクセサ・スロットを使用できません。ワークステーション・クライアントからのシステムへのアクセスは、Oracle Tuxedoシステムに組み込まれている代理プロセス、つまりOracle Tuxedoワークステーション・ハンドラ(WSH)によって多重化されます。そのため、このパラメータを適切に設定すると、IPCリソースを節約できます。
MAXWSCLIENTSには、0以上32,768未満の値を指定する必要があります。指定されていない場合、デフォルトは0です。このパラメータを
MAXACCESSERSより大きい数値に設定することはできません。
注意:
|
MAXWSCLIENTSの値は、ライセンス供与されているユーザー数によって制限されます。
|
MAXPENDINGBYTESパラメータを使用して、
BRIDGEプロセスによる送信を待機するメッセージに割り当てることができる領域の量の制限を定義します。値には、100,000から
MAXLONGまでの値を指定します。
MAXPENDINGBYTESが重要になる状況は2つあります。
TLOGOFFSETパラメータを使用して、このマシンのデバイスの先頭からOracle Tuxedoファイル・システムの開始点(このマシンのDTPトランザクション・ログを格納)までのオフセットをページ単位で指定します。オフセットには、0以上でデバイス上のページ数より小さい値を指定します。デフォルトは0です。
TUXOFFSETパラメータを使用して、このマシンのデバイスの先頭からOracle Tuxedoファイル・システムの開始点(このマシンの
TUXCONFIGを格納)までのオフセットをページ単位で定義します。(この値が環境でどのように使用されるかについては、
MACHINESセクションの
ENVFILEを参照してください。)
•
|
0以外のTUXOFFSETの値は、マシン上で起動するすべてのサーバーの環境に設定されます。
|
|
|
|
構文は、APPDIR="APPDIR"のようにフルパス名を二重引用符で囲む必要があります。
APPDIRは、アプリケーション・ソフトウェアの場所を示します。
APPDIRは、サーバー・プロセスの現在の作業ディレクトリになります。
|
|
構文は、TUXDIR="TUXDIR"のようにフルパス名を二重引用符で囲む必要があります。
TUXDIRは、Oracle Tuxedoソフトウェアの場所を示します。
|
CMPLIMITパラメータを使用して、リモート・プロセス(
string_value1)およびローカル・プロセス(
string_value2)にバインドされている、自動データ圧縮が実行されるメッセージのしきい値を定義します。
注意:
|
CMPLIMITの値を設定した後で、アプリケーションのスループットを確認します。 CMPLIMITの値は、 TMIBを使用してシステムの実行中に調整できます。
|
ULOGPFXパラメータを設定して、このマシン上の
userlog(3c)メッセージ・ファイルの名前の接頭辞として使用するフルパス名を指定します。指定したマシンの
ULOGPFXの値は、このマシン上で実行されるすべてのサーバー、クライアント、および管理プロセスに関する
userlog(3c)メッセージ・ファイルを作成するために使用されます。このパラメータが指定されない場合、
APPDIR環境変数で指定されたパスが使用されます。
mmddyy (月、日、年)が接頭辞に追加されると、完全なログ・ファイル名になります。
ULOGPFXパラメータには、次の特性があります。
•
|
ULOGPFXパラメータの値の構文は、 ULOGPFX=" ULOGPFX"のように文字列を二重引用符で囲みます。
|
•
|
ULOGPFXは、 APPDIR/ULOGにデフォルト設定されます。
|
•
|
たとえば、BANKLOG.022667というファイルの場合、 userlogの名前の接頭辞は、次のように指定されます。 ULOGPFX=" /mnt/usr/appdir/logs/BANKLOG"
|
GROUPSセクションを使用して、論理的にグループ化されたサーバー・セットを指定します。これを後で使用して、リソース・マネージャにアクセスしたり、サーバー・グループの移行を簡単に行うことができます。構成ファイルの
GROUPSセクションでは、サーバー・グループが定義されています。アプリケーション・サーバーをマシン上で実行するには、マシンに対して少なくとも1つのサーバー・グループを定義する必要があります。ただし、マシンに対してサーバー・グループが定義されていなくても、アプリケーションの一部にグループを含め、そのサイトから管理コマンド
tmadmin(1)を実行できます。
表3‑4に、
GROUPSセクションの各パラメータの説明を示し、リファレンス・ページへのリンクや追加情報を示します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TMSNAMEが指定されている場合に、関連するグループに対して起動するトランザクション・マネージャ・サーバーの数。
|
|
|
|
SEC_PRINCIPAL_NAME、SEC_PRINCIPAL_LOCATION、SEC_PRINCIPAL_PASSVAR
|
|
|
|
|
このサーバー・グループがMACHINESセクションの string_value1でシンボリックに指定されているマシン(または、 SHMモードのデフォルト)に存在することを示す値。
|
|
|
|
|
|
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"
Productionサンプルでは、ORA_GRP1、ORA_GRP2、APP_GRP1および
APP_GRP2の4つのグループが指定されています。ここでは、これらのグループを構成し、実行するマシンを識別しなければなりません。
上の例は、ORA_GRP1、ORA_GRP2、APP_GRP1および
APP_GRP2グループの構成方法を示しています。
GROUPSセクションの名前が
ROUTINGセクションで指定されるグループ名とどのように一致するかについては、
3‑89ページの「?$paratext>?」という項を参照してください。ルーティング機能を正しく動作させるには、この一致が重要です。また、アプリケーションでグループを構成する際にグループ名を変更した場合は、
ROUTINGセクションにも反映させる必要があります。
GROUPSセクション・エントリの基本であるグループ名は、グループを識別する名前であり、英数字で指定します。グループ名により、グループの論理名(
string_value)が決まります。各グループには、一意のグループ番号(
GRPNO)が指定されます。各グループは、すべて1つの論理マシン(
LMID)上に常駐する必要があります。
LMIDは、このサーバー・グループが
MACHINESセクションの
string_value1でシンボリックに指定されているマシンに存在することを示します。
|
|
|
|
|
|
LMID=string_value1 [ ,string_value2]
|
各LMID値には、30文字以下の英数文字列を指定する必要があります。
|
TMSNAMEが指定されている場合は、
TMSCOUNT=numberも指定し、関連するグループに対して起動するトランザクション・マネージャ・サーバーの数を指定する必要があります。
TMSCOUNTのデフォルト値は3です。このパラメータに0以外の値を指定する場合、指定できる最小値は2、最大値は256です。サーバーは、自動的にMSSQセットに設定されます。
ENVFILE環境変数(
ENVFILE=string_value)の値に無効なファイル名が指定された場合、環境には何も値が追加されません。環境ファイルの各行は、
ident=valueの形式で指定します。
identはアンダースコアまたは英数字で構成します。
value内の
${
env}という形式の文字列は、ファイルの処理時に、環境内の既存の変数を使用して展開されます。前方参照はサポートされていません。値が設定されていない場合、変数は空の文字列に置換されます。バックスラッシュ(\)を使用すると、ドル記号($)およびバックスラッシュ自体をエスケープできます。その他のシェルのクォーテーションおよびエスケープのメカニズムは無視され、展開されたvalueがそのまま環境に組み込まれます。
SERVERSセクションの値は、
GROUPSセクションの値をオーバーライドします。
GROUPSセクションの値は、
MACHINESセクションの値をオーバーライドします。
OPENINFOおよび
CLOSEINFOパラメータの値には、256以下の英数字で構成する文字列を二重引用符で囲んで指定する必要があります。これらの設定は、このグループ(グループ名)のリソース・マネージャを開くおよび閉じるときに必要な、リソース・マネージャに依存する情報を指定します。
このグループのTMSNAMEパラメータが設定されて
いないか、
TMSに設定されている場合、この値は無視されます。
TMSNAMEパラメータが
TMS以外の値に設定されており、
OPENINFOがNULL文字列(
"")に設定されているか、または何も設定されていない場合は、グループのリソース・マネージャは存在しますが、
open操作の実行に関する情報は必要ありません。
TMSNAMEパラメータが
TMS以外の値に設定されており、
CLOSEINFO文字列にNULL文字列(
"")が設定されているか、または何も設定されていない場合は、グループのリソース・マネージャは存在しますが、close操作の実行に関する情報は必要ありません。
OPENINFO文字列の形式は、基礎となるリソース・マネージャを提供しているベンダーの要件ごとに異なります。ベンダー固有の情報の先頭には、トランザクション・インタフェース(XAインタフェース)の公開名とコロン(:)が付きます。
•
|
UNIXの場合 OPENINFO = "TUXEDO/QM:qmconfig:qspace"
|
これらすべての設定では、TUXEDO/QMがOracle Tuxedo /Q XAインタフェースの公開名です。
qmconfigは、キュー・スペースが存在する
QMCONFIG (『Oracle Tuxedoコマンド・リファレンス』の
qmadmin(1)に関する項を参照)の名前です。
qspaceはキュー・スペースの名前です。Windowsでは、
qmconfigの後に指定する区切り文字として、セミコロン(
;)を使用します。
他のベンダーのデータベースの場合、OPENINFO文字列の形式は、基礎となるリソース・マネージャを提供している特定のベンダーに固有です。たとえば、次の
OPENINFO文字列は、Oracleリソース・マネージャをオープンするときに必要な情報のタイプを示します。
Oracle_XAは、Oracle XAインタフェースの公開名です。
OPENINFO文字列内の5つの連続するアスタリスク(*)は、暗号化されたパスワードを示します。次に、パスワードについて説明します。
リソース・マネージャに渡されるOPENINFO文字列内のパスワードは、クリア・テキストまたは暗号化形式で格納できます。パスワードを暗号化するには、まず、
OPENINFO文字列内のパスワードが必要な場所に、5つ以上の連続するアスタリスクを入れます。次に、
tmloadcf(1)コマンドを実行して、
UBBCONFIGファイルをロードします。
tmloadcf()は、アスタリスクの文字列を検出すると、パスワードの作成をユーザーに要求します。例:
tmloadcf()は、暗号化形式でパスワードを
TUXCONFIGファイルに格納します。
tmunloadcf(1)を使用して
TUXCONFIGから
UBBCONFIGファイルを再生成すると、パスワードは
@@で区切られた暗号化形式でその
UBBCONFIGファイルに出力されます。例:
tmloadcf()の実行時に、
tmunloadcf()によって生成された
UBBCONFIGファイル内で暗号化されたパスワードが検出されても、ユーザーに対してパスワードの作成は要求されません。
表3‑5に、
NETWORKセクションの各パラメータの説明を示し、リファレンス・ページへのリンクや追加情報を示します。
|
|
|
LMID上に置かれたBRIDGEプロセスによって、ネットワークへのアクセスに使用されるデバイス名。
|
|
|
BRIDGEプロセスで使用する完全なネットワーク・アドレス。これは LMIDのリスニング・アドレスです。
|
|
|
|
|
|
|
|
|
このネットワーク・エントリに関連付けられているネットワーク・グループ。指定しない場合、デフォルト値はDEFAULTNETとみなされます。( DEFAULTNETが設定されない場合、 NETGROUPSセクションで指定したグループ名をこのパラメータに定義する必要があります。)
|
|
|
LMIDが指定するノード上でネットワークにサービスを提供する tlisten(1)プロセスで使用されるネットワーク・アドレス。
|
|
|
LMID上に置かれた
BRIDGEプロセスで使用するデバイス名を指定し、ネットワークにアクセスするには、
BRIDGEパラメータを次のように設定します。
LMIDのリスニング・アドレスとして、LMID上に置かれている
BRIDGEプロセスで使用する完全なネットワーク・アドレスを指定するには、
NADDRパラメータを次のように設定します。
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アドレスを含む文字配列に変換されます。
LMIDが指定するマシン上でネットワークにサービスを提供する
tlisten(1)プロセスで使用されるネットワーク・アドレスを指定するには、
NLSADDRパラメータを次のように設定します。
stringの値には、
NADDRパラメータと同じ形式でネットワーク・アドレスを指定します。
NLSADDRの
tlistenアドレスは、次の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)は、
NLSADDRが
MASTER LMIDのエントリから欠落している場合は警告を出力し、これ以外の任意のマシンのエントリから欠落している場合はエラーを出力します。
NLSADDRが
MASTER LMIDから欠落している場合には、
tmadmin(1)をリモート・マシンから管理者モードで実行することはできません。読取り専用操作のみに限定されます。また、
MASTERサイトで障害が発生しても、バックアップ・サイトから再起動できません。
UBBCONFIGファイルの
NETGROUPSセクションでは、LAN環境のアプリケーションで使用可能なネットワーク・グループを指定します。1組のマシンに割り当てるネットワーク・グループの数に制限はありません。ネットワーク・グループを構成する各ネットワークの通信方式は、優先度のメカニズム(
NETPRIO)によって決まります。
すべてのLMIDは、デフォルトのネットワーク・グループ(
DEFAULTNET)のメンバーである必要があります。デフォルトのネットワーク・グループのグループ番号(
NETGRPNO)は、0です。ただし、
DEFAULTNETに設定されているデフォルトの優先度は変更できます。リリース6.4より前のOracle Tuxedoシステムで定義されているネットワークは、
DEFAULTNETネットワーク・グループに割り当てられています。
表3-6に、
NETGROUPSセクションの各パラメータの説明を示し、リファレンス・ページへのリンクや追加情報を示します。
•
|
GREEN_GROUP (メンバーのマシン間に、高速な光ファイバのポイント・ツー・ポイント・リンクを提供する専用LAN)
|
すべてのマシンは、DEFAULTNET (企業WAN)に属します。さらに、各マシンは
MAGENTA_GROUPまたは
BLUE_GROUPに関連付けられます。
MAGENTA_GROUP LANの一部のマシンは、
GREEN_GROUPというプライベート・グループにも属しています。
図3-3に、ネットワーク内のアドレスを持つマシンAからEを示します。
表3-7に、マシンと、対応するグループのアドレスを示します。
NETGROUP required_parameters [optional_parameters]
DEFAULTNETに
NETGROUPを設定すると、このエントリには、デフォルトのネットワーク・グループが指定されます。
NETGROUPパラメータが
DEFAULTNETに設定されているネットワーク・エントリは、すべて
TM_MIBの
T_MACHINEクラスで表されますが、他の
NETGROUPに関連付けられた
NETWORKエントリは、
TM_MIBの
T_NETMAPクラスで表され、以前のリリースとの相互運用が可能です。
このエントリがDEFAULTNETを指定している場合、
NETGRPNOの値はゼロにする必要があります。
構成ファイルのSERVERSセクションには、サーバー・プロセスに固有の情報が含まれています。このセクションは必須ではありません。ただし、このセクションがないということは、アプリケーション・サーバーがなく、機能もほとんどないことを意味します。このセクションの各エントリは、アプリケーションで起動するサーバー・プロセスを表し、次の情報を指定します。
•
|
servoptsで定義するサーバーのコマンド行オプション( CLOPT)
|
表3-8に、
SERVERSセクションの各パラメータの説明を示し、リファレンス・ページへのリンクや追加情報を示します。
|
|
|
サーバーが会話型サーバーであるかどうか。接続は、会話型サーバーに対してのみ行うことができます。tpacall(3c)または tpcall(3c)を使用した rpcリクエストは、非会話型サーバーに対してのみ行うことができます。
|
|
|
|
SEC_PRINCIPAL_NAME、SEC_PRINCIPAL_LOCATION、SEC_PRINCIPAL_PASSVAR
|
|
|
|
|
tmbootによって起動されるサーバーのオカレンスの最小数。
|
|
|
|
|
|
起動時にサーバー・プロセスに渡されるservopts(5)オプションのリスト。何も指定しない場合は、デフォルトの -Aになります。 string_valueの最大文字数は256文字です。
|
|
|
|
|
|
サーバーを実行するグループの名前。string_valueには、 GROUPSセクションのサーバー・グループに関連付けられた論理名を指定します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GRACEで指定された期間内にプロセスを再起動できる最大回数から1を引いた数(プロセスが再起動可能な場合)。
|
|
|
指定した秒数内でプロセスをMAXGEN回まで再起動できることを指定するパラメータ(プロセスが再起動可能な場合)。
|
|
|
プロセスを再起動できるかどうか。デフォルトはNです。サーバーを移行できる場合は、 RESTARTを Yに設定します。( SIGTERMシグナルで終了されたサーバーは再起動する必要があります。)
|
|
|
|
SYSTEM_ACCESS (省略可能な実行時パラメータ)
|
|
最初にサーバーを起動するときに開始されるサーバー・ディスパッチ・スレッドの最小数。MAXDISPATCHTHREADS>1のときに使用される個別のディスパッチ・スレッドは、 MAXDISPATCHTHREADSの値の一部としてカウントされません。MAXDISPATCHTHREADSは、MINDISPATCHTHREADSと同じか、またはそれ以上でなければなりません( MINDISPATCHTHREADS<= MAXDISPATCHTHREADS)。このパラメータのデフォルト値は0です。
|
|
|
各サーバー・プロセスで生成可能な、同時にディスパッチされるスレッドの最大数。MAXDISPATCHTHREADS>1のときに使用される個別のディスパッチャ・スレッドは、パラメータで指定した数には含まれません。MAXDISPATCHTHREADSは、MINDISPATCHTHREADSと同じか、またはそれ以上でなければなりません( MINDISPATCHTHREADS<= MAXDISPATCHTHREADS)。このパラメータのデフォルト値は1です。
|
|
|
|
|
|
デフォルトでは$TUXDIR/udataobj/tpldapファイルを使用して、LDAPの構成情報を取得します。
例: LAUTHSVR SRVGRP= “ AUTH’’ SRVID=100 CLOPT=”-A-- -f/usr/tuxedo/udataobj/tpldap”
|
|
|
注意:
|
この例では、SEQUENCE (1から6の順に起動)、 REPLYQと RPPERM (サーバーは応答を受け取らない)、 RCMD (再起動時の特別なコマンド不要)、および CONV (非会話型サーバー)が省略されています。特定のサーバーに対して特に設定を行わないかぎり、すべてのサーバーにはデフォルト設定が適用されます。
|
上のSERVERSセクションの例では、次のパラメータと値が指定されています。
|
|
|
|
|
MAXGENパラメータには、 GRACEパラメータで指定した期間内にサーバーを起動できる回数を制御する、0より大きく256より小さい数値を指定します。デフォルトは1です。サーバーが再起動可能な場合、このパラメータには2以上( MAXGEN>= 2)を指定します。再起動は、指定した値から1を引いた回数行うことができます。 RESTARTに Yを指定しないと、 MAXGENの値は無視されます。
|
|
RESTARTが Yの場合、 GRACEパラメータは、このサーバーの再起動が可能な期間(秒単位)を指定します。再起動は MAXGEN - 1回できます。割り当てる数字は0以上にする必要があります。最大値は2,147,483,648秒(つまり68年より少し大きいくらい)です。 GRACEを指定しない場合は、デフォルトの86,400秒(24時間)が指定されます。1つの GRACE期間が経過したら、次の期間が始まります。GRACE期間を 0に設定すると、すべての制限が解除されます。つまり、サーバーの再起動回数が制限されなくなります。
|
|
|
|
|
|
ENVFILEファイルから環境設定を読み取ります。
|
|
|
|
|
|
サンプル・サーバーの3つのインスタンスが、グループGROUP1で起動されます。サーバーIDは、 1、 2および 3です。3つのサーバーは、MSSQセットを構成し、キュー ring1からのリクエストを読み取ります。
注意:
|
RQADDRは、このサーバーのリクエスト・キューにシンボリック名を割り当てます。MSSQセットを作成するには、複数のサーバーに対して同じシンボリック・キュー名を指定し、これらのサーバーの実行可能ファイルに同じ名前を割り当てます。 MINには、1より大きい値を指定します。
|
|
|
|
•
|
値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パラメータは、会話型サービスやサーバーの自動生成でも使用されます。
2.
|
-Nおよび -Mオプションが設定された TMFFNAMEサーバー。NameManagerサービスを(Masterとして)起動します。このサービスは、アプリケーション側で提供される名前とオブジェクト参照のマッピングを維持します。
|
3.
|
-Nオプションのみが設定された TMFFNAMEサーバー。スレーブNameManagerサービスを起動します。
|
4.
|
-Fオプションが設定された TMFFNAMEサーバー。FactoryFinderオブジェクトを起動します。
|
リスト3-2に、Oracle Tuxedoソフトウェアに収録されているサンプル・アプリケーションの1つである、Oracle Tuxedo CORBA University Basicアプリケーションのサーバーの起動順序を示します。この
SERVERSセクションは、
ubb_b.nt構成ファイルを編集したものから抜粋しています。
この例では、TMSYSEVTサーバーと
TMFFNAMEサーバーが起動した後、次のコンポーネントのサーバーが起動します。
注意:
|
なんらかの理由でグループやマシンを移行または停止および再起動するとき、アクティブなスレーブNameManagerが別のグループにある場合は、マスターNameManagerが アクティブになる前にFactoryFinderやスレーブNameManagerが再起動 されないように、 UBBCONFIGファイルを設定してください。たとえば、FactoryFinderがマスターNameManagerと同じグループにある場合、マスターNameManagerが先に起動されるように、 UBBCONFIGファイルでサーバーの起動順序を変更します。
|
|
|
|
このパラメータが設定されていないサーバーは、SERVERSセクションにリストされている順序で起動します。
|
|
RQADDRが指定されており、MINが1より大きい場合( MIN>1)は、MSSQセットが作成されます。
|
|
MAXの値の範囲は0から1000です。 MAXを指定しない場合、デフォルトで MINの値が指定されます。
|
サーバーの標準のmain()を使用すると、引数--までのオプションのセットが解析され、以降のオプションは
tpsvrinit()に渡されます。
CLOPTのデフォルトの
-Aは、
buildserver(1)または
buildobjserver(1)によって組み込まれたすべてのサービスを通知するようサーバーに指示します。
表3-9に、使用可能なオプションの一部を示します。
|
|
|
標準出力をfilenameファイルにリダイレクトします。
|
|
標準エラーをfilenameファイルにリダイレクトします。
|
|
サービスを通知します。たとえば、-s x, y, zは、サービス x、 yおよび zを通知します。
|
|
サービスx、 yおよび zを通知しますが、関数 funcnameを使用してこれらのサービスのリクエストを処理します。これは、関数名の 別名と呼ばれます。
|
|
|
|
このオプションは、UBBCONFIGの CLOPTでは使用できません。これは、サーバーを手動で起動するときに使用します。
|
•
|
構文は、CLOPT="servopts -- application_opts"です。
|
•
|
main()および tpsvrinit()では、サーバーのコマンド行オプションが使用されます。
|
BANKAPPサンプル・アプリケーションでは、コマンド行オプションは次のように指定されます。
このサーバーは、すべてのサービスを通知するオプション(-A)および窓口IDの
10を与えられるので、操作ごとに特定の窓口レコードを更新できます。このオプション、特に
tpsvrinit()に渡されるオプションを使用する場合、システム管理者とアプリケーション・プログラマは、よく相談する必要があります。
環境設定を指定するには、MACHINESセクションにある
ENVFILEパラメータを使用します。また、特定のサーバー・プロセスに同じパラメータを指定できますが、セマンティクスは同じです。
MACHINESセクションの
ENVFILEと、
SERVERSセクションの
ENVFILEが指定されると、両方とも有効になります。
MACHINESおよび
SERVERSセクションの両方に同じ変数が定義された場合は、
SERVERSセクションの設定が優先されます。
ENVFILEは、サーバー環境ファイルを定義するパラメータであり、次の特性があります。
•
|
省略可能なパラメータであり、MACHINESセクションの ENVFILEパラメータと同じセマンティクスを含みますが、定義するのは1つのサーバーのみです。
|
•
|
変数が重複する場合、SERVERSセクションの ENVFILEの設定が、 MACHINESおよび GROUPSセクションの ENVFILEの設定をオーバーライドします。
|
まず、SERVERSセクションでサーバーに名前を割り当てます。指定する名前は、以下のいずれかのコマンドを使用して作成した実行可能ファイルです。
また、各サーバーにグループ識別子(SRVGRP)を指定する必要があります。
SRVGRPには、
GROUPSセクションのエントリの最初に指定した名前を設定します。最後に、指定されたグループ内の各サーバー・プロセスに一意の数値識別子(
SRVID)を指定します。サーバー・エントリには、必ず
SRVGRPパラメータと
SRVIDパラメータが必要です。エントリでは、アプリケーションのほか、起動するマシンも記述されるため、複数のエントリに同じサーバー名が表示される場合もあります。
|
|
|
ATMIではbuildserver(1)で構築されます。
CORBAではbuildobjserver(1)で構築されます。
|
|
グループ名は、GROUPSセクションのエントリに設定されているものを指定します。
|
|
|
RQPERMパラメータでは、UNIXシステム規則の行(0666など)とともに、サーバー・リクエスト・キューの権限を指定できます。この設定では、サービスがリクエスト・キューへのアクセスを制御できます。
RCMDパラメータを使用すると、サーバーの再起動時に並行して実行されるコマンドを指定できます。たとえば、サーバー開発者や、サーバーのアクティビティを監査する担当者に電子メールを送信する、という操作を実行できます。
MAXGENパラメータは、サーバーが
GRACEで指定された期間に
アクティブになる資格がある合計回数を表します。サーバーは、
GRACEで指定された秒数内に
MAXGEN-1回再起動できます。
GRACEがゼロに設定されている場合、サーバーの再起動に制限はありません。
MAXGENはデフォルトで1になり、256を超えることはできません。
GRACEは0より大きい必要があり、2,147,483,647 (2
31 - 1)を超えることはできません。
SYSTEM_ACCESSパラメータは、サーバー・プロセスを共有メモリーにアタッチし、システム・コードの外から内部表へのアクセスを許可するかどうかを決定します。アプリケーション開発時には、このようなアクセスを許可しないように設定しておく(
PROTECTED)ことをお薦めします。アプリケーションをテストした後で、
SYSTEM_ACCESSの値を
FASTPATHに変更すると、パフォーマンスを向上させることができます。
このパラメータの設定は、RESOURCESセクションで指定された値をオーバーライドします(値
NO_OVERRIDEが指定されていない場合)。この場合、このパラメータは無視されます。
NO_OVERRIDE値は、このセクションでは使用されません。
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です。
構成ファイルのSERVICESセクションでは、アプリケーションで提供されるサービスに関する詳しい情報を指定できます。非トランザクション型、非分散型のアプリケーションの場合、これらの情報の指定は簡単です。
SERVICESセクションには、以下の種類の情報が含まれます。
表3‑10に、
SERVICESセクションの各パラメータの説明を示し、リファレンス・ページへのリンクや追加情報を示します。
|
|
|
|
AUTOTRAN (DTPアプリケーションの場合のみ)
|
|
|
|
|
SVCNAMによってシステムに指定されるロード・ファクタ。
|
|
|
|
|
|
SVCNAMがグループ・パラメータのすべての設定を取得するサーバー・グループ名。
|
|
|
|
|
|
|
|
|
|
|
|
|
TRANTIME (DTPアプリケーションの場合のみ)
|
|
AUTOTRAN ={Y|N}パラメータをコーディングすることで、リクエスト・メッセージがすでにトランザクション・モードになっている場合に、トランザクションを自動的に起動する必要があるかどうかを設定できます。デフォルトは
Nです。
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パラメータを使用すると、サービス・コードとは関係なく、バッファ・タイプをチェックするサービスを調整できます。このパラメータを設定する場合は、サービスで受け付けるバッファ・タイプのリストを次の形式で指定します。
サービスのBUFTYPEパラメータの値が
ALLの場合、このサービスはすべてのバッファ・タイプを受け入れます。デフォルトは
ALLです。
|
|
|
サブタイプが audおよび aud2の FMLおよび VIEWバッファ・タイプを受け入れます。
|
|
すべてのFMLおよび VIEWバッファ・タイプを受け入れます。
|
|
|
SVCTIMEOUTパラメータは、サービスがリクエストを処理できる時間(秒)を指定します。このパラメータで定義された間隔が経過してもサービスがリクエストを処理できなかった場合、そのリクエストの処理は強制終了されます。本質的に、サービス・タイムアウトは、停止または制御不能状態にあるアプリケーション・サーバーのスカベンジ機能として働きます。デフォルトでは、Oracle Tuxedoシステムはサービス・プロセスを終了しません。この機能を有効にするには、
SVCTIMEOUTを設定する必要があります。
UBBCONFIGファイルの
SVCTIMEOUTパラメータに値を割り当てるか、
TM_MIBの
TA_SVCTIMEOUT属性を動的に変更することによって設定できます。
SVCTIMEOUTまたは
TA_SVCTIMEOUTの値には、サービスが1つのリクエストの処理に費やす時間の2 - 3倍の時間を指定しておくことをお薦めします。このような値を設定しておくと、Oracle Tuxedoシステムは、停止状態のプロセスだけを削除します。
•
|
.SysServiceTimeoutに関する ULOG情報
|
SVCTIMEOUT値が構成可能であるため、クライアントは、
SVCTIMEOUTに設定された値を超過して発生した
TPESVCERRと、それ以外の状況で発生した
TPESVCERRを簡単に識別できることが重要です。この情報は、
ULOGにも記録されていますが、クライアント・プログラムによって抽出するのは困難です。サービス・タイムアウトの
TPESVCERRをその他のエラーと区別するため、プログラムで
TPESVCERRを検出した後に
tperrordetail(3c)ルーチンを呼び出し、サービス・タイムアウトが発生したときに
TPED_SVCTIMEOUTを生成することができます。
•
|
アプリケーション管理者は、UBBCONFIGファイルの SERVICESセクションにある SVCTIMEOUTパラメータを変更するか、 TM_MIBの T_SERVERクラスまたは T_SERVICEクラスの TA_SVCTIMEOUT属性を変更して、サービス・タイムアウトを制御できます。また、 ULOGファイルをモニターして、サービス・タイムアウトの動作を確認することもできます。
|
•
|
サービス・タイムアウトの動作についてULOGファイルをモニタリングする他に、アプリケーション・オペレータは、サービス・タイムアウトの発生時にアラートする .SysServiceTimeoutイベントをサブスクライブできます。
|
•
|
アプリケーション・プログラマは、tperrordetail(3c)および tpstrerrordetail(3c)関数と、 TPED_SVCTIMEOUTエラー詳細コードを使用できます。 これらは、サービス・タイムアウトの発生時に生成される .SysServiceTimeoutシステム・イベントに1つ以上のサブスクリプションを追加できます。
|
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ファクタ分だけ増加します。
•
|
RESOURCES LDBALパラメータが Yに設定されている場合、ロード・バランシングが使用されます。
|
文字列の最大値は15文字です。サービスには、1つ以上の
ROUTINGパラメータの値は割り当てられません。1つのサービスに複数のエントリがあり、それらのエントリに異なる
SRVGRPパラメータが含まれている場合でも、
ROUTINGの値はすべてのエントリで同じでなければなりません。
PRIOパラメータを使用して、サービスの優先度を割り当てることにより、アプリケーション内のデータ・フローを有効に制御できます。PRIOには、0 - 100の数値を指定する必要があります。数値が大きいほど割り当てられるサービスの優先度も高くなります。優先度の高いサービスは優先度の低いサービスより先にキューから取り出されますが、システムは、10回に1回ごとにFIFO順序でリクエストをキューから取り出し、メッセージがキューで無制限に待機することがないようにしています。
注意:
|
優先度は、tpsprio()呼出しを使用して、動的に変更することもできます。
|
次の構成ファイルのSERVICESセクションの例に、サービスへの優先度の割当て方法を示します。
値は0以上でなければなりませんこの値が
0以外の場合は、サービスに対してタイムアウトが適用されることを示します。サービス・リクエストを処理しているサーバーは
SIGKILLシグナルによって終了します。このパラメータのデフォルト値は0です。
構成ファイルのINTERFACESセクションは、Oracle TuxedoシステムのCORBA環境用のパラメータを定義するために使用されます。このセクションでは、アプリケーションで使用されるCORBAインタフェースに対する、アプリケーション全体のデフォルト・パラメータを指定します。ファクトリ・ベース・ルーティングに参加するCORBAインタフェースに対しては、インタフェース名を定義し、Tuxedo CORBA環境で各インタフェースに適用するルーティング基準の名前を指定します。ファクトリ・ベース・ルーティングは、プロセスを特定のサーバー・グループに分散するための機能です。
次の表に、AUTOTRAN、
FACTORYROUTING、
LOAD、
PRIO、
SRVGRP、
TRANTIMEおよび
TIMEOUTの各パラメータの特性を示します。
|
|
|
操作の呼出しを受け取るときにトランザクションを自動的に開始する場合は、CORBAインタフェースごとにAUTOTRANを Yに設定します。 AUTOTRAN=Yは、インタフェースがすでにトランザクション・モードにある場合は無効です。デフォルトは Nです。
AUTOTRANの値の指定が有効かどうかは、システム設計者が実装構成ファイル(ICF)またはサーバー記述ファイル(XML)でそのインタフェースに対して指定したトランザクション・ポリシーによって異なります。このトランザクション・ポリシーが、実行時に、関連する T_IFQUEUE MIBオブジェクトのトランザクション・ポリシーの属性になります。この値が実際にアプリケーションの動作に影響するのは、システム設計者がトランザクション・ポリシーを 「optional」に指定した場合だけです。
|
|
|
|
|
|
CORBAインタフェースのすべてのメソッドに対して、キューから取り出す優先度を指定します。この値は、0より大きい100以下の数にする必要があります。100は、優先度が最も高いことを示します。デフォルトは50です。
|
|
SRVGRPを使用して、 INTERFACESセクションのこの部分で定義されたパラメータが、指定したサーバー・グループ内のインタフェースに適用されることを示します。この機能を使用すると、指定されたCORBAインタフェースで、サーバー・グループごとに異なるパラメータを定義することができます。
|
|
AUTOTRANが Yに設定されている場合は、 TRANTIMEパラメータを設定する必要があります(これは、計算するトランザクションに対するトランザクション・タイムアウト(秒)です)。値はゼロ以上、2,147,483,647 (231-1)(約70年)以下にする必要があります。値 0(ゼロ)は、トランザクションにタイムアウトが設定されていないことを示します。(デフォルトは 30秒です。)
|
|
|
各CORBAインタフェースに対し、INTERFACESセクションでインタフェースのルーティング基準の種類を指定します。
INTERFACESセクションでは、
FACTORYROUTING識別子を使用してルーティング基準を指定します。
リスト3-4に、サンプル・アプリケーションBankappでのファクトリ・ベース・ルーティングの指定方法を示します。
この例では、IDL:Bankapp/Tellerインタフェースが、
ROUTINGセクションで定義された
atmIDという名前のファクトリ・ベース・ルーティング・スキームを使用しています。この例の
ROUTINGセクションでは、2つのグループに処理を分散するように指定しています。
BANK_GROUP1は、
atmIDフィールドが1から5の間か、または10を越える場合に、アプリケーションで使用されるインタフェースを処理します。
BANK_GROUP2は、
atmIDフィールドが6から10 (10を含む)の間にある場合に、アプリケーションで使用されるインタフェースを処理します。
起動される各CORBAインタフェースには、LOADファクタが割り当てられます。これで、各サーバー・プロセスが実行したCORBAインタフェースの負荷の合計が追跡されます。各インタフェース・リクエストは、負荷の合計が最も低いサーバーにルーティングされます。ルーティング先のサーバーの負荷は、ルーティングされたCORBAインタフェースのロード・ファクタ分(
LOAD)だけ増加します。ロード・バランシングが無効であり、複数のサーバーが同じCORBAインタフェースを提供する場合は、使用可能な最初のキューがリクエストを受け取ります。
PRIOパラメータを使用してインタフェースの優先度を割り当てることにより、Oracle Tuxedoのクライアントまたはサーバー・アプリケーションのデータ・フローを制御できます。たとえば、サーバー1が、インタフェースA、B、およびCを提供するとします。インタフェースAおよびBの優先度は
50で、インタフェースCの優先度は
70です。Cに対してリクエストされるインタフェースは、常にAまたはBに対するリクエストより先にデキューされます。AとBに対するリクエストは、互いに平等にデキューされます。システムは、10回に1回の割合で
FIFO順序でリクエストをキューから取り出し、メッセージがキューで無制限に待機しないようにします。
UBBCONFIGの
ROUTINGセクションでは、
SERVICESセクション(ATMIのデータ依存型ルーティングの場合)や
INTERFACESセクション(CORBAのファクトリ・ベース・ルーティングの場合)で指定されたルーティング基準を詳細に定義できます。
表3‑11に、
ROUTINGセクションの各パラメータの説明を示し、リファレンス・ページへのリンクや追加情報を示します。
|
|
|
|
|
|
ATMIの場合は、データ依存型ルーティング用にSERVICESセクションの ROUTINGパラメータの値として指定されたルーティング基準名になります。
CORBAの場合は、ファクトリ・ベース・ルーティング用にINTERFACESセクションで FACTORYROUTINGパラメータとして指定されたルーティング基準名になります。
|
|
|
ATMIの場合、デフォルトはTYPE=SERVICEになり、Tuxedo ATMI環境で使用される既存の UBBCONFIGファイルが引き続き正常に動作することが確実化されます。
|
|
|
ルーティング・フィールドの名前であり、値はそれぞれFMLバッファ、 XMLの要素または要素の属性、 FMLフィールド表で指定されたVIEWフィールド名( FLDTBLDIRおよび FIELDTBLS環境変数を使用)、 FMLのVIEW表( VIEWDIRおよび VIEWFILES環境変数を使用)になります。この情報は、メッセージの送信時に、データ依存型ルーティングに関連するフィールド値を取得するために使用されます。
|
|
|
|
|
|
|
|
|
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は、 string、 char、 short、 long、 floatまたは doubleのいずれかです。
|
RANGESパラメータでは、フィールド値を次のようにグループ名にマップできます。
RANGES=”[val1[-val2]:group1] [,val3[-val4]:group2]...[,*:groupn]”
val1、
val2などはフィールドの値であり、
groupnはグループ名または任意のグループが選択されることを示すワイルドカード文字(*)です。最後に
valの代わりに指定されている*文字は
catch-all、つまり、データが指定された範囲内にない場合はデフォルトのグループに割り当てられることを示します。また、データが範囲内にあっても、その範囲のエントリに関連する有効なサーバーがグループ内にない場合、サービス・リクエストは、ワイルドカード「
*」で指定したデフォルトのグループに転送されます。
val1には、以下の値を使用できます。
•
|
STRINGバッファまたは CARRAYバッファ(一重引用符で囲む)
|
•
|
MINまたは MAX (マシンのデータの最小値または最大値)
|
Oracle Tuxedoのデータ依存型ルーティングでは、BUFTYPEパラメータにより、使用できるバッファ・タイプが決まります。このパラメータは、特定のバッファ・タイプとサブタイプに対してルーティング基準を適用するため、
SERVICESセクションの対応するパラメータと似ています。ルーティングに使用できるのは、
FML、
XML、および
VIEWタイプだけです。構文は、
SERVICESセクションと同じく、
type:subtype[,subtype]をセミコロンで区切って示します。ルーティング基準には1つのタイプしか指定できません。この制限により、サービスのルーティング時に受け付けられるバッファ・タイプの数が限定されます。
次のubb_b.nt構成ファイルの
INTERFACES、
ROUTINGおよび
GROUPSセクションに、Oracle TuxedoのCORBAアプリケーションでファクトリ・ベース・ルーティングを実装する方法を示します。
INTERFACESセクションには、ファクトリ・ベース・ルーティングを有効にするインタフェースの名前のリストが示されます。各インタフェースについて、このセクションでインタフェースのルーティングの基準の種類を指定します。このセクションでは、
リスト3-5の例に示すように、
FACTORYROUTINGという識別子を使用してルーティング基準を指定します。
ROUTINGセクションでは、ルーティング値ごとに次のデータを指定します。
•
|
TYPEパラメータでは、ルーティングのタイプを指定します。Productionサンプルでは、ルーティングのタイプはファクトリ・ベース・ルーティングです。したがって、このパラメータは、 FACTORYと定義します。
|
•
|
FIELDパラメータでは、ファクトリがルーティング値として挿入する変数名を指定します。Productionサンプルでは、フィールド・パラメータはそれぞれ、 student_idおよび account_numberです。
|
•
|
FIELDTYPEパラメータでは、ルーティング値のデータ型を指定します。Productionサンプルでは、 student_idおよび account_numberのフィールドはlong型です。
|
•
|
RANGESパラメータでは、サーバー・グループと、各ルーティング値の有効範囲のサブセットを関連付けます。
|
リスト3-6に、Productionサンプル・アプリケーションで使用される
UBBCONFIGファイルの
ROUTINGセクションを示します。
UBBCONFIGファイルの
ROUTINGセクションで
RANGES識別子によって指定されたグループを、識別して構成する必要があります。たとえば、Productionサンプルでは、
ORA_GRP1、
ORA_GRP2、
APP_GRP1および
APP_GRP2の4つのグループが指定されています。これらのグループを構成し、グループが実行されるマシンを識別する必要があります。
リスト3-7に、Productionサンプルの
UBBCONFIGファイルの
GROUPSセクションを示します。
GROUPSセクションに列挙されている名前が、
ROUTINGセクションに指定されているグループ名とどのように一致するかに注目してください。さらに、アプリケーションでグループを構成する方法に関する何らかの変更も、
ROUTINGセクションに反映させる必要があります。(Oracle Tuxedoソフトウェアに収録されているProductionサンプルは、1台のマシンで実行するように構成されていることに注意してください。しかし、このアプリケーションを複数のマシンで実行するように構成することも容易にできます。)
リスト3-8に、
INTERFACESセクションでBankappサンプル・アプリケーションを拡張し、ファクトリ・ベース・ルーティングを使用する方法を示します。Oracle Tuxedoソフトウェアに収録されているサンプル・アプリケーションでは、以下のパラメータは設定されていません。
この例では、IDL:Bankapp/Tellerインタフェースが、
ROUTINGセクションで定義された
atmIDという名前のファクトリ・ベース・ルーティング・スキームを使用しています。この例では、以下の2つのサーバー・グループに処理が分散されます。
•
|
BANK_GROUP1は、 atmIDフィールドが1から5 (5を含む)の間または10より大きい場合に、アプリケーションで使用されるインタフェースを処理します。
|
•
|
BANK_GROUP2は、 atmIDが6から10 (10を含む)の場合に、アプリケーションで使用されるインタフェースを処理します。
|
構成ファイルのコンパイルとは、テキスト形式(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)は正常に実行されません。