3 構成ファイルの作成

このトピックには、次の項があります。

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

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

  1. 構成ファイルのRESOURCESセクションの作成方法
  2. 構成ファイルのMACHINESセクションの作成方法
  3. 構成ファイルのGROUPSセクションの作成方法
  4. 構成ファイルのSERVERSセクションの作成方法
  5. 構成ファイルのSERVICESセクションの作成方法
  6. 構成ファイルのINTERFACESセクションの作成方法
  7. 構成ファイルのROUTINGセクションの作成方法

次の図は、該当領域で指定されたセクションを作成する方法を示しています。

図3-1 複数のマシンで構成(分散)するアプリケーション用の構成ファイル


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

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

分散ATMIアプリケーションでは、構成ファイルに次のセクションを作成する必要があります。次のいずれかのタスクをクリックすると、そのタスクの実行に関する説明が表示されます。

  1. 構成ファイルのRESOURCESセクションの作成方法
  2. 構成ファイルのMACHINESセクションの作成方法
  3. 構成ファイルのGROUPSセクションの作成方法
  4. 構成ファイルのNETWORKセクションの作成方法
  5. 構成ファイルのNETGROUPSセクションの作成方法
  6. 構成ファイルのSERVERSセクションの作成方法
  7. 構成ファイルのSERVICESセクションの作成方法
  8. 構成ファイルのROUTINGセクションの作成方法

ノート:

Oracle Tuxedoシステムで分散型のCORBAアプリケーション用の構成ファイルを作成する方法の詳細は、『CORBAアプリケーションのスケーリング、配布およびチューニング』ガイドを参照してください。

次の図は、該当領域で指定されたセクションを作成する方法を示しています。

図3-2 該当領域で指定されたセクションを作成する方法


該当領域で指定されたセクションを作成する方法の図

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

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

  • UBBCONFIG - アプリケーション構成ファイル
  • DMCONFIG - ドメイン構成ファイル

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

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

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

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


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

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

次の図は、構成ファイルの該当セクションを作成する手順を示しています。

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


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

関連項目:

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

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

次の表に、RESOURCESセクションの各パラメータの説明を示し、リファレンス・ページへのリンクや追加情報を示します。

表3-1 説明、リファレンス・ページへのリンクおよび追加情報

RESOURCESセクションで指定する情報 パラメータ(必須/省略可能) 参照先(クリックするとリンク先にジャンプ)
プロセス間通信(IPC)リソースの一意のアドレス IPCKEY (必須) 共有メモリー・アドレス
セキュリティ・アクセス UID、GIDおよびPERM (オプション) セキュリティ・アクセス
掲示板に同時に接続できるプロセスの最大数 MAXACCESSERS (オプション) IPCの上限値
掲示板のサーバー表エントリの最大数 MAXSERVERS (オプション) IPCの上限値
掲示板のサービス表エントリの最大数 MAXSERVICES (オプション) IPCの上限値
CORBAインタフェースの最大数 MAXINTERFACES (オプション) IPCの上限値
CORBAオブジェクトの最大数 MAXOBJECTS (オプション) IPCの上限値
起動、停止およびその他の管理タスクの実行時の特別掲示板連絡(DBBL)の場所 MASTER (必須) マスター・プロセッサ
掲示板アーキテクチャ MODELSHMまたはMP、およびLANまたはMIGRATEオプション(必須) アプリケーション・タイプ
セキュリティ・レベル SECURITYAUTHSVC (オプション) セキュリティ・レベル
ID確認のためのプロセスのプリンシパル名、プリンシパル・ユーザーの秘密キーの場所、およびパスワードを格納する環境変数 SEC_PRINCIPAL_NAME、SEC_PRINCIPAL_LOCATIONおよびSEC_PRINCIPAL_PASSVAR セキュリティ属性
クライアントが非請求メッセージを検出するデフォルトの方法 NOTIFYUSIGNAL (オプション) 非請求通知
共有メモリーの保護 SYSTEM_ACCESS (オプション) 共有メモリー保護
サーバーのロード・バランシングが有効になっているかどうか LDBAL (オプション) ロード・バランシング
バッファのタイプとサブタイプの最大数 MAXBUFTYPEMAXBUFSTYPES (オプション) バッファ・タイプ/サブタイプ
マシンで許可されている会話の最大数 MAXCONV (オプション) 会話数の上限値
ネットワーク・グループの最大数 MAXNETGROUPS (オプション) ネットワーク・グループ
サニティ・チェックの頻度とブロッキング呼出しの許容時間 SCANUNITSANITYSCANBLOCKTIME (オプション) サニティ・チェックの頻度とブロッキングのタイムアウト

3.5.1 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

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

Oracle Tuxedoアプリケーションで特に必要なアーキテクチャ上の決定は次のとおりです。

  • アプリケーションを単一プロセッサで実行するか、グローバル共有メモリーのあるマルチプロセッサで実行するか
  • アプリケーションをネットワーク化するか
  • サーバーの移行をサポートするか

MODELパラメータとOPTIONSパラメータを使用して、アプリケーション・タイプを定義します。

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

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

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

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

表3-2 MODELおよびOPTIONSパラメータの特性

パラメータ 特性
MODEL このパラメータは省略できません。値SHMはグローバル共有メモリーのある1台のマシンを示します。値MPは、グローバル共有メモリーのない複数のマシン、またはネットワーク・アプリケーションを示します。
OPTIONS これは、アプリケーション構成オプションのカンマ区切りリストです。値LANはローカル・エリア・ネットワークを示します。値MIGRATEはサーバー移行を有効にします。

サンプルのRESOURCESセクションでは、MODELMPに設定されています。OPTIONSLANおよびMIGRATEに設定されています。

3.6.2 設定例

構成ファイルのRESOURCESセクションの設定例を次に示します。

*RESOURCES 
     MODEL     MP 
     OPTIONS   LAN, MIGRATE

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

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

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

パラメータ 特性
MAXBUFTYPE システムで許可されるバッファ・タイプの最大数。8個以上のユーザー定義のバッファ・タイプを作成する場合のみ使用します。MAXBUFTYPEは、0より大きく32,768より小さい値にする必要があります。指定されていない場合、デフォルトは16です。

例: MAXBUFTYPE 20

MAXBUFSTYPE システムで許可されるバッファ・サブタイプの最大数。MAXBUFSTYPEは、0より大きく32,768より小さい値にする必要があります。指定されていない場合、デフォルトは32です。

例: MAXBUFSTYPE 4

3.7.1 設定例

この例では、バッファ・タイプの最大数は20です。サブタイプの最大数は40です。

*RESOURCES 
MAXBUFTYPE 20 
MAXBUFSTYPE 40

3.8 会話の数を制御する

MAXCONVパラメータで、マシン上の同時会話の最大数を指定できます。MAXCONVは0より大きく32,768より小さい値にする必要があります。

3.8.1 MAXCONVパラメータの特性

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

  • 各マシンで許可される同時会話の最大数を定義します。
  • SERVERSセクションにリストされる会話サーバーを持つアプリケーションのデフォルトは10です。それ以外の場合、デフォルトは1です。
  • MACHINESセクションに別の値を指定することで、マシンに対してこのパラメータを上書きできます。

3.8.2 設定例

この例では、各マシンで許可される同時会話の最大数は15です。

*RESOURCES
 MAXCONV 15

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

IPC(プロセス間通信)と共有メモリー掲示板表の大半は、処理速度を上げるために静的に割り当てられるため、それらをチューニングすることが非常に重要です。サイズが過度に豊富な場合、メモリーとIPCリソースが無駄に消費されます。それ以外の場合、限界値を超えると処理が失敗します。tmloadcf -cコマンドを使用し、特定のアプリケーションに必要なIPCリソースの最大量を検索できます。(『Oracle Tuxedoコマンド・リファレンス』tmloadcf(1)に関する項を参照してください。)

