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

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

分散アプリケーションのネットワーク設定

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

 


分散アプリケーション用のネットワーク コンフィグレーション

分散アプリケーションとは、Oracle Tuxedo システムがインストールされた複数のコンピュータ上で動作するアプリケーションのことです。コンピュータどうしは接続されており、ハードウェアやソフトウェア、アクセス方式、および通信プロトコルにより、ネットワーク経由で通信できます。Oracle Tuxedo システムは、メッセージのエンコード、ルーティング、およびデコードを行い、処理されたメッセージをネットワーク経由でマシンに送信します。これらのタスクは自動的に実行されます。

分散アプリケーションに必要なネットワーク機能をコンフィグレーションするには、コンフィグレーション ファイルに次のエントリを指定します。

セクション名
パラメータ名
目的
RESOURCES
MODEL (必須)
MP を指定します。このパラメータを指定すると、他のネットワーク パラメータが有効になります。これは、ネットワーク接続されたマシン用のパラメータです。1 台のマシンによるコンフィグレーションでは、マルチプロセッサ マシンの場合でも SHM を使用します。
OPTIONS (必須)
LAN (ローカル エリア ネットワーク) を指定すると、同一マシン上のプロセッサ間ではなく、異なるマシン間で通信が行われます。
MAXNETGROUPS (省略可能)
NETGROUPS に定義できるグループ数の上限値を指定します。デフォルト値は 8 で、上限値は 8192 です。
MACHINES
TYPE=string (省略可能)
2 台のマシン間でメッセージを交換する場合に、メッセージのエンコードが必要かどうかを指定します。TYPE パラメータは、定義されたマシンで使用されるデータ表現を指定します。データ表現が異なるマシン間でメッセージを送受信する場合は、送信メッセージをエンコードしてから送信し、受信時にデコードします。
データ表現が同じマシン間でメッセージを送受信する場合、エンコード/デコードの処理は省略されます。
例 1
LMID_1 TYPE = “abc”
LMID_2 TYPE = “abc”
この場合、エンコードは行われません。
例 2
LMID_1 TYPE = “HP”
LMID_2 TYPE = “SUN”
この場合、エンコードが行われます。
メッセージを交換するすべてのマシンのデータ表現が同じであれば、このパラメータを設定する必要はありません。パラメータを設定する必要があるのは、データ表現が異なるマシンのみです。たとえば、9 台の SPARC マシンと 1 台の HP マシンがある場合は、HP マシンにのみ TYPE=string を指定します。SPARC マシンは、デフォルトの NULL 文字列により、同じタイプであると見なされます。
 
CMPLIMIT=remote[, local] (省略可能)
圧縮のしきい値、つまり、リモートやローカルの宛先に送信するメッセージのうち、圧縮の対象とするメッセージの最小値をバイト数で指定します。remote および local に指定できる値は、0 から MAXLONG までの数値です。CMPLIMIT に 1 つだけ値を指定すると、指定した値は remote 引数と見なされ、ローカルの宛先に送信されるメッセージは圧縮されません。
たとえば、CMPLIMIT=1024 と指定すると、リモートの宛先への、1024 バイトより大きいメッセージは圧縮されます。
TMCMPLIMIT 変数を使用して圧縮のしきい値を指定することもできます。TMCMPPRFM 変数については、tuxenv(5) の説明を参照してください。この変数は、1 ~ 9 の範囲で圧縮のレベルを設定します。
 
