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

     前  次    新規ウィンドウで目次を開く  新規ウィンドウで索引を開く  PDFとして表示 - 新規ウィンドウ  Adobe Readerを入手 - 新規ウィンドウ
コンテンツはここから始まります

Oracle Tuxedo CORBAリモート・クライアント・アプリケーションの管理

この章では、標準のインターネットORB間プロトコル(IIOP : Internet Inter-ORB Protocol)を使用してOracle Tuxedo CORBAのリモート・クライアント・アプリケーションからCORBAオブジェクトへの接続を構成する方法について説明します。この章は、Oracle Tuxedo CORBAサーバーにのみ適用されます。

注: Oracle Tuxedo CORBA JavaクライアントとOracle Tuxedo CORBA JavaクライアントORBはTuxedo 8.1で非推奨になり、Tuxedo 9.xではサポートされなくなりました。 Oracle Tuxedo CORBA JavaクライアントとOracle Tuxedo CORBA JavaクライアントORBのすべてのテキスト・リファレンスや関連するサンプル・コードは、以下の場合にのみ使用してください。
注: サード・パーティのCORBA Java ORBのテクニカル・サポートは、各ベンダーによって提供されます。Oracle Tuxedoでは、サード・パーティのCORBA Java ORBに関する技術的なサポートまたはドキュメントは提供していません。

このトピックには次の項が含まれます:

 


CORBAオブジェクト関連の用語

以下は、この章で使用する用語のリストです。

DLL

動的リンク・ライブラリ。ロード・モジュールにグループ化された関数の集合。Windowsアプリケーションでは、実行時に実行形式プログラムに動的にリンクされます。

IIOP

インターネットORB間プロトコル(IIOP)。TCP/IP準拠の通信プロトコルで、共通のバックボーン・プロトコルとしてCORBA定義のメッセージ送受信をサポートします。

ISH

IIOPサーバー・ハンドラ。アプリケーション・サイト上で実行されるクライアント・プロセス。リモート・クライアントの代理として機能します。

ISL

IIOPサーバー・リスナー。アプリケーション・サイト上で実行されるサーバー・プロセス。リモート・クライアントの接続リクエストをリスニングします。

サーバー

Oracle Tuxedoドメインのマシンで管理されるサーバー。Oracle Tuxedo CORBAサーバーは、Oracle Tuxedo CORBAのbuildobjserverコマンドを使用して作成されます。CORBAサーバーは、セキュリティ、トランザクション、オブジェクトの状態管理など、Oracle Tuxedoの機能を実装します。サーバーは、Oracle Tuxedoドメイン内外の任意のサーバーを呼び出すことができます。

ネイティブ・クライアント

Oracle Tuxedoドメイン内のクライアント。CORBA ORBを使用して、Oracle Tuxedoドメイン内外のオブジェクトを呼び出します。ネイティブ・クライアントのホストには、Oracle Tuxedoの管理コンポーネントとインフラストラクチャ・コンポーネントがあります。たとえば、tmadmin、FactoryFinder、ISL/ISHなどです。ネイティブ・クライアントは、環境オブジェクトを使用してCORBAオブジェクトにアクセスします。ネイティブC++クライアントはbuildobjclientコマンドを使用して作成し、ネイティブJavaクライアントはサード・パーティORB提供のツールを使用して作成します。

リモート・クライアント

Oracle Tuxedoドメイン外のクライアント。リモート・クライアントは、CORBA ORBを使用して、Oracle Tuxedoドメイン内外のオブジェクトを呼び出すことができます。リモート・クライアントのホストには、tmadmin、FactoryFinder、ISL/ISHなど、Oracle Tuxedoの管理コンポーネントやインフラストラクチャ・コンポーネントはなく、リモート・クライアントがオブジェクトを呼び出すためのサポート・ソフトウェア(CORBA ORB)があります。リモート・クライアントは、環境オブジェクトを使用してCORBAオブジェクトにアクセスします。リモートC++クライアントはbuildobjclientコマンドを使用して作成し、リモートJavaクライアントはサード・パーティORB提供のツールを使用して作成します。

ネイティブ共同クライアント/サーバー

(1)ビジネス上の処理のスタータとなるコードを実行し、(2)オブジェクトを呼び出すためのメソッド・コードを実行する、という2つの目的を持つプロセス。共同クライアント/サーバーは、Oracle Tuxedoドメイン内にあります。ネイティブ共同C++クライアント/サーバーは、buildobjclientコマンドを使用して作成します。Javaネイティブ共同クライアント/サーバーはサポートされていません。
注: ネイティブ共同クライアント/サーバーのサーバー・ロールは、通常のサーバーと比べて大幅に弱くなります。tmadmin、FactoryFinder、ISL/ISHなどのOracle Tuxedo CORBAの管理コンポーネントやインフラストラクチャ・コンポーネントはなく(Oracle Tuxedoのスケーラビリティと信頼性に関する属性もなし)、Oracle TuxedoのTP Frameworkも使用しないため、クライアントとORB間でより直接的な対話が必要になります。

