分散アプリケーション用のネットワークを構築する作業は、主に構成フェーズまたはセットアップ・フェーズで行われます。ネットワークを定義し、アプリケーションを起動すると、ネットワークは自動的に構築されます。
この章では、ネットワークを介してデータを移動する方法と、ネットワークに関する操作を制御する構成ファイルのパラメータを設定する方法について説明します。
Oracle Tuxedoシステムでは、アプリケーションのプロセス間で送信されるデータを圧縮できます。データ圧縮は便利な機能であり、特に、大規模な構成を運用する場合に重要です。データ圧縮は、同じマシン上でメッセージの送受信を行う場合(ローカル・データ圧縮)、または異なるマシン間でメッセージの送受信を行う場合(リモート・データ圧縮)に使用できます。データ圧縮には次の利点があります。
データ圧縮を使用するには、構成ファイルのMACHINES
セクションのCMPLIMIT
パラメータを次のように設定する必要があります。
CMPLIMIT=string_value1
[,string_value2
]
このパラメータの文字列値には、リモート・プロセス(string_value1
)およびローカル・プロセス(string_value2
)で処理されるメッセージのサイズのしきい値を指定します。最初の文字列のみが必須です。どちらの文字列も、デフォルトはMAXLONG
パラメータの値です。
TMCMPPRFM
パラメータを設定して、圧縮とCPUのパフォーマンスとのバランスを調整することもできます。圧縮レベルを高くすると、圧縮速度は下がりますがネットワーク帯域幅を効率的に利用できます。圧縮レベルを低くすると、圧縮速度は上がり、CPU使用率を節約できます。
TMCMPPRFM
変数の設定方法の詳細は、『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』の「tuxenv(5)」を参照してください。
メッセージに対して圧縮のしきい値を指定することができます。つまり、指定したしきい値を超えるメッセージは圧縮されます。圧縮のしきい値を指定するには、CMPLIMIT
パラメータを設定します。設定の手順については、「圧縮レベルの設定」を参照してください。
データ圧縮のしきい値を選択する場合は、次の基準を参考にしてください。
ローカル・データ圧縮の場合、アプリケーション内の各マシンに対して、異なるしきい値を割り当てることができます。このような場合は、常に各マシンに対して下限値を選択する必要があります。
注意: | IPCキューのブロッキングにより、タイムアウトとメッセージの破棄が頻繁に発生する高トラフィックのアプリケーションでは、ローカル圧縮が常に行われるように設定し、IPCのキューイング・サブシステム上のアプリケーションからの要求を少なくすることができます。 |
圧縮方法は転送されるデータの種類によって異なるため、環境に応じた最適な設定を行うことをお薦めします。
ロード・バランシングがオンになっている場合、つまりアプリケーション構成ファイルのRESOURCES
セクションでLDBAL
がY
に設定されている場合、Oracle Tuxedoシステムは、リクエストをネットワーク全体に均衡化します。ロード情報はグローバルには更新されないため、各サイトにはリモート・サイトにおけるロードの独自のビューを持ちます。
構成ファイルのMACHINES
セクションのNETLOAD
パラメータ、またはTMNETLOAD
環境変数を使用すると、より多くのリクエストをローカル・キューに送るよう強制できます。このパラメータの値はリモート・キューのロードに追加されるため、リモート・キューに実際より多くの作業があるように見えます。そのため、ロード・バランシングがオンになっていても、ローカル・リクエストはリモート・キューよりもローカル・キューに頻繁に送られます。
たとえば、サーバーAとサーバーBがロード・ファクタ50のサービスを提供するとします。サーバーAは呼出し側クライアント(ローカル)と同じマシン上で稼働しており、サーバーBは別のマシン(リモート)上で稼働しています。NETLOAD
を100に設定すると、1つのリクエストがサーバーBに送られる度に約3つのリクエストがサーバーAに送られます。
ロード・バランシングに影響するもう1つのメカニズムは、アイドル状態のローカル・サーバーのプリファレンスです。クライアントと同じマシン上にあるサーバーが、希望するサービスを提供し、アイドル状態にある場合、このサーバーにリクエストが送られます。ローカル・サーバーは直ちに使用可能になるため、この決定はどのようなロード・バランシングの設定もオーバーライドします。
データ依存型ルーティングは、クライアントが次のものにサービスをリクエストした場合に有用です。
水平分離型データベースは、情報を格納しておくリポジトリです。情報はカテゴリ別に保存されます。 ここれは、各本棚に異なるカテゴリ(伝記、フィクションなど)の本が収納されている図書館に似ています。
ルール・ベース・サーバーとは、サービス・リクエストをサービス・ルーチンに転送する前に、サービス・リクエストが特定のアプリケーション固有の条件を満たしているかどうかを判定するサーバーです。ルール・ベース・サーバーは、ほとんど同じ複数のリクエストに対して、ビジネス上の理由で多少異なる処理を行う場合に使用すると有用です。
注意: | 分散型Oracle Tuxedo CORBAアプリケーションのファクトリ・ベース・ルーティングについては、『CORBAアプリケーションのスケーリング、分散およびチューニング』を参照してください。 |
銀行取引アプリケーションで2つのクライアントが口座3と口座17という2つの口座の現在の残高を照会するリクエストを発行したとします。アプリケーションでデータ依存型ルーティングが使用されている場合、Oracle Tuxedoシステムでは次の処理が行われます。
図4-1は、このプロセスを示しています。
2つのクライアントが100ドルと800ドルの引出しをリクエストしたとします。引出しの規則でデータ依存型ルーティングが有効になっている場合、Oracle Tuxedoでは次のような処理が行われます。
図4-2は、このプロセスを示しています。
アプリケーションの稼働中に構成パラメータを変更するには、tmconfig(1)
を実行します。このコマンドは、Oracle Tuxedoシステム管理情報ベース(MIB)へのシェル・レベルのインタフェースです。
tmconfig
を使用すると、システムを停止せずにTUXCONFIG
ファイルの表示や変更を行うことができます。たとえば、アプリケーションの起動中にマシンやサーバーなどの新しいコンポーネントを追加することができます。