MAXACCESSERSMAXSERVERSMAXSERVICESMAXINTERFACESおよびMAXOBJECTSは、IPCサイズ設定を制御するチューニング可能なパラメータです。アプリケーションに割り当てられている共有メモリー量は、MAXGTTパラメータとMAXCONVパラメータで制御されます。

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

パラメータ 特性
MAXACCESSERS Oracle Tuxedoアプリケーションの特定のサイトの掲示板に同時に接続できるプロセス全体の最大数。この数値には、すべてのクライアントと、システムが提供するサーバーおよびアプリケーション・サーバーが含まれますが、掲示板連絡(BBL)やtmadmin()など、掲示板への予約済アクセス・スロットを持つ管理プロセスは含まれません。

MAXACCESSERSは、0より大きく32,768より小さい値にする必要があります。指定されていない場合、デフォルトは50です。MACHINESセクションで、マシンごとにMAXACCESSERSを上書きできます。

MAXSERVERS アプリケーションで使用可能なサーバー・プロセスの最大数。この数値には、すべてのシステム提供サーバーとアプリケーション・サーバーが含まれます。MAXSERVERSの値は、0より大きく8,192より小さい必要があります。指定されていない場合、デフォルトは50です。
MAXSERVICES アプリケーションで通知できる様々なOracle Tuxedoサービスの最大数。MAXSERVICESは、0より大きく1,048,574より小さい値にする必要があります。指定されていない場合、デフォルトは100です。

ノート:

CORBA環境の場合、各CORBAインタフェースはOracle Tuxedoサービスにマップされます。サービス数に対応するアカウントが生成されていることを確認してください。
MAXINTERFACES CORBA環境では、アプリケーションで通知できるCORBAインタフェースの最大数。MAXINTERFACESは、0より大きく32,766より小さい値にする必要があります。指定されていない場合、デフォルトは100です。

ノート:

インタフェースのすべてのインスタンスは、掲示板のインタフェース表の同じスロットを占有および再利用します。たとえば、サーバーSVR1がインタフェースIF1IF2を通知し、SVR2がインタフェースIF2IF3を通知し、サーバーSVR3がインタフェースIF3IF4を通知する場合、MAXINTERFACESを計算したときのインタフェース・カウントは(6ではなく)4です。
MAXOBJECTS CORBA環境では、アプリケーションでアクティブなCORBAオブジェクトの最大数。MAXOBJECTSは、0より大きく32,766より小さい値にする必要があります。指定されていない場合、デフォルトは100です。

ノート:

システムが提供するサーバーの例として、AUTHSVRTMQUEUETMQFORWARDTMUSREVTTMSYSEVTTMSTMS_QMGWTDOMAINおよびWSLがあります。

MAXACCESSERSの増加によるコストは、クライアントまたはサーバー・プロセス(アクセサ - 次の注意を参照)のサイトあたり1つの追加セマフォです。MAXACCESSERS値によって追加されるオーバーヘッドに加えて、システム・プロセスには小さい固定のセマフォ・オーバーヘッドがあります。MAXSERVERSMAXSERVICESの増加のコストは、サーバー、サービス、クライアント・エントリそれぞれに保持される少量の共有メモリーです。これらのパラメータに関する一般的な概念は、アプリケーションの将来の拡張に対応することです。MAXACCESSERSを精査することの方が重要です。

ノート:

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

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

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

3.9.1 設定例

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

*RESOURCES 
MAXACCESSERS 75 
MAXSERVERS 40 
MAXSERVICES 55

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

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

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

ロード・バランシングは、必要な場合(複数のキューを使用するサーバーによってサービスが提供される場合)にのみ使用する必要があります。ロード・バランシングは、1台のサーバー、またはMSSQ(複数サーバー、単一キュー)セット内のサーバーによって提供されるサービスには適していません。構成にこれらのタイプのサービスのみ存在する場合は、LDBALパラメータをNに設定します。LDBALNに設定され、複数のキューが同じサービスを提供する場合は、最初に使用可能なキューが選択されます。

3.10.1 LDBALパラメータの特性

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

  • LDBALYに設定されている場合は、ロード・バランシングが使用されます。
  • LDBALがYに設定され、アプリケーションがネットワーク化されている場合は、ローカル・プリファレンスにTMNETLOADを使用できます。
  • LDBALNに設定されている場合、割り当てられるサーバーは最初に使用可能なサーバーです。
  • デフォルトはNです。
  • LDBALはオーバーヘッドを発生させるため、必要な場合にのみ使用してください。
  • すべてのOracle Tuxedoサービスが1つのサーバーによってのみ提供される場合は、ロード・バランシングを使用しないでください。
  • すべてのOracle Tuxedoサービスが1つのMSSQサーバー・セットによって提供される場合は、ロード・バランシングを使用しないでください。

3.10.2 設定例

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

*RESOURCES 
     LDBAL   Y

関連項目:

3.11 マスター・マシンを識別する

MASTERマシンは、アプリケーション全体の起動と管理を制御します。MASTERパラメータを設定することで、すべてのアプリケーションにMASTERマシンを指定する必要があります。MASTERの値は、適切なコンピュータの論理マシン識別子(LMID)です。LMIDは、管理者によって選択された英数字文字列として定義され、MACHINESセクションのLMIDパラメータに割り当てられています。したがって、たとえばLMIDパラメータの値がSITE1の場合は、MASTERの値もSITE1になります。

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

3.11.1 MASTERパラメータの特性

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

  • これは必須であり、起動と管理を制御します。
  • マスター・マシンをバックアップするために移行するには、2つのLMIDが必要です。
  • サンプルのRESOURCESセクションでは、マスター・サイトはSITE1、バックアップ・サイトはSITE2です。

3.11.2 設定例

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

*RESOURCES 
     MASTER SITE1, SITE2

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

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

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

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

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

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

ノート:

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

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

表3-5 SCANUNIT、SANITYSCAN、およびBLOCKTIMEパラメータの特性

パラメータ 特性
SCANUNIT チェック間隔とタイムアウトのきめ細かく制御します。SCANUNITは、0から60秒の間の2または5の倍数である必要があります。

例: SCANUNIT 10。

デフォルトは10です。
SANITYSCAN サーバーのサニティ・チェック間のスキャン単位の経過数を指定します。

SANITYSCANには最大32,767の任意の数を指定できます。

デフォルトは、SCANUNIT * SANITYSCANが約120秒になるように設定されます。
BLOCKTIME タイムアウトになるまでにメッセージをブロックできる時間の長さを制御します。

SCANUNIT * BLOCKTIMEは、32,767以下である必要があります。

デフォルトは、SCANUNIT * BLOCKTIMEが約60秒になるように設定されます。

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

タイムアウトという用語は、クライアントが次の操作を行っている間に経過する時間を総称するために使用されます。

  • リクエスト・キューへのメッセージの送信の待機
  • 応答キューからのメッセージの受信の待機
  • サーバーによる処理
  • ネットワーク上の移動

ブロッキング・タイムアウトという用語は、クライアント・リクエストがブロッキング条件のクリアを待機するために費やした時間を表します。非同期サービス・リクエストおよび会話のブロック・タイムアウトは、個々の送信操作と受信操作に適用されます。プロセスがtpacall (3c)、tpconnect (3c)またはtpsend (3c)を使用してメッセージを送信する場合、タイムアウトは、キューが一杯の場合にリクエストがキューに入るまで待機している期間にのみ適用されます。クライアント・プロセスがtpgetrply (3c)またはtprecv(3c)呼出しを発行してメッセージを受信する場合、タイムアウトはキューが空の場合にクライアントが着信メッセージを待機できる時間の長さを指定します。

3.13.3 設定例