リモート共同クライアント/サーバー

(1)ビジネス上の処理のスタータとなるコードを実行し、(2)オブジェクトを呼び出すためのメソッド・コードを実行する、という2つの目的を持つプロセス。共同クライアント/サーバーは、Oracle Tuxedoドメイン外にあります。共同クライアント/サーバーはOracle Tuxedo TP Frameworkを使用しないので、クライアントとORB間でより直接的な対話が必要です。リモート共同C++クライアント/サーバーはbuildobjclientコマンドを使用して作成し、リモートJavaクライアント/サーバーはサード・パーティORB提供のツールを使用して作成します。
注: 共同クライアント/サーバーは、サーバー・ロールの一部としてクライアントの役割を果たすサーバーとは異なります。サーバーが呼出し処理を完了すると、休止状態に戻ります。共同クライアント/サーバーは常にアクティブ・モードで動作し、サーバー・ロールとは関連のないコードを実行します。このためサーバー・ロールによって一時的にアクティブなクライアント・ロールが中断されますが、クライアント・ロールは常に再開されます。
注: リモート共同クライアント/サーバーのサーバー・ロールは、通常のサーバーと比べて大幅に弱くなります。クライアントにもサーバーにも、tmadmin、FactoryFinder、ISL/ISHなど、Oracle Tuxedoの管理コンポーネントやインフラストラクチャ・コンポーネントはありません(Oracle Tuxedoのスケーラビリティや信頼性に関する属性もなし)。

Oracle Tuxedo CORBAオブジェクト

TP Frameworkを使用して実装され、セキュリティ、トランザクション、およびオブジェクトの状態管理を実装するCORBAオブジェクト。CORBAオブジェクトは、Oracle Tuxedo CORBAサーバーで実装されます。つまり、これらのオブジェクトはOracle Tuxedoドメインの一部であり、Oracle Tuxedoインフラストラクチャを使用します。

コールバック・オブジェクト

ターゲット・オブジェクトでのクライアントの呼出しで、パラメータとして提供されるCORBAオブジェクト。ターゲット・オブジェクトは、そのターゲット・オブジェクトの実行時、または後で(ターゲット・オブジェクトの呼出しが完了した後でも可)コールバック・オブジェクトを呼び出すことができます。コールバック・オブジェクトは、Oracle Tuxedoドメイン内外のどちらにも配置できます。

 


CORBAリモート・クライアントの概要

この項での「リモート・クライアント」は、Oracle Tuxedo CORBAサーバー・ソフトウェアがフル・インストールされていないシステムにデプロイされたCORBAクライアント・アプリケーションを意味します。つまり、管理サーバーやアプリケーション・サーバーが実行されず、掲示板もないことを意味します。クライアントとアプリケーション間の通信は、すべてネットワーク経由で行われます。

クライアントのタイプは以下のとおりです。

クライアント・プロセスは、UNIXまたはMicrosoft Windows上で実行できます。また、クライアントはCORBA ORBインタフェースにアクセスすることができます。ユーザーは、呼出しが背後のネットワークでどのように処理されているかを意識する必要はありません。クライアント・プロセスはシステムに登録され、ネイティブ・クライアントと同じステータスになります。

クライアントには以下の特徴があります。

注: クライアント・プロセスは、ISHを通してネイティブ・ドメインと通信します。

CORBAリモート・クライアントが接続されたアプリケーションの例

図15-1は、リモート・クライアントが接続されたアプリケーションの例です。リモート・クライアントからCORBAサーバー・アプリケーションへのアクセス・リクエストは、ネットワーク経由でISHに送信されます。このプロセスがアプリケーション・サーバーにリクエストを送信し、その応答をリモート・クライアントに返します。

図15-1 リモート・クライアントが接続された銀行業務アプリケーション

リモート・クライアントが接続された銀行業務アプリケーション

リモート・クライアントからアプリケーションへの接続方法

クライアントは、既知のネットワーク・アドレスを使用してIIOPリスナー/ハンドラでISLプロセスに接続します。この接続は、クライアントがBootstrapオブジェクトのコンストラクタを呼び出すと開始されます。ISLプロセスは、オペレーティング・システム固有の機能を使用して、選択されたISHプロセスに直接接続を渡します。クライアント・アプリケーション側から見ると、接続は1つだけです。クライアント・アプリケーションは、現在ISHプロセスに接続されていることを認識せず、また、認識する必要もありません。

 


