Oracle Tuxedo アプリケーション実行時の管理

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

分散アプリケーションでのネットワーク管理

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

 


分散アプリケーション用のネットワークの構築

分散アプリケーション用のネットワークを構築する作業は、主にコンフィグレーション フェーズまたはセットアップ フェーズで行われます。ネットワークを定義し、アプリケーションを起動すると、ネットワークは自動的に構築されます。

この章では、ネットワークを介してデータを移動する方法と、ネットワークに関する操作を制御するコンフィグレーション ファイルのパラメータを設定する方法について説明します。

 


ネットワーク データの圧縮

Oracle Tuxedo システムでは、アプリケーションのプロセス間で送信されるデータを圧縮できます。データ圧縮は便利な機能であり、特に、大規模なコンフィグレーションを運用する場合に重要です。データ圧縮は、同じマシン上でメッセージの送受信を行う場合 (ローカル データ圧縮)、または異なるマシン間でメッセージの送受信を行う場合 (リモート データ圧縮) に使用できます。データ圧縮には次の利点があります。

圧縮レベルの設定

データ圧縮を使用するには、コンフィグレーション ファイルの MACHINES セクションの CMPLIMIT パラメータを次のように設定する必要があります。

CMPLIMIT=string_value1[,string_value2]

このパラメータの文字列値には、リモート プロセス (string_value1) およびローカル プロセス (string_value2) で処理されるメッセージのサイズのしきい値を指定します。必須パラメータは最初の文字列値 (string_value1) のみです。どちらの文字列も、デフォルトは MAXLONG パラメータの値です。

TMCMPPRFM パラメータを設定して、圧縮と CPU のパフォーマンスとのバランスを調整することもできます。圧縮レベルを高くすると、圧縮速度は下がりますがネットワーク帯域幅を効率的に利用できます。圧縮レベルを低くすると、圧縮速度は上がり、CPU 使用率を節約できます。

圧縮レベルを指定するには、次の手順に従います。

  1. UBBCONFIG コンフィグレーション ファイルの CMPLIMIT パラメータを使用して、圧縮のしきい値を設定します。
  2. (省略可能) TMCMPPRFM 環境変数を設定します。TMCMPPRFM の値には、1 ~ 9 の範囲の 1 桁の数値を指定します。デフォルト値は 1 です。
  3. 圧縮レベルの最低値 1 を指定すると、圧縮は最も早い速度で行われます。圧縮レベルの最高値 9 を指定すると、圧縮は最も遅い速度で行われます。つまり、低い数値が指定されると、圧縮ルーチンの処理速度は速くなります。

TMCMPPRFM 変数の設定方法の詳細については、『Oracle Tuxedo のファイル形式とデータ記述方法』の「tuxenv(5)」を参照してください。

データ圧縮のしきい値の選択

メッセージに対して圧縮のしきい値を指定することができます。つまり、指定したしきい値を超えるメッセージは圧縮されます。圧縮のしきい値を指定するには、CMPLIMIT パラメータを設定します。設定の手順については、「圧縮レベルの設定」を参照してください。

データ圧縮のしきい値を選択する場合は、次の基準を参考にしてください。

圧縮方法は転送されるデータの種類によって異なるため、環境に応じた最適な設定を行うことをお勧めします。

関連項目

 


ネットワーク要求のロード バランシング

ロード バランシングがオンになっている場合、つまりアプリケーション コンフィグレーション ファイルの RESOURCES セクションで LDBALY に設定されている場合、Oracle Tuxedo システムは、リクエストをネットワーク全体に均衡化します。ロード情報はグローバルには更新されないため、各サイトにはリモート サイトにおけるロードの独自のビューを持ちます。

コンフィグレーション ファイルの MACHINES セクションの NETLOAD パラメータ、または TMNETLOAD 環境変数を使用すると、より多くのリクエストをローカル キューに送るよう強制できます。このパラメータの値はリモート キューのロードに追加されるため、リモート キューに実際より多くの作業があるように見えます。そのため、ロード バランシングがオンになっていても、ローカル要求はリモート キューよりもローカル キューに頻繁に送られます。