この例では、サニティ・スキャンは30秒ごとに実行され、リクエストが10秒を超えてブロックされることはありません。10のSCANUNITと3のSANITYSCANにより、BBLスキャンの前に10秒のブロックが3回、つまり30秒の経過が許可されます。

*RESOURCES 
      SCANUNIT      10 
      SANITYSCAN     3 
      BLOCKTIME      1

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

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

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

表3-6 UID、GID、およびPERMパラメータの特性

パラメータ 特性
UID 管理者のユーザーID。値は、システムを起動および停止するユーザーのUNIXシステム・ユーザーIDに対応する数値文字列です。デフォルトは、tmloadcf(1)を実行するユーザーのユーザーIDです。

例: UID=3002

ノート:

Windowsでは、この値を0に設定する必要があります。
GID 管理者の数値グループID。デフォルトは、tmloadcf(1)を実行するユーザーのグループIDです。

例: GID=100

ノート:

Windowsでは、この値を0に設定する必要があります。
PERM 値は、アプリケーションの起動時に作成されたIPCリソースの権限を指定する8進数です。このパラメータは、Oracle TuxedoシステムIPC構造を無認可アクセスから保護する最初のレベルを提供します。本番アプリケーションではこれらの値を指定する必要があります。デフォルトは0600で、すべてに対する読取り/書込みアクセス権を付与します。例: PERM=0660

ノート:

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

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

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

  • PERMパラメータ - 権限を介してアプリケーション・キューへの書込み機能を制限することで最小限のセキュリティを提供します。
  • SECURITYパラメータ - より高いセキュリティを提供します。このパラメータが設定されている場合、クライアントはアプリケーションに参加するときにパスワードを指定する必要があります。このパスワードは、TUXCONFIGファイルがUBBCONFIGファイルから生成されたときに管理者が指定したパスワードに照らしてチェックされます
  • AUTHSVCパラメータ - 最大レベルのセキュリティを設定します。このパラメータが設定されている場合、アプリケーションに参加するためのクライアント・リクエストは認証サービスに送信されます。認証サービスは、Oracle Tuxedoシステムで提供されるデフォルトのサービスまたはKerberosサービスなどのサード・パーティ・ベンダーのサービスです。このレベルのセキュリティは、SECURITYパラメータが設定されていないかぎり使用できません。

ノート:

LDAPシングル・セキュリティ管理を有効化するには、UBBCONFIGファイルのSERVERSセクションでLAUTHSVRを設定する必要があります。

認証および認可の拡張セキュリティ管理を有効化するには、UBBCONFIGファイルのSERVERSセクションでXAUTHSVRを設定する必要があります。

表3-7 SECURITY、AUTHSVC、およびOPTIONSパラメータの特性

パラメータ 特性
SECURITY アプリケーションへの参加にパスワードを要求するセキュリティ・レベル。指定できる値は、NONE (デフォルト)、APP_PW、USER_AUTHACLおよびMANDATORY_ACLです。

LDAPシングル・セキュリティ管理または拡張セキュリティ管理を有効化するには、SECURITYレベルをUSER_AUTHMANDATORY_ACLまたはACLに設定する必要があります。

デフォルトはNONEです。

例: SECURITY APP_PW

AUTHSVC 認証サービスの名前。

SECURITY APP_PW以上を指定する必要があります。

デフォルトは、認証サービスなしです。

Kerberosによるクライアント認証が可能です。

例: AUTHSVC "AUTHSVC"

OPTIONS 拡張セキュリティ管理を有効化するには、OPTIONSEXT_AAに設定する必要があります。

関連項目:

  • 『ATMIアプリケーションにおけるセキュリティの使用』の「ATMIのセキュリティの紹介」
  • CORBAアプリケーションにおけるセキュリティの使用
  • ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス
  • Oracle Tuxedoコマンド・リファレンス

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

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

  • SEC_PRINCIPAL_NAME - 様々なセキュリティ操作で使用するサーバーのプリンシパル名を指定します。
  • SEC_PRINCIPAL_LOCATION - プリンシパル・ユーザーの秘密キーの場所を指定します。
  • SEC_PRINCIPAL_PASSVAR - プリンシパル・ユーザーの秘密キーを開くためのパスワードを含む環境変数を指定します。
セクション名 指定内容 オーバーライドされるセクション
RESOURCES ドメイン内で起動するすべてのシステム。 -
MACHINES マシン上で起動するすべてのシステム。 RESOURCES
GROUPS グループ内で起動するすべてのシステム・サーバーおよび相互運用するアプリケーション・サーバー MACHINES
SERVERS サーバー上で起動するすべてのシステム・サービスおよび相互運用するアプリケーション・サービス GROUPS

ノート:

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

関連項目:

  • 『ATMIアプリケーションにおけるセキュリティの使用』の「ATMIのセキュリティの紹介」
  • 『CORBAアプリケーションにおけるセキュリティの使用』のセキュリティの管理に関する項

3.17 共有メモリーを保護する

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

  • PROTECTED - アプリケーション・コードとともにコンパイルされたOracle Tuxedoライブラリは、システム・コードの実行中には共有メモリーにアタッチされません。
  • FASTPATH - Oracle Tuxedoライブラリは、常に共有メモリーにアタッチされます。

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

表3-8 PROTECTED、FASTPATH、およびNO_OVERRIDEパラメータの特性

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

3.17.1 設定例

SYSTEM_ACCESS PROTECTED, NO_OVERRIDE

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

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

3.18.1 IPCKEYパラメータの特性

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

  • これは必須です。
  • 掲示板およびその他のIPCリソースへのアクセスを設定するために使用されます。
  • 32,769 - 262,144の範囲の整数を設定します。
  • システム上の他のアプリケーションのIPCKEYパラメータに同じ値を使用することはできません。値は、すべてのアプリケーションで一意でなければなりません。

3.18.2 設定例

*RESOURCES 
    IPCKEY 39211

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

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

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

  • IGNORE - クライアントは、非請求メッセージを無視します。
  • DIPIN - クライアントは、tpchkunsol ()を呼び出したとき、またはATMI呼出しを行ったときにのみ非請求メッセージを受信します。
  • SIGNAL - クライアントは、シグナル・ハンドラに関数を呼び出させるシグナルをシステムに生成させ、つまり、tpsetunsol ()を設定して、非請求メッセージを受信します。

    ノート:

    この方法は、マルチスレッド化されたアプリケーションまたはマルチコンテキスト化されたアプリケーションでは使用できません。
  • THREAD - 非請求メッセージは、Oracle Tuxedoシステムがこの目的で管理する別のスレッドによって処理されます。

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

ノート:

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

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

パラメータ 特性
NOTIFY IGNOREは、クライアントが非請求メッセージを無視することを示します。

DIPINは、クライアントが、tpchkunsol()を呼び出すとき、またはATMI呼出しを行うときにのみ非請求メッセージを受信することを示します。

SIGNALは、クライアントがシグナルにより非請求メッセージを受信することを示します。

デフォルトはDIPINです

例: NOTIFY SIGNAL

USIGNAL SIGUSR1SIGUSR2の値は、クライアントにこのタイプのシグナルを通知することを意味します。

デフォルトはSIGUSR2です

例: USIGNAL SIGUSR1

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

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

  • マシン・アドレスから論理識別子(LMID)へのマッピング
  • 構成ファイル(TUXCONFIG)の場所
  • インストールされているOracle Tuxedoソフトウェアの場所(TUXDIR)
  • アプリケーション・サーバーの場所(APPDIR)
  • アプリケーション・ログ・ファイル(ULOGPFX)の場所
  • 環境ファイル(ENVFILE)の場所

ノート:

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

次の表に、MACHINESセクションの各パラメータの説明を示し、リファレンス・ページへのリンクや追加情報を示します。

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

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

ノート:

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