CORBAリモート・クライアントの環境変数を設定する

CORBA C++クライアントでは、以下に示す環境変数を使用してシステムに情報を渡すことができます。

 


CORBAリモート・クライアントの最大数を設定する

アプリケーションにリモート・クライアントを参加させるには、UBBCONFIGファイルのMACHINESセクションでMAXWSCLIENTSパラメータを指定する必要があります。

MAXWSCLIENTSは、リモート・クライアント専用として予約するアクセサ・スロットの数を、起動時にOracle Tuxedoシステムに知らせます。ネイティブ・クライアントの場合、各アクセサ・スロットに必要なセマフォは1つです。一方、ISHプロセス(リモート・クライアントのかわりにネイティブ・プラットフォーム上で実行するプロセス)は、リモート・クライアントのアクセスを単一のアクセサ・スロットに多重化するので、必要なセマフォは1つだけです。この点も、リモート機能の別の利点の1つです。多くのクライアントをネイティブ・プラットフォームからリモート・システムに移動することによって、アプリケーションで使用するIPCリソースを減らすことができます。

MAXWSCLIENTSは、MAXACCESSERSに指定された数のうち、指定された数のアクセサ・スロットを使用します。MAXWSCLIENTSの設定時には、ネイティブ・クライアントとサーバーを収容するために必要な数のスロットを残しておく必要があります。MAXWSCLIENTSMAXACCESSERSより大きい値を指定しないでください。次の表は、MAXWSCLIENTSパラメータの説明です。

パラメータ
説明
MAXWSCLIENTS
マシンに接続するリモート・クライアントの最大数を指定します。
デフォルトは0です。この値を指定しないと、リモート・クライアントから指定されたマシンに接続できません。
構文はMAXWSCLIENTS=numberです。

 


CORBAリモート・クライアントのリスナーを構成する

リモート・クライアントは、1つのISLプロセスと、1つ以上のISHプロセスのサービスを介してアプリケーションにアクセスします。ISLは、Oracle Tuxedoシステム側で提供されるサーバーとして、1つのエントリで指定されます。ISLは複数のリモート・クライアントを扱うことができます。これらのリモート・クライアントは、唯一の通信ポイントであるISLを経由して特定のネットワーク・アドレス(ISLコマンド行で指定)のアプリケーションに接続します。リスナーは、1つまたは複数のリモート・ハンドラ・プロセスをスケジューリングします。ISHプロセスは、アプリケーションの管理ドメインで、リモート・システム上のリモート・クライアントの代理として機能します。ISHは多重化スキームによって、複数のリモート・クライアントを同時にサポートします。

リモート・クライアントをアプリケーションに参加させるには、UBBCONFIGファイルのSERVERSセクションでISLプロセスを示す必要があります。この場合、サーバーのリストと同じ構文を使用します。

CLOPTパラメータの形式

以下のISLコマンド行オプション(CLOPT)を使用して、リモート・クライアントのISLプロセスに情報を渡します。CLOPTパラメータの形式は、次のとおりです。