たとえば、サーバ A とサーバ B がロード ファクタ 50 のサービスを提供するとします。サーバ A は呼び出し側クライアント (ローカル) と同じマシン上で稼働しており、サーバ B は別のマシン (リモート) 上で稼働しています。NETLOAD を 100 に設定すると、1 つのリクエストがサーバ B に送られる度に約 3 つのリクエストがサーバ A に送られます。

ロード バランシングに影響するもう 1 つのメカニズムは、アイドル状態のローカル サーバが優先されるという点です。クライアントと同じマシン上にあるサーバが、希望するサービスを提供し、アイドル状態にある場合、このサーバにリクエストが送られます。ローカル サーバは直ちに使用可能になるため、この機能はどんなロード バランシングの設定より優先されます。

関連項目

 


データ依存型ルーティングの使用

データ依存型ルーティングは、クライアントが次のものにサービスを要求した場合に有用です。

水平分離型データベースは、情報を格納しておくリポジトリです。情報はカテゴリ別に保存されます。これは、各本棚に異なるカテゴリ (伝記、フィクションなど) の本が収納されている図書館に似ています。

ルール ベース サーバとは、サービス要求をサービス ルーチンに転送する前に、サービス要求が特定のアプリケーション固有の条件を満たしているかどうかを判定するサーバです。ルール ベース サーバは、ほとんど同じ複数の要求に対して、ビジネス上の理由で多少異なる処理を行う場合に使用すると有用です。

注意 : 分散型 Oracle Tuxedo CORBA アプリケーションのファクトリ ベース ルーティングについては、『Oracle Tuxedo CORBA アプリケーションのスケーリング、分散、およびチューニング』を参照してください。

水平分離型データベースを使ったデータ依存型ルーティングの例

銀行取引アプリケーションで 2 つのクライアントが口座 3 と口座 17 という 2 つの口座の現在の残高を照会する要求を発行したとします。アプリケーションでデータ依存型ルーティングが使用されている場合、Oracle Tuxedo システムでは次の処理が行われます。

  1. 2 つのサービス要求で指定された口座番号 (3 と 17) を取得します。
  2. どのサーバがどのデータ範囲の処理を行うかを示す、Oracle Tuxedo の掲示板のルーティング テーブルを調べます (この例では、サーバ 1 は口座 1 ~ 10 の範囲のすべてのリクエストを処理し、サーバ 2 は口座 11 ~ 20 の範囲のすべてのリクエストを処理します)。
  3. それぞれの要求を該当するサーバに送信します。つまり、口座 3 への要求をサーバ 1 に転送し、口座 17 への要求をサーバ 2 に転送します。

次の図は、このプロセスを示しています。

図 4-1 水平分離型データベースでのデータ依存型ルーティング

水平分離型データベースでのデータ依存型ルーティング

ルール ベース サーバでのデータ依存型ルーティングの例

次の規則を持つ銀行取引アプリケーションがあるとします。

2 つのクライアントが 1 万円と 8 万円の引き出しを要求したとします。引き出しの規則でデータ依存型ルーティングが有効になっている場合、Oracle Tuxedo では次のような処理が行われます。

  1. 2 つのサービス要求で指定された引き出し額 (100 ドルと 800 ドル) を取得します。
  2. どのサーバがいくらのリクエストの処理を行うかを示す、Oracle Tuxedo の掲示板のルーティング テーブルを調べます。この例では、500 ドルまでのすべての引き出し要求をサーバ 1 が処理し、500 ドルを超えるすべての引き出し要求をサーバ 2 が処理しています。
  3. それぞれの要求を該当するサーバに送信します。つまり、100 ドルの要求をサーバ 1 に転送し、800 ドルの要求をサーバ 2 に転送します。

次の図は、このプロセスを示しています。

図 4-2 ルール ベース サーバでのデータ依存型ルーティング

ルール ベース サーバでのデータ依存型ルーティング

関連項目

 


ネットワーク コンフィグレーションの変更

アプリケーションの稼働中にコンフィグレーション パラメータを変更するには、tmconfig(1) を実行します。このコマンドは、Oracle Tuxedo システム管理情報ベース (MIB) へのシェル レベルのインタフェースです。

tmconfig を使用すると、システムを停止せずに TUXCONFIG ファイルの表示や変更を行うことができます。たとえば、アプリケーションの起動中にマシンやサーバなどの新しいコンポーネントを追加することができます。

関連項目


  ページの先頭       前  次