3.20.1 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
3.20.1.1 MACHINESセクションの例のパラメータ

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

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

ノート:

このパラメータに指定するパス名は、TUXCONFIG環境変数に指定したパス名(大文字/小文字の区別も含む)と完全に一致しなければなりません。パス名が一致していない場合、tmloadcf(1)は正常に実行されません。
ENVFILE 環境情報を含むファイルのフルパス名。二重引用符で囲みます。
ULOGPEX ログ・ファイルの接頭辞として使用する名前のフルパス名。二重引用符で囲みます。
MAXACCESSERS このマシンに対し、システム全体にわたる値(RESOURCESセクションで定義済)を100にオーバーライドします。
MAXOBJECTS CORBAサンプルで使用。このマシンに対し、システム全体にわたる値(RESOURCESセクションで定義済)を700にオーバーライドします。
MAXCONV このマシンに対し、システム全体にわたる値(RESOURCESセクションで定義済)を15にオーバーライドします。
3.20.1.2 MACHINESセクションの例のカスタマイズ方法

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

  • gumbyのマシン名
  • Windowsシステムの場合、マシン名は大文字で指定する必要があります。
  • Oracle Tuxedoソフトウェアが格納されているディレクトリのフルパス名。TUXDIRで指定します。
  • APPDIRの値としてのアプリケーション・ディレクトリのフルパス
  • ENVFILETUXCONFIG、およびULOGPFXのシステム上でのフルパス名。

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

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

  • 共有メモリーのリソースを節約できます。
  • ACLをチェックするためのディスクへのアクセス数を少なくすることができます。

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

3.22 サービス・リクエストの負荷を定義する

NETLOADパラメータを使用して、あるマシンから別のマシンにサービス・リクエストを送信するコストの計算時に加算する負荷を指定できます。この値は0以上、32,768未満の数値にする必要があります。デフォルトは0です。

関連項目:

  • 『Oracle Tuxedo ATMIの紹介』のロード・バランシングに関する項

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

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

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

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

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

  • アドレスおよびマシンIDは、次の形式で指定します。
    address LMID=logical_machine_name 

    アドレス(address)は、物理プロセッサ名を示します。

  • LMIDは、次の形式で指定します。
    LMID=logical_machine_name 

    LMIDは物理プロセッサに対する論理マシン名です。論理マシン名には、MACHINESセクションで一意の英数字を指定します。

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

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

3.24.1 SPINCOUNTパラメータの特性

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

  • ユニプロセッサ・システム上のプロセスは、ロック・スピンができません。ユニプロセッサ・システムのプロセスがアクセスした掲示板がロックされている場合、そのプロセスは、できるだけ早く実行状態に戻されなければなりません。ただし、これは、新しいプロセスが直ちに中断されなければ実現できません。
  • ユニプロセッサの場合、SPINCOUNTの適切な値は1です。
  • マルチプロセッサの場合、SPINCOUNTを5,000から始めるのが適切ですが、場合によっては100,000が適切です。
  • SPINCOUNTの値を設定した後で、アプリケーションのスループットを確認します。SPINCOUNTの値は、TMIBを使用してシステムの実行中に調整できます。

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

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

3.25.1 TYPEパラメータの特性

  • 2つのマシンに対して同じTYPEが指定されている場合、これらのマシン間では、データのエンコードおよびデコードは行われません。
  • TYPEには、任意の文字列値を指定できます。このパラメータは、比較のために使用します。
  • TYPEパラメータは、アプリケーションが異機種ネットワークのマシンで構成されている場合、またはネットワーク内のマシン上で様々なコンパイラを使用している場合に使用します。
  • このパラメータを指定しない場合は、デフォルトでNULL文字列になり、値が指定されないすべてのエントリが対象となります。

3.26 構成ファイルの場所を識別する

マシンを識別するエントリの構成ファイルの場所とファイル名を識別するには、必須パラメータであるTUXCONFIGを設定します。TUXCONFIGパラメータの値は二重引用符で囲まれ、最大64文字のフルパス名を表します。

ノート:

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

3.26.1 TUXCONFIGパラメータの特性

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

  • TUXCONFIGパラメータの構文は、TUXCONFIG= "full_path_of_tuxconfig"です。
  • このパラメータは、構成ファイルの場所およびファイル名を識別します。
  • TUXCONFIGには、64文字以下の文字列を指定できます。
  • TUXCONFIGの値は、TUXCONFIG環境変数の値と一致していなければなりません。

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

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

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

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

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

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

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

  • FIELDTBLS、FLDTBLDIR
  • VIEWFILES、VIEWDIR
  • TMCMPLIMIT
  • TMNETLOAD

3.29.1 ENVFILEパラメータの特性

ENVFILEは、次の特性を持つオプションのパラメータです:

  • ENVFILEパラメータの値の構文は、ENVFILE="envfile"のように文字列を二重引用符で囲みます。
  • ENVFILEは、Oracle Tuxedoシステムが起動するすべてのプロセスに対する環境変数設定を格納するファイルです。(UBBCONFIGファイルは、同様の方法、つまり完全修飾パス名を使用して警告を生成します。)
  • FIELDTBLSFLDTBLDIRなどを設定しますが、TUXDIRAPPDIRは設定しません。
  • 設定はすべてハードコード化する必要があります。FLDTBLDIR=$APPDIRなどの評価を伴う設定はできません。
  • ファイルのエントリの形式は、VARIABLE = stringです。

環境変数の設定の詳細は、『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』tuxenv (5)に関する項を参照してください。

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

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

このパラメータが指定されていない場合は、マシンにTLOGがないことが想定されます。

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

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

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

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

MAXWSCLIENTSの値は0以上32,768未満である必要があります。指定されていない場合、デフォルトは0です。このパラメータをMAXACCESSERSより大きい数値に設定することはできません。

ノート:

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

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

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

MAXPENDINGBYTESが重要になる状況は2つあります。

  • BRIDGEが非同期接続をリクエストする場合
  • すべての回線がビジー状態の場合

メモリーとディスク容量が多い大型コンピュータでは大きなMAXPENDINGBYTESを設定し、小型のコンピュータでは小さなMAXPENDINGBYTESを設定できます

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

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

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

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

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

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

3.35.1 TUXOFFSETパラメータの特性

  • オフセットには、0以上でデバイス上のページ数より小さい値を指定します。
  • デフォルトのオフセットは0です。
  • 0以外の値を指定した場合、TUXOFFSETの値はマシン上で起動するすべてのサーバーの環境に置かれます。

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

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

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

表3-10 APPDIRおよびTUXDIRパラメータの特性

パラメータ 特性
APPDIR 構文は、APPDIR="APPDIR"のようにフルパス名を二重引用符で囲む必要があります。

APPDIRは、アプリケーション・ソフトウェアの場所を示します。

APPDIRは必須パラメータです。

APPDIRは、サーバー・プロセスの現在の作業ディレクトリになります。

TUXDIR 構文は、TUXDIR="TUXDIR"のようにフルパス名を二重引用符で囲む必要があります。

TUXDIRは、Oracle Tuxedoソフトウェアの場所を示します。

TUXDIRは必須パラメータです。

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

CMPLIMITパラメータを使用して、リモート・プロセス(string_value1)およびローカル・プロセス(string_value2)にバインドされる、自動データ圧縮が実行されるメッセージのメッセージ・サイズのしきい値を定義します。

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

ノート:

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

3.37.1

CMPLIMIT=string_value1,string_value2 

3.38 ULOGのパス名を指定する

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