ISL SRVGRP=”identifier”
SRVID="number"
CLOPT="[ -A ] [ servopts options ] -- -n netaddr
[ -C {detect|warn|none} ]
[ -d device ]
[ -K {client|handler|both|none} ]
[ -m minh ]
[ -M maxh ]
[ -T client-timeout]
[ -x mpx-factor ]
[ -H external-netaddr"
For a detailed description of the CLOPT command line options, see the ISL command in the Oracle Tuxedo Command Reference.

 


CORBAリモート・クライアントをサポートするように構成ファイルを変更する

リスト15-1は、リモート・クライアントをサポートするUBBCONFIGファイルの例です。以下の特徴があります。

 


リモート共同クライアント/サーバーのアウトバウンドIIOPを構成する

アウトバウンドIIOPのサポートにより、ネイティブ・クライアントと、ネイティブ・クライアントとして機能するサーバーは、Oracle Tuxedoドメイン外のリモート・オブジェクト参照を呼び出すことができます。つまり、コールバックに登録されているリモート・クライアントを呼び出して、リモート・サーバー内のオブジェクトにアクセスすることができます。

アウトバウンドIIOPサポート・コンポーネントと直接通信できるのは管理者だけです。管理者は、適切な起動パラメータを使用してISLを起動し、接続が確立されていないクライアントのオブジェクトに対して、アウトバウンドIIOPを実行できるようにします。また、管理者は、起動するISLの数や各種起動パラメータを調整し、システムの負荷状況に応じた最適な構成を行う必要もあります。

デフォルトのパラメータを使用してISLを起動することも可能です。ただし、Oracle Tuxedo ISLのデフォルトの起動パラメータでは、IIOPのアウトバウンドを有効にできません。

注: アウトバウンドIIOPは、トランザクションおよびセキュリティ機能ではサポートされていません。

機能説明

アウトバウンドIIOPサポートは、クライアントのコールバックをサポートするために必要です。Oracle WebLogic Enterprise バージョン4.0および4.1では、ISL/ISHがインバウンド・ハーフ・ゲートウェイでした。アウトバウンドIIOPサポートによって、アウトバウンド・ハーフ・ゲートウェイがISL/ISHに追加されます。(図15-2を参照してください。)

ネイティブ・サーバーおよびリモート共同クライアント/サーバー・アプリケーションでサポートされるGIOPのバージョンによって、以下に示す3種類のアウトバウンドIIOP接続を使用できます。

双方向およびデュアル・ペア接続のアウトバウンドIIOPでは、ISHに接続された共同クライアント/サーバーに存在するオブジェクト参照へのアウトバウンドIIOP接続が可能です。非対称のアウトバウンドIIOPでは、ISHに接続された共同クライアント/サーバーに存在しないオブジェクト参照へのアウトバウンドIIOP接続が可能です。また、現在ISHに接続されているクライアント上のオブジェクト参照だけでなく、任意のオブジェクト参照をOracle Tuxedo CORBAクライアントによって呼び出すことができます。

以下の項では、それぞれのアウトバウンドIIOPについて詳しく説明します。

図15-2 サポートされる共同クライアント/サーバーIIOP接続

サポートされる共同クライアント/サーバーIIOP接続

双方向のアウトバウンドIIOP

双方向のアウトバウンドIIOPでは、以下の操作が実行されます(図15-3を参照)。

  1. クライアントはオブジェクト参照を作成し、Oracle Tuxedo CORBAサーバーを呼び出します。クライアントORBは、サービス・コンテキストを使用して、その接続が双方向であることを認識します。このサービス・コンテキストは、メッセージと共にOracle Tuxedo CORBAサーバーに送信されます。
  2. オブジェクト参照のアンマーシャリングで、Oracle Tuxedo CORBAサーバーはサービス・コンテキストのホスト/ポートをオブジェクト参照のホスト/ポートと比較します。これらが一致すると、ORBによってISHへのルーティングに必要なISHクライアント情報が追加されます。このクライアント情報は、オブジェクト参照がOracle Tuxedo CORBAサーバーに渡される場合、常にオブジェクト参照と共に送信されます。
  3. 適切な時点で、Oracle Tuxedo CORBAサーバーまたはネイティブ・クライアントがオブジェクト参照を呼び出します。クライアント情報が指定されている場合、ルーティング・コードによって適切なISHが呼び出されます。
  4. ISHは、同じクライアント接続を使用してリクエストをクライアントに送信します。
  5. クライアントはメソッドを実行し、クライアント接続を使用してISHに応答を返します。
  6. ISHは、応答を受信してOracle Tuxedo CORBAサーバーに転送します。
  7. 図15-3 双方向接続


    双方向接続

非対称のアウトバウンドIIOP

非対称のアウトバウンドIIOPでは、以下の操作が実行されます(図15-4を参照)。

  1. サーバーは、ソースからオブジェクト参照を取得します。ネーミング・サービスやstring_to_objectを取得したり、クライアントを介して取得することもできますが、クライアント自体に存在するものは対象外です。ISHに接続されたクライアントにはオブジェクト参照が存在しないため、双方向接続を使用して送信時呼出しを行うことはできません。Oracle Tuxedo CORBAサーバーがオブジェクト参照を呼び出します。
  2. 最初の呼出しで、ルーティング・コードによってISLのサービスが呼び出され、ホスト/ポートに渡されます。
  3. ISLはアウトバウンド呼出しを処理するISHを選択し、ISH情報をOracle Tuxedo CORBAサーバーに返します。
  4. Oracle Tuxedo CORBAサーバーはISHを呼び出します。
  5. ISHは、クライアントに対してリクエストを送信するときに使用する送信接続を決定します。接続が確立されていない場合、ISHはホスト/ポートへの接続を作成します。
  6. クライアントがメソッドを実行し、ISHに応答を返します。
  7. ISHは、応答を受信してOracle Tuxedo CORBAサーバーに転送します。
  8. 図15-4 非対称のアウトバウンドIIOP


    非対称のアウトバウンドIIOP

デュアル・ペア接続によるアウトバウンドIIOP

デュアル・ペア接続によるアウトバウンドIIOPでは、以下の操作が実行されます(図15-5を参照)。

  1. クライアントは、オブジェクト参照を作成し、Bootstrap関数(register_callback_port)を呼び出して、オブジェクト参照を渡します。
  2. ISHがIORからホスト/ポートを取得し、クライアント・コンテキストに保存します。
  3. クライアントはOracle Tuxedo CORBAサーバーを呼び出してオブジェクト参照を渡します。register_callback_port呼出しによって、ISHがホスト/ポートを含むサービス・コンテキストを作成します。このサービス・コンテキストは、メッセージと共にOracle Tuxedo CORBAサーバーに送信されます。
  4. オブジェクト参照のアンマーシャリングで、Oracle Tuxedo CORBAサーバーはサービス・コンテキストのホスト/ポートをオブジェクト参照のホスト/ポートと比較します。これらが一致すると、ORBによってISHクライアント情報がオブジェクト参照に追加されます。このクライアント情報は、オブジェクト参照がOracle Tuxedo CORBAサーバーに渡される場合、常にオブジェクト参照と共に送信されます。
  5. 適切な時点で、Oracle Tuxedo CORBAサーバーまたはネイティブ・クライアントがオブジェクト参照を呼び出します。ルーティング・コードによって適切なISHが呼び出され、クライアント情報が渡されます。
  6. ISHは、クライアントに対する2番目の接続を作成します。それは、この2番目の接続を使用してクライアントにリクエストを送信します。
  7. クライアントがメソッドを実行し、最初のクライアント接続を使用してISHに応答を返します。
  8. ISHは、応答を受信してOracle Tuxedo CORBAサーバーに転送します。クライアントはISHとの最初の接続と2番目の接続を切断します。
  9. 図15-5 デュアル・ペア接続によるアウトバウンドIIOP


    デュアル・ペア接続によるアウトバウンドIIOP

ルーティング・コードによるISLの検出

ISLの検出手順は以下のとおりです。

  1. 各ISLでサービスが通知されます。
  2. ルーティング・コードによってサービス名が呼び出されます。
  3. 注: ISLの検出には通常のOracle Tuxedoルーティングが使用されます。
  4. 同じマシン上でアイドル状態のISLが使用可能な場合は、そのISLが常に選択されます。アイドルのISLが使用できない場合、NETLOADは通常ローカルISLが選択されていることを確認します。
  5. 注: ローカル・マシン以外のマシンでISLが呼び出される場合もあります。

 


ISLコマンドを使用してアウトバウンドIIOPのサポートを構成する

ネイティブなC++またはJavaクライアント、ネイティブ・クライアントとして動作するサーバーからリモート・オブジェクト参照を呼び出す場合は、アウトバウンドIIOPサポートを使用します。ルーティング・コードでは、オブジェクト参照のソースがOracle Tuxedo CORBA ORB以外、またはリモートのOracle Tuxedo CORBA共同クライアント/サーバーであることが認識されます。

オブジェクト参照の種類

リモート・オブジェクト参照には、次の2つの種類があります。

どちらのオブジェクト参照も、ルーティング・コードで検出され、アウトバウンドIIOPサポートに送信された後、処理されます。

ユーザー・インタフェース

アウトバウンドIIOPサポートのユーザー・インタフェースは、コマンド行インタフェースであり、これを使用してISLプロセスを起動します。Oracle Tuxedoソフトウェアの今回のリリースでは、アウトバウンドIIOP処理を構成するための新しいコマンド行オプションが追加されています。これらのオプションを使用すると、ISHに接続されていないクライアントに存在するオブジェクト参照への非対称のIIOP接続がサポートされます。

以下のISLコマンド構文は、アウトバウンドIIOPをサポートする新しいオプションを示しています。

ISL SRVGRP="identifier"

SRVID="number"

CLOPT="[ -A ] [ servopts options ] -- -n netaddr
[ -C {detect|warn|none} ]
[ -d device ]
[ -K {client|handler|both|none} ]
[ -m minh ]
[ -M maxh ]
[ -T Client-timeout]
[ -x mpx-factor ]
[-H external-netaddr]
#NEW options for outbound IIOP
[-O]
[-o outbound-max-connections]
[-s Server-timeout]
[-u out-mpx-users] "

CLOPTコマンド行オプションの詳細は、『Oracle Tuxedoコマンド・リファレンス』のISLコマンドを参照してください。

 


サービス・バージョンのTuxedoアプリケーションへの適用

概要

ユーザーが、既存の機能を維持するとともに、時間の経過に伴って新しい機能をサービスに追加したいと考えるのはよくあることです。互換性のリスクをなくすためには、2種類のバージョン・サービスに同じサービス名(1つは旧機能用、もう1つは新機能用)を付与することをお薦めします。新クライアントでは新機能を使用できますが、旧クライアントではコードを変更せずに既存の機能をそのまま使用できます。

アプリケーション・サービス・バージョン機能では、各段階でお使いのTuxedoアプリケーションを計画、開発、テスト、拡張およびデプロイできる構成ドリブンの方法が提供されています。ユーザーは、バージョンを使用して現在のTuxedoアプリケーションを現在のTuxedo管理階層上で別々の仮想アプリケーション・ドメイン、別々の仮想マシンおよび別々の仮想サーバー・グループにパーティション化できます。これによって柔軟な方法を利用できるため、定義したバージョンに従って顧客はアプリケーション・ゾーンを設定し(この観点から、バージョンには論理パーティションIDという新しい意味が与えられます)、すべての種類の特別なビジネス・アクセスに対応できるようになります。また一方では、顧客はバージョンを使用してノンストップ・モードにおける一部のアップグレード要件を解決し、エンド・ユーザー向けにサービス・ビジネス・ロジックをシームレスに変更できます。

アプリケーション・サービスのバージョニングの有効化および無効化

UBB構成ファイルやMIBを使用すると、ユーザーはアプリケーション・サービス・バージョン機能を有効化/無効化できます。

UBB構成ファイルによるアプリケーション・サービス・バージョンの有効化/無効化

アプリケーション・サービス・バージョンを有効化するには、APPVERオプションを*RESOURCESセクション内のOPTIONSパラメータに追加します。例:

*RESOURCES
OPTIONS		APPVER, LAN

アプリケーション・サービス・バージョンを無効化するには、APPVERオプションを*RESOURCESセクション内のOPTIONSパラメータから削除します。例:

*RESOURCES
OPTIONS		LAN
注: アプリケーション・バージョンが無効の場合、ユーザーは*RESOURCEおよび*GROUPセクション内のアプリケーション・サービス・バージョン関連構成を構成できません。

MIBによるアプリケーション・サービス・バージョンの有効化/無効化

MIBによりアプリケーション・サービス・バージョンを有効化するには、APPVERオプションをT_DOMAINクラス内のTA_OPTIONSに追加します。例:

SRVCNM  .TMIB
TA_OPERATION		SET
TA_CLASS 		T_DOMAIN
TA_OPTIONS		APPVER,LAN

MIBによりアプリケーション・サービス・バージョンを無効化するには、APPVERオプションを T_DOMAINクラス内のTA_OPTIONSから削除します。例:

SRVCNM .TMIB

TA_OPERATION		SET
TA_CLASS 		T_DOMAIN
TA_OPTIONS		LAN
注: MIBによりアプリケーション・サービス・バージョンを無効化するには、ユーザーはまず、構成済のアプリケーション・サービス・バージョン関連構成を削除する必要があります。詳細については、以下を参照してください。

UBB構成ファイルのアプリケーション・サービス・バージョン構成

構成済のTuxedo管理エンティティにおけるバージョンおよび許容可能バージョン範囲を指定するため、3つの属性(REQUEST_VERSIONVERSION_POLICYおよびVERSION_RANGE)が構成ファイル内で使用されます。これらの3つの属性は、リスト15-2に示すように、UBB構成ファイルの*GROUPおよび*RESOUCEセクションで構成できます。

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

リスト15-2 UBB構成ファイルのアプリケーション・サービス・バージョン構成
*RESOUCE
DOMAINID LOCALDOM
OPTIONS LAN,APPVER
REQUEST_VERSION 1 VERSION_RANGE "1-2"
*GROUP
GRP1 GRPNO=1 REQUEST_VERSION=2 VERSION_POLICY="PROPAGATE"
GRP2 GRPNO=2 VERSION_RANGE="3-4"
GRP3 GRPNO=3 REQUEST_VERSION=3 VERSION_RANGE="1-3"
DMGRP GRPNO=4 LMID=SITE1
GWGRP GRPNO=5 LMID=SITE1
WSGRP GRPNO=6 LMID=SITE1 REQUEST_VERSION=4
JGRP GRPNO=7 LMID=SITE1 REQUEST_VERSION=3
*SERVER
SERVER1 SVRGRP=GRP1
SERVER2 SVRGRP=GRP2
SERVER3 SVRGRP=GRP3
DMADM SRVGRP=DMGRP
GWADM SRVGRP=GWGRP
GWTDOMAIN SRVGRP=GWGRP
WSL SRVGRP=WSGRP
JSL SRVGRP=JGRP

server1は、SVC2およびSVC3を通知します。server1はGRP1に属するため、server1SVC2SVC3REQUEST_VERSIONはGRP1から継承されます。GRP1の構成済REQUEST_VERSION2であるため、server1SVC2SVC3REQUEST_VERSION2です。

SVC2SVC3VERSION_RANGEVERSION_POLICYGRP1から継承されます。GRP1には構成済のVERSION_RANGEがないため、*RESOURCEセクションから継承され、「1-2」となります。

SVC2SVC3VERSION_POLICYGRP1から継承されます。GRP1の構成済VERSION_POLICYPROPAGATEであるため、SVC2SVC3VERSION_POLICYPROPAGATEです。

server2は、SVC1SVC2およびSVC3を通知します。server1で説明したものと同じルールに従い、server2SVC1SVC2SVC3REQUEST_VERSION1SVC1SVC2SVC3VERSION_RANGEは「3-4」、SVC1SVC2SVC3VERSION_POLICYnon-PROPAGATEになります。

server3は、SVC1SVC2を通知します。server1で説明したものと同じルールに従い、server3SVC1SVC2REQUEST_VERSION3SVC1SVC2VERSION_RANGEは「1-3」、SVC1SVC2VERSION_POLICYnon-PROPAGATEになります。

グループ名を指定せずにネイティブ・クライアントがアプリケーションに参加する場合、そのREQUEST_VERSION1です。

GRP3などのグループ名を指定してネイティブ・クライアントがアプリケーションに参加する場合、そのREQUEST_VERSION3です。

/WSクライアントがアプリケーションに参加する場合、そのREQUEST_VERSIONはWSLによって決定され、REQUEST_VERSIONはUBB構成ファイルに従い4です。つまり、/WSクライアントのREQUEST_VERSION4になります。

JOLTクライアントがアプリケーションに参加する場合、そのREQUEST_VERSIONはJSLによって決定され、REQUEST_VERSIONはUBB構成ファイルに従い3です。つまり、/WSクライアントのREQUEST_VERSION4になります。

ドメイン構成ファイルのアプリケーション・サービス・バージョン構成

リスト15-3は、ドメイン構成ファイルのアプリケーション・サービス構成の例を示します。

リスト15-3 ドメイン構成ファイルのアプリケーション・サービス・バージョン構成
*DM_LOCAL
LOCALDOM TYPE=TDOMAIN
DOMAINID="LOCALDOM"
*DM_REMOTE
REMOTEDOM1 TYPE=TDOMAIN
DOMAINID= "DOM1" MTYPE="Linux"
REMOTEDOM2 TYPE=TDOMAIN
DOMAINID= "DOM2" MTYPE="Linux"
REQUEST_VERSION=4
*DM_IMPORT
R_SVC1 RDOM= REMOTEDOM1 VERSION_RANGE="1-3"
R_SVC2 RDOM= REMOTEDOM2 VERSION_RANGE="4-6"
R_SVC3 RDOM= REMOTEDOM2

REMOTEDOM1にはREQUEST_VERSIONが構成されていないため、ドメイン・ゲートウェイによってREMOTEDOM1から送信されるすべてのリクエストのリクエスト・バージョンが伝播されます、つまり、ドメイン・ゲートウェイによって受信リクエスト・バージョンが変更されることはありません。

REMOTEDOM2REQUEST_VERSION4に構成されているため、ドメイン・ゲートウェイによってREMOTEDOM2から送信されるすべてのリクエストのリクエスト・バージョンが4に変更されます。

LOCALDOMR_SVC1サービスをREMOTEDOM1からインポートし、VERSION_RANGEを「1-3」に指定します。つまり、LOCALDOMR_SVC1サービスのVERSION_RANGEは「1-3」になります。

LOCALDOMR_SVC2サービスをREMOTEDOM2からインポートし、VERSION_RANGEを「4-6」に指定します。つまり、LOCALDOMR_SVC2サービスのVERSION_RANGEは「4-6」になります。

VERSION_RANGEを指定せずに、LOCALDOMR_SVC3サービスをインポートします。インポートしたサービスのVERSION_RANGEを決定するのは、依然として*GROUPおよび*RESOURCEVERSION_RANGE構成であるため、*RESOUCEVERSION_RANGEは「1-2」、R_SVC3VERSION_RANGEは「1-2」です。

詳細は、UBB構成ファイルのアプリケーション・サービス・バージョンの構成に関する項を参照してください。

バージョン・ベース・ルーティング

アプリケーション・サービス機能を有効化すると、システムによってサービス名とサービス・バージョン範囲の両方に従ってリクエストがサービスに送信されます。このメカニズムのことを、VBR(バージョン・ベース・ルーティング)と呼んでいます。リクエストしたサービス名に一致するサービス・エントリが検出されると、VBRがその後のルーティング決定に使用されます。

VBRが実行するのは、バージョン範囲の2つの境界値を持つ現在のリクエスト・バージョン番号を使用したシンプルな数値比較のみです。一致する名前を持つすべてのサービスが当該バージョンのリクエストに許容されない場合、VBRは送信元に「エントリが見つかりません」というエラーを返します。

Tuxedoには、DDR(データ依存ルーティング)、TAR(トランザクション・アフィニティ・ルーティング)およびRAR(リクエスト・アフィニティ・ルーティング)などのいくつかのルーティング・メカニズムが既に提供されています。VBR(バージョン・ベース・ルーティング)は、これら既存のルーティング・アルゴリズムと同じ機能も持つ新しいルーティング・メカニズムです。

VBRは他のルーティング・メカニズムと連動して使用でき、複数のルーティング・メカニズムが存在する場合は、Tuxedoによってすべての条件を満たすサービスが選択されます。ただし、ユーザーは他のルーティング・メカニズムを使用する前にその相互運用性について理解しておくことをお薦めします。

上のセクションで説明した構成であると仮定します。

  1. 初期化期間中にserver3SVC2を呼び出す必要がある場合、server3のREQUEST_VERSION3で、サービス候補は次のようになります。
  2. Server1:SVC2 1-2

    Server2:SVC2 3-4

    つまり、server3Server2:SVC2を呼び出します。

  3. ネイティブ・クライアントがSVC3を呼び出す必要がある場合、ネイティブ・クライアントのREQUEST_VERSIONは1であり、サービス候補は次のようになります。
  4. Server1:SVC1 1-2

    Server2:SVC1 3-4

    つまり、ネイティブ・クライアントはServer1:SVC1を呼び出します。

  5. Server1:SVC1SVC3を呼び出す場合、SVC1は受信REQUEST_VERSIONを伝播します。この場合、受信REQUEST_VERSION1であるため、Server1:SVC1の現在のREQUEST_VERSION1となり、サービス候補は次のとおりです。
  6. Server2:SVC3 3-4

    Server3:SVC3 1-3

    つまり、Server1:SVC1Server3:SVC3を呼び出します。

  7. リクエストがREMOTEDOM2から送信される場合、元のREQUEST_VERSION6と仮定すると、受信リクエストのREQUEST_VERSION4に変更されます。
  8. リクエストがREMOTEDOM1から送信される場合、元のREQUEST_VERSION2と仮定すると、受信リクエストのREQUEST_VERSIONは2のままになります。

MIBによるユーザー構成サービス・バージョン情報のリセット

UBB構成ファイルの*GROUPまたは*RESOURCEセクションのREQUEST_VERSIONVERSION_RANGEまたはVERSION_POLICYを構成できます。低レベルの構成は高レベルの構成より優先されます。

どのレベルでもユーザー構成サービス・バージョンの構成がない場合、システムではデフォルト値が使用されます。その結果、ユーザーが構成した構成とデフォルト値がかなり異なることになります。ユーザーがMIBを使用してREQUEST_VERSIONVERSION_RANGE またはVERSION_POLICYを変更する場合、ユーザー構成サービス・バージョンの構成になります。MIBを使用してこの変更内容をデフォルト値にリセットする方法を提供することが必要になります。そうしないと、MIB操作でUBB構成ファイルを元の状態に戻すことができません。

REQUEST_VERSIONVERSION_RANGEおよびVERSION_POLICYをデフォルト値にリセットする場合、必要になるのは値をDEFAULTに設定することのみです。

たとえば、リスト15-4で示すようにMIBによりREQUEST_VERSIONを変更できます。

リスト15-4 MIBによるユーザー構成サービス・バージョン情報
SRVCNM  .TMIB
TA_OPERATION SET
TA_CLASS T_GROUP
TA_SRVGRP APPGRP1
TA_GRPNO 1
TA_CURLMID SITE1
TA_REQUEST_VERSION 4
Then the user reset the REQUEST_VERSION to default value through MIB:
SRVCNM .TMIB
TA_OPERATION SET
TA_CLASS T_GROUP
TA_SRVGRP APPGRP1
TA_GRPNO 1
TA_CURLMID SITE1
TA_REQUEST_VERSION DEFAULT

  先頭に戻る       前  次