NETLOAD=number (省略可能)
リモート サービスの LOAD の値に、アプリケーション固有の数値を追加します。結果は、要求をローカルで処理するか、またはリモート マシンに送信するかを決定するために使用されます。NETLOAD の値が大きいほど、リモート マシンに送信されるトラフィックは少なくなります。
NETGROUPS (省略可能)
NETGROUP (必須)
アプリケーションにより、特定のマシン グループに割り当てられる名前を指定します。名前には、最大 30 文字まで指定できます。ネットワーク上のすべてのマシンを含むグループが 1 つの場合、DEFAULTNET という名前に設定する必要があります。
NETGRPNO=number (必須)
マシン グループをシステム側で識別するための番号を指定します。1 ~ 8192 の任意の数値を指定できます。DEFAULTNET の場合、NETGRPNO を 0 に指定する必要があります。
NETPRIO=number (省略可能)
NETGROUP に優先順位を割り当てます。このパラメータは、システム側でどのネットワーク接続を使用するかを決定するのに役立ちます。0 ~ 8192 の数値を指定する必要があります。高速回線に高い優先順位を割り当てます。DEFAULTNET には最も低い順位を割り当てます。
NETWORK (省略可能)
LMID (必須)
指定したマシンを、MACHINES セクション内のエントリの 1 つにマッピングします。
NADDR=string (必須)
この LMIDBRIDGE プロセスに対するリスン用アドレスを指定します。このネットワーク アドレスを指定する有効な形式は 4 つあります。詳細については、UBBCONFIG(5) の NETWORK セクションを参照してください。
NLSADDR=string (必須)
この LMIDtlisten プロセスに対するネットワーク アドレスを指定します。有効な形式は、NADDR の形式と同じです。
NETGROUP=string (省略可能)
NETWORK グループ名を指定します。string には、NETGROUPS セクションで指定したグループ名を指定しなければなりません。デフォルト値は DEFAULTNET です。

 


ネットワーク上のデータの流れ

分散アプリケーションでは、データはネットワーク上で次のように送信されます。

 


パラレル ネットワーク上でのデータの流れ

分散アプリケーションでは、ネットワーク上でのデータの送受信にパラレル データ回線を使用すると、次のような利点を活用できます。

ただし、パラレル データ回線を使用するかどうかを決定する前に、メッセージを順番に処理する必要があるかどうかを判断してください。システムでは、1 つの特定のデータ回線に会話接続をバインドすることにより、会話型メッセージの正しいシーケンスが確保されます。

すべてのメッセージが順番に送信される必要がある場合、非会話型メッセージのシーケンスも追跡されるようにアプリケーションをプログラミングします。この方法を使用する場合、パラレル データ回線はコンフィグレーションしない方がよいでしょう。

次の図は、あるマシンから別のマシンへのデータの流れを示します。この図は、マシン A とマシン B で構成される例に基づいています。まず、BRIDGE は、両方のマシンに共通のネットワーク グループである、MAGENTA_GROUPGREEN_GROUP、および DEFAULTNET を識別します。

優先順位が同じネットワーク グループ (NETPRIO パラメータの値が同じグループ) には、データは並列に流れます。優先順位が異なるネットワーク グループは、フェイルオーバ用です。

図 12-1 BRIDGE 上のデータの流れ

BRIDGE 上のデータの流れ

 


単純な分散アプリケーションのネットワーク コンフィグレーションの例

次の例は、単純なネットワークのコンフィグレーション方法を示しています。

# 以下は 2 サイトを含むコンフィグレーション ファイルの
# Network セクションの例

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

 


ネットワーク データのスケジューリングでのフェイルオーバとフェイルバック

データは使用可能な回線のうち、優先順位が最も高い回線を流れます。すべてのネットワーク グループに同じ優先順位が与えられている場合、データはすべてのネットワークに同時に送信されます。現在優先されているすべての回線で障害が発生すると、データは次に優先順位が高い回線に送信されます。このプロセスを「フェイルオーバ」と呼びます。フェイルオーバが発生すると、失敗した接続は定期的に再試行されます。

優先順位の高いネットワーク接続が再確立されると、「フェイルバック」が発生し、優先順位の低い接続にはデータがスケジューリングされなくなります。優先順位がより低い接続は、通常の方法で切断されます。

すべてのネットワーク アドレスへの接続の再試行が失敗すると、次にマシン間でのアプリケーション データやシステム データの送信が必要になったときに接続が再試行されます。

 


複数のネットグループによるコンフィグレーションの例