3.38.1 ULOGPFXパラメータの特性

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

  • ULOGPFXパラメータの値の構文は、ULOGPFX="ULOGPFX"のように文字列を二重引用符で囲みます。
  • アプリケーションのログ・ファイルには、TPESYSTEMおよびTPEOSエラーに関するすべてのメッセージが記録されます。
  • ユーザー・ログを使用して、アプリケーション・エラーをログ・ファイルに記録できます。
  • ULOGPFXは、APPDIR /ULOGにデフォルト設定されます。
  • サンプル・ファイル名BANKLOG.022667の場合、userlogの名前の接頭辞は、次のように指定されます。ULOGPFX="/mnt/usr/appdir/logs/BANKLOG"

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

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

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

次の表に、GROUPSセクションの各パラメータの説明を示し、リファレンス・ページへのリンクや追加情報を示します。

表3-11 構成ファイルのGROUPSセクションの作成方法

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

3.39.1 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"

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

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

Productionサンプルでは、ORA_GRP1、ORA_GRP2、APP_GRP1、およびAPP_GRP2の4つのグループが指定されています。これらのグループを構成し、グループが実行されるマシンを識別する必要があります。

*GROUPS

APP_GRP1
   LMID = SITE1
   GRPNO = 2
   TMSNAME = TMS

APP_GRP2
   LMID = SITE1
   GRPNO = 3
   TMSNAME = TMS

ORA_GRP1
   LMID = SITE1
   GRPNO = 4

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

   CLOSEINFO = ""
   TMSNAME = "TMS_ORA"

ORA_GRP2
   LMID = SITE1
   GRPNO = 5

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

CLOSEINFO = ""
TMSNAME = "TMS_ORA"

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

ノート:

Oracle Tuxedoソフトウェアに収録されているProductionサンプルは、1台のマシンでのみ実行するように構成されています。ただし、LMIDパラメータで他のマシンを指定することで、複数のマシンで実行するように当該アプリケーションを簡単に構成できます。この方法は、RESOURCESセクションでMODEL MPパラメータが指定されていることを前提としています。

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

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

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

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

パラメータ 特性
Group_name required_ parameters [optional_ parameters] これは必須です。

グループを識別する英数字名です。

一意であり、グループの論理名を指定します。

GRPNO (グループ番号) 必須パラメータであり、一意。
LMID=string_value1 [,string_value2] これは必須です。

LMID値には、30文字以下の英数文字列を指定します。

論理マシン名は2つまで指定できます。2つ目の論理名が指定され、サーバー・グループが移行できる場合、サーバー・グループが関連付けられているマシンは移行できます。

3.41 トランザクション・マネージャ・サーバーの名前とグループごとの数を指定する

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

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

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

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

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セクションの値をオーバーライドします。

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

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ファイル内で暗号化されたパスワードが検出されても、ユーザーに対してパスワードの作成は要求されません。

Oracle ATPデータベース・インスタンスの場合、次のステップに従います:
  1. dbuserとパスワードがOPENINFO文字列に埋め込まれている場合、OPENINFOは変わりません。
  2. ウォレットをATPデータベース・インスタンスからダウンロードし、目的の場所を選択して、ディレクトリに解凍します。
  3. ウォレットの場所は、$ORACLE_HOME/network/admin/sqlnet.oraで指定する必要があります
    WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA =(DIRECTORY="
    <wallet_directory>")))
    SSL_SERVER_DN_MATCH=yes

    ノート:

    wallet_directoryは、ユーザーがATPデータベース・ウォレットを解凍する場所です。
  4. TNSNAMES.ORAファイルの内容をウォレット・ディレクトリからコピーし、$ORACLE_HOME/network/admin/TNSNAMES.ORAの下にあるTNSNAMES.ORAファイルに追加します。
  5. dbuserには、DBA_PENDING_TRANSACTIONSへの選択アクセス権が必要です

    GRANT SELECT ON DBA_PENDING_TRANSACTIONS TO <dbuser>

ユーザーがdbuserとパスワードをOPENINFOに埋め込まない場合は、次のステップに従う必要があります。

  1. $ORACLE_HOME/network/admin/sqlnet.oraに、次の行を追加します
    SQLNET.WALLET_OVERRIDE = TRUE
  2. ユーザー名とパスワードをウォレットに追加します
    mkstore -wrl <WALLET_DIR> -createCredential <TNS_ALIAS> <USERNAME> <USERPW>

    ノート:

    mkstoreツールにはOracle DB Clientが付属しており、各プラットフォーム用のOracle Database Clientをダウンロードする必要があります。たとえば、Linux Oracle DB Clientの場合、LINUX.X64_193000_client_home.zipを参照してください。TNS_ALIASは、$ ORACLE_HOME/network/admin/tnsnames.oraのエントリの1つを参照します。
    1. ウォレット・ファイル内の資格証明を検証するには
      mkstore -wrl <WALLET_DIR> -listCredential
    2. ウォレット・ファイルの資格証明を変更または削除するには(次のコマンドで、ウォレット・ディレクトリ、ユーザー名、ユーザー・パスワード、TNS_ALIAS変数を適切に更新します):
      mkstore -wrl <WALLET_DIR> -modifyCredential <TNS_ALIAS> 
      <USERNAME> <USERPW> 
      mkstore -wrl <WALLET_DIR> -deleteCredential <TNS_ALIAS>
  3. UBBファイルのOPENINFO文字列の<TNS_ALIAS>を次のように更新します:
    OPENINFO="ORACLE_XA:Oracle_XA+SqlNet=<TNS_ALIAS>+Acc=P//+SesTm=100+LogDir=.+MaxCur=5"
  4. これで、Tuxedoは、OPENINFOでユーザー名とパスワードを指定せずにATPデータベースに接続できます。

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

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

次の表に、NETWORKセクションの各パラメータの説明を示し、リファレンス・ページへのリンクや追加情報を示します。

表3-12 構成ファイルのNETWORKセクションの作成方法

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

3.44.1 NETWORKセクションの例

以下は、2サイトを含む構成ファイルのNETWORKセクションの例です。

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

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

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

BRIDGE=string_value 

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

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

/dev/provider_name 

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

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

NADDR = string_value 

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

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

  • //host.name:port_number
  • //#.#.#.#:port_number
  • 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アドレスを含む文字配列に変換されます。

ノート:

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

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

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

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

3.47.1

MAXENCRYPTBITS=128 
MINENCRYPTBITS=0

関連項目:

  • 『CORBAアプリケーションにおけるセキュリティの使用』のリンク・レベルの暗号化に関する項

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

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

NLSADDR=string_value

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

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

  • //host.name:port_number
  • //#.#.#.#:port_number
  • 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サイトで障害が発生しても、バックアップ・サイトから再起動できません。

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

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

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

次の表に、NETGROUPSセクションの各パラメータの説明を示し、リファレンス・ページへのリンクや追加情報を示します。

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

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

3.49.1 ネットワーク・グループの構成の例

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

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

  • DEFAULTNET (デフォルトのネットワークである企業WAN)
  • MAGENTA_GROUP (LAN)
  • BLUE_GROUP (LAN)
  • GREEN_GROUP (メンバーのマシン間に、高速な光ファイバのポイント・ツー・ポイント・リンクを提供する専用LAN)

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

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


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

次の表に、どのマシンがどのグループに属しているかを示します。

表3-14 マシンとグループのアドレス

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

ノート:

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

3.49.2 UBBCONFIGファイルへのネットグループの構成

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

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"

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

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

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

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

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

NETGRPNO=numeric_value

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

3.52 ネットワーク・グループに優先度を割り当てる

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

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

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

  • サーバー名、サーバー・グループ、および数値で指定するサーバー識別子(SRVGRPSRVID)
  • servoptsで定義するサーバーのコマンド行オプション(CLOPT)
  • サーバーの起動順序および起動するサーバー数(SEQUENCEMINMAX)
  • サーバー固有の環境ファイル(ENVFILE)
  • サーバーのキューに関する情報(RQADDRRQPERMREPLYQRPPERM)
  • 再起動に関する情報(RESTARTRCMDMAXGENGRACE)
  • 会話型サーバーとするかどうかの指定(CONV)
  • システム全体にわたる共有メモリー・アクセスをオーバーライドするかどうかの指定(SYSTEM_ACCESS)
  • IIOPリスナー(ISL)サーバーのセキュリティ・パラメータの設定

ノート:

Oracle Tuxedoシステムでサポートされるコマンド行オプションについては、『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』servopts(5)に関する項を参照してください。

次の表に、SERVERSセクションの各パラメータの説明を示し、リファレンス・ページへのリンクや追加情報を示します。

表3-15 構成ファイルのSERVERSセクションの作成方法

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

SECURITY USER_AUTH以上を指定する必要があります。

デフォルトでは$TUXDIR/udataobj/tpldap ファイルを使用して、LDAPの構成情報を取得します。

例: LAUTHSVR SRVGRP= "AUTH"SRVID=100 CLOPT="-A-- -f/usr/tuxedo/udataobj/tpldap"

LAUTHSVR (オプション) LAUTHSVR(5)

3.53.1 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 (非会話型サーバー)が省略されています。特定のサーバーに対して特に設定を行わないかぎり、すべてのサーバーにはデフォルト設定が適用されます。
3.53.1.1 SERVERSセクションの例のパラメータ

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

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

ノート:

RQADDRは、このサーバーのリクエスト・キューにシンボリック名を割り当てます。MSSQセットを作成するには、複数のサーバーに対して同じシンボリック・キュー名を指定し、これらのサーバーの実行可能ファイルに同じ名前を割り当てます。MINには、1より大きい値を指定します。
RINGUP2 2番目に起動するサンプル・サーバーの名前。

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

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

3.54.1 CONVパラメータの特性

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

  • Yは、サーバーが会話型であることを示します。Nは、サーバーが会話型ではないことを示します。
  • サーバーで会話リクエストを受信する場合は値Yが必要です。
  • デフォルトはNです。

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

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

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

ノート:

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

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

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

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

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

Oracle Tuxedo CORBA環境でのサーバーの正しい起動順序は以下のとおりです。この順序が変更されると、CORBAアプリケーション・プログラムは起動しません。

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

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

University用のUBBCONFIGサンプル・ファイルのSERVERSセクションを編集した例のリスト

*SERVERS 
    # By default, restart a server if it crashes, up to 5 times 
    # in 24 hours. 
    # 
    DEFAULT: 
        RESTART = Y 
        MAXGEN = 5 

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

   # TMFFNAME is a Oracle Tuxedo CORBA provided server that 
   # runs the NameManager and FactoryFinder services. 
   # The NameManager service is a Oracle Tuxedo CORBA-specific   
    # service that maintains a mapping of application-supplied names 
   # to object references. 

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

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

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

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

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

   # Start the listener for IIOP clients 
   # 
   # Specify the host name of your server machine as 
   # well as the port. A typical port number is 2500 
   # ISL
        SRVGRP   = SYS_GRP 
        SRVID    = 7 
        CLOPT    = "-A -- -n //TRIXIE:2500"

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

ノート:

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

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

パラメータ 特性
SEQUENCE 省略可能なパラメータです。値には1 - 10,000の範囲の数値を設定します。

小さい値が指定されたサーバーは、大きい値が指定されたサーバーより先に起動します。

このパラメータが設定されていないサーバーは、SERVERSセクションに示されている順序で起動します。

順序が指定されているサーバーは、指定されていないサーバーより先に起動します。

MIN 実行時に起動するサーバーの最小数を指定します。

RQADDRが指定されており、MINが1より大きい場合(MIN > 1)は、MSSQセットが作成されます。

すべてのインスタンスには、同じサーバー・オプションが適用されます。

値には、0 - 1000を指定します

デフォルトは1です。

MAX 起動するサーバーの最大数を指定します。

MAXには0 - 1000の値を指定します。MAXを指定しない場合、デフォルトでMINの値が指定されます。

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

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

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

表3-16 サーバーのコマンド行オプションの指定

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

ノート:

他の標準のmain()オプションは、『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』servopts(5)に関する項のリストを参照してください。

3.57.1 CLOPTパラメータの特性

  • 構文は、CLOPT="servopts -- application_opts"です。
  • 省略可能なパラメータであり、デフォルトで-Aが設定されます。
  • main()およびtpsvrinit()では、サーバーのコマンド行オプションが使用されます。
  • servopts(5)オプションはmain()に渡されます。
  • アプリケーションのオプションはtpsvrinit()に渡されます。

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

CLOPT=”-A -- -T 10"

このサーバーは、すべてのサービスを通知するオプション(-A)および窓口IDの10を提供されるため、操作ごとに特定の窓口レコードを更新できます。このオプション、特にtpsvrinit()に渡されるオプションを使用する場合、システム管理者とアプリケーション・プログラマは、よく相談する必要があります。

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

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

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

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

  • 省略可能なパラメータであり、MACHINESセクションのENVFILEパラメータと同じセマンティクスを含みます。ただし、定義するのは1つのサーバーだけです。
  • 変数が重複する場合、ENVFILESERVERSセクションの設定が、ENVFILEMACHINESセクションとGROUPSセクションの設定をオーバーライドします。

環境変数の設定の詳細は、『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』tuxenv(5)に関する項を参照してください。

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

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

  • buildserver(1) (ATMIアプリケーションの場合)
  • buildobjserver(1) (CORBA C++サーバー・アプリケーションの場合)

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

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

パラメータ 特性
Server_name 起動する実行可能ファイルを識別します。

ATMIではbuildserver(1)で構築されます。

CORBAではbuildobjserver(1)で構築されます。

必須ですが、サーバー・グループ内で一意である必要はありません。

SRVGRP (サーバー・グループ) グループとの関係を識別します。

グループ名は、GROUPSセクションのエントリに設定されているものを指定します。

これは必須です。

SRVID (サーバーID) 数値で指定します。

必須パラメータであり、サーバー・グループ内で一意の値を設定します。

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

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

3.60.1 MSSQの例

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

RQPERMパラメータでは、UNIXシステム規則の行(0666など)とともに、サーバー・リクエスト・キューの権限を指定できます。この設定では、サービスがリクエスト・キューへのアクセスを制御できます。

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

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

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

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

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

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

MAXGENパラメータは、サーバーがGRACEで指定された期間にアクティブになれる合計回数を表します。サーバーは、GRACEで指定された秒数内にMAXGEN-1回再起動できます。GRACEがゼロに設定されている場合、サーバーの再起動に制限はありません。MAXGENはデフォルトで1になり、256を超えることはできません。GRACEはゼロ以上である必要があり、2,147,483,647 (231 - 1)を超えることはできません。

ノート:

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

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

パラメータ 特性
RESTART Yを設定すると、サーバーを再起動できるようになります。

デフォルトはNです。

RCMD 再起動時に実行される実行可能ファイルを指定します。

サーバーの再起動時にアクションを行えるようにします。

MAXGEN 指定された時間の間隔内でのサーバー再起動の最大数を表します。

デフォルトは1で、最大値は256です。

GRACE MAXGENに使用される時間間隔を表します。

ゼロの場合は、再起動回数に制限がないことを表します。

0から2,147,483,647 (231 - 1)の範囲の値である必要があります。

デフォルトは24時間です。

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

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

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

3.62.1 SYSTEM_ACCESSパラメータの特性

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

  • PROTECTEDは、サーバーがシステム・コードの外から共有メモリーにアタッチしないことを示します。
  • FASTPATHは、サーバーが常に共有メモリーにアタッチされることを示します。
  • RESOURCESセクションでNO_OVERRIDEが指定されている場合、このパラメータは無視されます。
  • デフォルトは、RESOURCESセクションのSYSTEM_ACCESSパラメータに指定した値です。
  • PROTECTEDが設定されていると、Oracle Tuxedoシステムの処理速度は遅くなります。

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

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

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

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

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

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

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

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

パラメータ 特性
SEC_PRINCIPAL_NAME IIOPリスナー/ハンドラのIDを指定します。
SEC_PRINCIPAL_LOCATION IIOPリスナー/ハンドラの秘密キーの場所を指定します。
SEC_PRINCIPAL_PASSWORD IIOPリスナー/ハンドラの秘密キーのフレーズを指定します。

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

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

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

  • ロード・バランシング情報(SRVGRP)
  • サービスへの優先度の割当て
  • 個々のサーバー・グループに対する異なるサービス・パラメータ
  • バッファ・タイプの情報(BUFTYPE)
  • 非トランザクション型サービス・レベルのブロック時間値

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

次の表に、SERVICESセクションの各パラメータの説明を示し、リファレンス・ページへのリンクや追加情報を示します。

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

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

3.65.1 SERVICESセクションの例

次に、構成ファイルのSERVICESセクションの例を示します。

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

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

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

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値までトランザクション・タイムアウト値が制限(必要に応じて減少)されます。

関連項目:

  • Oracle Tuxedo Domainsコンポーネントの使用
  • MAXTRANTIMEの詳細は、UBBCONFIG(5)RESOURCESセクションにあるMAXTRANTIME、またはTM_MIB(5)T_DOMAINクラスにあるTA_MAXTRANTIMEを参照してください。

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

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

type[:subtype[,subtype]] 

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

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

3.67.1 BUFTYPEパラメータの例

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

3.68 リクエストを処理する時間を指定する

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

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

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

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

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

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

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

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, group %TA_SRVGRP, id %TA_SRVID server killed due to a service timeout
3.68.2.1 サービス・タイムアウトの制御方法
  • アプリケーション管理者は、UBBCONFIGファイルのSERVICESセクションにあるSVCTIMEOUTパラメータを変更するか、またはTM_MIBT_SERVERクラスまたはT_SERVICEクラスのTA_SVCTIMEOUT属性を変更してサービス・タイムアウトを制御することができます。また、ULOGファイルをモニターして、サービス・タイムアウトの動作を確認することもできます。
  • ULOGファイルをモニタリングする方法に加え、アプリケーション・オペレータは、サービス・タイムアウトの発生をアラートする.SysServiceTimeoutイベントをサブスクライブできます。
  • アプリケーション・プログラマは、tperrordetail(3c)およびtpstrerrordetail(3c)関数と、TPED_SVCTIMEOUTエラー詳細コードを使用できます。これらは、サービス・タイムアウトの発生時に生成される.SysServiceTimeoutシステム・イベントに1つ以上のサブスクリプションを追加できます。

3.69 非トランザクション型サービス・レベルのブロック時間を指定する

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

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

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

ノート:

アプリケーション・プログラマは、tpsblktime(3c)およびtpgblktime(3c)関数を使用すると、非トランザクション型ブロック時間リクエストを設定して、ブロック時間値を取得することもできます。

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

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

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

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

3.70.1 LDBALパラメータの特性

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

  • RESOURCESセクションのLDBALパラメータがYに設定されている場合、ロード・バランシングが行われます。
  • ロード・ファクタは、サーバーの負荷の合計に追加されます。
  • ロード値は、サービスどうしの関連で決められます。

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

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

ROUTING=string_value  

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

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

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

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

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

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

サーバー1は、サービスA、B、およびCを提供します。サービスAおよびBの優先度は50で、サービスCの優先度は70です。Cに対してリクエストされるサービスは、常にAまたはBに対するリクエストより先にデキューされます。AおよびBに対するリクエストは、互いに等しくキューから取り出されます。

ノート:

優先度は、tpsprio()呼出しを使用して動的に変更することもできます。

3.73.1 PRIOパラメータの特性

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

  • サーバーのキューにおけるサービスの優先度を指定します。
  • 最も高い優先度が最優先されます。
  • 10回に1回ごとにリクエストはFIFOでキューから取り出されます。

3.73.2 優先度の異なる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が割り当てられます。

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

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

SVCTIMEOUT=number

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

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

ノート:

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

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

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

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

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

  • トランザクションを自動的に開始するかどうか(AUTOTRAN) (CORBAのみ)
  • このCORBAインタフェースでファクトリ・ベース・ルーティングに使用されるルーティング基準(FACTORYROUTING) (CORBAのみ)
  • ロード・バランシング情報(LOAD)
  • インタフェースに対する優先度の割当て(PRIO)
  • 個々のサーバー・グループに対する異なるサービス・パラメータ(SRVGRP)
  • CORBAインタフェースに関連付けられたトランザクションのタイムアウト値(TRANTIME)
  • CORBAインタフェースに関連付けられたトランザクションのタイムアウト値(TRANTIME)
  • このCORBAインタフェースのメソッド処理のタイムアウト値(TIMEOUT)

次の表に、AUTOTRANFACTORYROUTINGLOADPRIOSRVGRPTRANTIMEおよびTIMEOUTの各パラメータの特性を示します。

パラメータ 特性
AUTOTRAN = {Y | N } オペレーション呼出しを受信したときにトランザクションを自動的に開始する場合、各CORBAインタフェースに対して、AUTOTRANをYに設定します。AUTOTRAN=Yは、インタフェースがすでにトランザクション・モードにある場合は無効です。デフォルトはNです。

AUTOTRANの値の指定が有効かどうかは、システム設計者が実装構成ファイル(ICF)またはサーバー記述ファイル(XML)でそのインタフェースに対して指定したトランザクション・ポリシーによって異なります。このトランザクション・ポリシーは実行時に、関連するT_IFQUEUE MIBオブジェクトのトランザクション・ポリシーの属性になります。この値が実際にアプリケーションの動作に影響するのは、システム設計者がトランザクション・ポリシーを「optional」に指定した場合だけです。

ノート:

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

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

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

3.75.2.1 Universityのサンプル

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

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_IDACT_NUMに指定されています。

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

3.75.2.2 Bankappのサンプル

次のリストに、Bankappサンプル・アプリケーションでのファクトリ・ベース・ルーティングの指定方法を示します。

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を含む)の間にある場合に、アプリケーションで使用されるインタフェースを処理します。

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

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

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

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

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

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

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

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

  • サーバーのキューにおけるCORBAインタフェースの優先度を指定します。
  • 最も高い優先度が最優先されます。
  • 10回に1回ごとにリクエストはFIFOでキューから取り出されます。

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

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

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

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