First State Bank という架空の銀行で、5 台のマシン (A-E) が構成されるネットワークを想定してください。これらのマシンは 4 つのネットワーク グループにコンフィグレーションされ、それぞれのマシンが 2 つから 3 つのネットワーク グループで使用されています。

注意 : 複数のネットワーク グループ (NETGROUPS) を含むコンフィグレーションでは、ハードウェアおよびソフトウェアに対する要件があります。ただし、このマニュアルでは説明していません。たとえば、マシンが、複数の物理ネットワークに参加しなければならない場合があります。各マシンの TCP/IP シンボリック アドレスは、/etc/hosts ファイルまたは DNS (ドメイン ネーム サービス) で識別する必要があります。
注意 : 次の例の //A_CORPORATE:5345 という形式のアドレスの文字列 A_CORPORATE は、/etc/hosts ファイルまたは DNS (ドメイン ネーム サービス) で指定されていることを想定しています。

First State Bank には、次の 4 つのネットワーク グループがあります。

すべてのマシンは、DEFAULTNET (企業 WAN) に属します。さらに、各マシンは MAGENTA_GROUP または BLUE_GROUP に関連付けられます。MAGENTA_GROUP の一部のマシンは GREEN_GROUP に属しています。次の図は、ネットワークにおけるグループの構成を示しています。

図 12-2 ネットワーク グループの例

この例では、マシン A と B は以下のグループに対するアドレスを持ちます。

マシン C は以下のグループに対するアドレスを持ちます。

マシン D と E は以下のグループに対するアドレスを持ちます。

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

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

前の節で説明したコンフィグレーションを設定するため、First State Bank の管理者は、以下に示すように、UBBCONFIG ファイルの 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"

各ネットワーク グループへの優先順位の割り当て

ネットワークの BRIDGE プロセスの機能を最大限に生かすには、各ネットワーク グループを表す NETGROUP に適切に優先順位を割り当てます。NETGROUP の優先順位を割り当てる場合は、以下の点を念頭に置いてください。

ネットワーク グループへの優先順位の割り当て例

次の図は、First State Bank の管理者が使用可能なネットワーク グループに優先順位を割り当てる方法を示しています。

図 12-3 ネットワーク グループへの優先順位の割り当て

ネットワーク グループへの優先順位の割り当て

次のように優先順位が割り当てられます。

NETGROUPS セクションおよび NETWORK セクションの例

最も優先順位の低いネットワーク グループは、デフォルトのネットワーク グループとして予約されます。つまり、他のネットワーク グループがすべて使用不可能にならない限り、このグループは使用されません。したがって、分単位で課金される衛星回線など、特定のネットワークの使用を制限する場合は、そのネットワークをデフォルトのネットワーク グループとして指定します。

デフォルトのネットワーク グループに優先順位を割り当てるには、他のグループと同じように、DEFAULTNETNETPRIO バラメータを設定します。DEFAULTNET の NETPRIO を指定しないと、以下の例に示すようにデフォルト値の 100 が使用されます。

*NETGROUP
DEFAULTNET NETGRPNO = 0 NETPRIO = 100

DEFAULTNET では、ネットワーク グループ番号 (NETGRPNO) の値を 0 に指定しなければなりません。これ以外の値は無効です。NETGRPNO の値は、エントリごとにユニークでなければなりません。

一方、複数のネットワーク グループに対して、同じ NETPRIO の値を割り当てることもできます。たとえば、First State Bank のコンフィグレーション ファイルで、MAGENTA_GROUPGREEN_GROUP に同じネットワーク優先順位 (NETPRIO=200) を割り当てることができます。

各ネットワーク アドレス (NETWORK) は、デフォルトで DEFAULTNET ネットワーク グループに関連付けられます。このパラメータは、エントリ間の統一性を保ちたい場合、または定義されるネットワーク アドレスを 2 つ目のネットワーク グループに関連付けたい場合に、明示的に指定することができます。

*NETWORK
D NETGROUP=BLUE_GROUP NADDR="//D_BLUE:5726"

  ページの先頭       前  次