ノート:

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

次の表に、ROUTINGセクションの各パラメータの説明を示し、リファレンス・ページへのリンクや追加情報を示します。

ROUTINGセクションで指定する情報(オプション) パラメータ(必須/省略可能) 参照先(クリックするとリンク先にジャンプ)
ルーティング・フィールドの範囲および関連するサーバー・グループを指定します。 RANGES (必須) 範囲の基準を指定する
この値は、最大15文字の文字列。

ATMIの場合は、データ依存型ルーティング用にSERVICESセクションのROUTINGパラメータで指定したルーティング基準名になります。

CORBAの場合は、ファクトリ・ベース・ルーティング用に、INTERFACESセクションのFACTORYROUTINGパラメータで指定したルーティング基準名になります。

criterion_name (必須) -
ルーティングのタイプ。

ATMIの場合、デフォルトはTYPE=SERVICEになり、Tuxedo ATMI環境で使用される既存のUBBCONFIGファイルが引き続き正常に動作することが確認されます。

CORBAでは、CORBAインタフェースに対してファクトリ・ベース・ルーティングを実装する場合はTYPE=FACTORYを使用します。

TYPE -
ルーティング・フィールドの名前であり、値はそれぞれFMLバッファ、XMLの要素または要素の属性、FMLフィールド表で指定されたVIEWフィールド名(FLDTBLDIRおよびFIELDTBLS環境変数を使用)、FMLのVIEW表(VIEWDIRおよびVIEWFILES環境変数を使用)になります。この情報は、メッセージの送信時に、データ依存型ルーティングに関連するフィールド値を取得するために使用されます。

CORBAのファクトリ・ベース・ルーティングでは、この値によってルーティング・フィールドの名前が指定されます。最大長は30文字です。ファクトリの呼出しでファクトリ・ベース・ルーティングに対して指定されたフィールド名(インタフェースのTP::create_object_reference (C++)またはcom.beasys.Tobj.TP::create_object_reference (Java))に対応している必要があります。

FIELD (必須) ルーティング・バッファ・フィールドとフィールド・タイプを定義する
このルーティング・エントリで有効なデータ・バッファのタイプとサブタイプのリスト。このパラメータには、最大32のタイプとサブタイプの組合せを最大256文字で指定できます BUFTYPE (必須) バッファ・タイプを定義する

3.76.1 ROUTINGセクションの例

以下は、構成ファイルのROUTINGセクションの例です。

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

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

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

パラメータ 特性
FIELD ルーティングが行われるバッファ・フィールドの名前。30文字まで使用できます。

Oracle Tuxedoのデータ依存型ルーティングでは、このパラメータの値は、FMLフィールドの名前(FMLバッファの場合)、XMLの要素または属性、FMLフィールド表で指定されたVIEWフィールド名(FLDTBLDIRおよびFIELDTBLS環境変数を使用)、FMLのVIEW表(VIEWDIRおよびVIEWFILES環境変数を使用)のいずれかになります。この情報は、メッセージの処理時に、データ依存型ルーティングに関連するフィールド値を取得するために使用されます。FML32バッファ内のフィールドがルーティングに使用される場合は、8191以下の数値をフィールド番号として指定します。

XMLドキュメントのルーティングでは、FIELD構文には、ルーティング要素のタイプ(または名前)またはルーティング要素の属性名が含まれます。FIELDパラメータは、次の構文で定義します。
root_element[/child_element][/child_element][/. . .][/@attribute_name]
要素は、XMLドキュメントまたはデータグラムの要素のタイプ(または名前)または要素の属性名とみなされます。この情報は、ドキュメントまたはデータ・グラムの送信時に、データ依存型ルーティングに関連する要素の内容または属性値を取得するために使用されます。索引はサポートされないので、Oracle Tuxedoシステムは、データ依存型ルーティングでXMLバッファを処理する際に、与えられた要素タイプの最初のオカレンスだけを認識します。

CORBAのファクトリ・ベース・ルーティングでは、この値によってルーティング・フィールドの名前が指定されます。最大長は30文字です。ファクトリの呼出しでファクトリ・ベース・ルーティングに対して指定されたフィールド名(インタフェースのTP::create_object_reference(C++)またはcom.beasys.Tobj.TP::create_object_reference (Java))に対応している必要があります。

FIELDTYPE このパラメータは、XMLバッファをルーティングする場合にのみ使用されます。このパラメータは、FIELDで指定されたルーティング・フィールドのデータ型を示します。構文は以下のとおりです。
FIELDTYPE=type
typeは、stringcharshortlongfloatまたはdoubleのいずれかです。

ルーティング・フィールドのデフォルトのデータ型はstringです。

3.78 範囲の基準を指定する

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

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

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

  • 数値(数値フィールドで使用)
  • STRINGバッファまたはCARRAYバッファ(一重引用符で囲む)
  • MINまたはMAX (マシンのデータの最小値または最大値)

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

ノート:

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

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

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

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

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

次のubb_b.nt構成ファイルのINTERFACESROUTINGおよびGROUPSセクションは、Oracle TuxedoのCORBAアプリケーションでファクトリ・ベース・ルーティングを実装する方法を示しています。

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

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_IDACT_NUMに指定されています。

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

  • TYPEパラメータでは、ルーティングのタイプを指定します。Productionサンプルでは、ルーティングのタイプはファクトリ・ベース・ルーティングです。したがって、このパラメータは、FACTORYと定義します。
  • FIELDパラメータでは、ファクトリがルーティング値として挿入する変数名を指定します。Productionサンプルでは、このフィールド・パラメータがそれぞれstudent_idとaccount_numberに設定されています。
  • FIELDTYPEパラメータは、ルーティング値のデータ型を指定します。Productionサンプルでは、student_idおよびaccount_numberのフィールドはlong型です。
  • RANGESパラメータでは、サーバー・グループと、各ルーティング値の有効範囲のサブセットを関連付けます。

次のリストに、Productionサンプル・アプリケーションで使用するUBBCONFIGファイルのROUTINGセクションを示します。

ProductionサンプルのROUTINGセクションのリスト

*ROUTING

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

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

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

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

次のリストに、ProductionサンプルのUBBCONFIGファイルのGROUPSセクションを示します。GROUPSセクションに列挙されている名前が、ROUTINGセクションに指定されているグループ名とどのように一致するかに注目してください。さらに、アプリケーションでグループを構成する方法に関する何らかの変更も、ROUTINGセクションに反映させる必要があります。(Oracle TuxedoソフトウェアとともにパッケージされているProductionサンプルは1台のマシンでのみ実行できるように構成されている点に注意してください。ただし、このアプリケーションを複数のマシンで実行できるように構成することは簡単です。)

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"

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

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

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を含む)の間にある場合に、アプリケーションで使用されるインタフェースを処理します。

3.82 スレッドを利用するOracle Tuxedoシステムの構成方法

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

表3-18 スレッドを使用する構成ファイルのパラメータの設定

セクション パラメータ 考慮事項
RESOURCES MAXACCESSERS 省略可能なパラメータ。ただし、50アクセサ(デフォルト値)より大きい値を割り当てる必要があります。

ライセンスの制限のため、マルチコンテキスト化されたクライアントの各コンテキストは個別にカウントされます。

MACHINES NOTIFY 非請求通知に使用するデフォルトの方法を定義する省略可能なパラメータ。マルチコンテキスト・アプリケーションで有効な値は次のとおりです。
  • DIPIN
  • THREAD
  • IGNORE
MAXACCESSERS 省略可能なパラメータ。ただし、50アクセサ(デフォルト値)より大きい値を割り当てる必要があります。

ライセンスの制限のため、マルチコンテキスト化されたクライアントの各コンテキストは個別にカウントされます。

SERVERS MAXWSCLIENTS 省略可能なパラメータ。

マルチコンテキスト化されたワークステーション・クライアントの各コンテキストは、ライセンス制限のため、個別にカウントされます。

デフォルトは0であるため、ワークステーション・クライアントが定義されているマシンを介してシステムにアクセスする場合は、このパラメータを設定する必要があります。

MINDISPATCHTHREADS 省略可能なパラメータ。
MAXDISPATCHTHREADS マルチスレッド化されたサーバーの必須パラメータ

既存のサーバーをマルチスレッド化する場合、経験のあるプログラマは、サーバーのソース・コードがスレッド・セーフな方法で作成されているかどうかを検証しなければなりません。つまり、構成ファイルのMAXDISPATCHTHREADSの値を増やすだけで、静的変数でシングル・スレッド化されたサーバーをマルチスレッド化されたサーバーに変換することはできません。このようなサーバーは、マルチスレッド用として作成する必要があります。

THREADSTACKSIZE 省略可能なパラメータ

サーバー・ディスパッチ・スレッドが特別に大きなスタックを必要とする場合に設定することが必要な場合があります。

デフォルトの0は、ほとんどのアプリケーションに対して十分です。(オペレーティング・システムに0が渡された場合、オペレーティング・システムは固有のデフォルトを呼び出します。)

3.83 構成ファイルのコンパイル方法

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

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

ノート:

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