Tuxedo の相互運用性ソリューション

     前  次    目次     
ここから内容

Oracle Service Bus での Tuxedo サービスの使用

以下の節では、Oracle Service Bus から Tuxedo サービスを使用する方法を説明します。

 


新しいビジネス サービスのコンフィグレーション

Tuxedo サービスを Oracle Service Bus から利用するには、Oracle Service Bus Console で新しいビジネス サービスをコンフィグレーションする必要があります。ビジネス サービスの詳細については、『Oracle Service Bus Console の使い方』の「ビジネス サービス : 作成と管理」を参照してください。

Oracle Service Bus Console へのログイン以下の節の指示に従って、コンフィグレーション手順を順番に実行します。

手順の詳細については、『Oracle Service Bus Console の使い方』を参照してください。

新しいプロジェクトの追加

以下の手順に従います。

  1. Change Center で、[作成] をクリックして新しいセッションを作成するか、または [編集] をクリックして既存のセッションに入ります。
  2. リソースの編集はセッション内で行う必要があります。

  3. [プロジェクト エクスプローラ] を選択します。
  4. 新しいプロジェクトの名前を入力し、[プロジェクトの追加] をクリックします。
  5. ページ上部に、プロジェクトの追加に成功したことを示すメッセージが表示されます。

ビジネス サービスの追加

以下の手順に従います。

  1. 新しく作成したプロジェクトの名前をクリックします。
  2. [リソースの作成] ドロップダウン リストから、[ビジネス サービス] を選択します。
  3. [ビジネス サービスの作成 – 全般的なコンフィグレーション] ページで、次の値を入力します。
  4. [サービス名] - サービスの名前です。

    [サービスの種類] - [任意の XML サービス] を選択します (デフォルト)。

    注意 : Tuxedo 転送は、サービスのタイプとして、任意の XML サービスメッセージング サービスのみをサポートします。
  5. [次へ] をクリックします。
  6. [ビジネス サービスの作成 – 転送コンフィグレーション] ページで、次の値を入力します。
  7. [プロトコル] - [tuxedo] を選択します。

    [ロード バランシング アルゴリズム] - デフォルトのままにするか、別のアルゴリズムを選択します。

    [エンドポイント URI] – 次の形式のいずれかを使用して 1 つまたは複数のエンドポイント URI を指定し、[追加] をクリックします。

    • Tuxedo サービスへの発信呼び出しの URI 形式は tuxedo:resourcename[/remotename] となります。
      • ここで resourcename は、WTC インポート サービス名に対応します。resourcename は必須です。
      • remotename は、リモート Tuxedo ドメインよりエクスポートされたサービス名に対応します。remotename は省略可能です。
      • 複数の URI が指定されている場合、エンドポイントにはユニークなリソース名を付ける必要があります。リモート名が指定されていない場合は、その値がリソース名の値になります。リモート名が入力されていない、またはリモート名およびリソース名が同じである場合は、1 つの URI のみを使用できます。これにより、既に定義された WTC インポート サービスで WTC ロードバランシングおよびフェイルオーバを使用できるようになります。

        注意 : 同一の URI を 2 つコンフィグレーションすると、そのサービス名がすでに存在していることを通知するエラーが表示されます。

        Tuxedo 転送では、URI からリソース名とリモート名を使用して、WTC インポート サービスを動的に作成します。

    • /Q タイプの Tuxedo リソースの発信呼び出しの URI 形式は、tuxedo-queue:sendQspace/sendQname[/[rcvQspace:]/rcvQname][/failureQname] となります。各項目の意味は次のとおりです。
      • tuxedo-queue は、/Q 呼び出しが行われることを示します。
      • sendQspace は、Tuxedoドメインのキュー スペースのユニークな名前に対応します。sendQspace は必須です。
      • sendQname は、要求が格納されるキュー スペースのキュー名に対応します。sendQname は必須です。
      • 次の 2 つの値は省略可能です。どちらも指定しないと、ランタイムは直ちに戻り、応答は想定されません。また、[応答が必要?] オプション ([Tuxedo 転送コンフィグレーション] ページにある) が使用できなくなります。

        どちらかの値を指定した場合に、[応答が必要?] オプションを選択していないと、指定した値は無視されます。

      • rcvQspace は、返信が受信される Tuxedo ドメインのキュー スペースのユニークな名前に対応します。rcvQspace は省略可能です。指定されていない場合は、sendQspace の値が使用されます。
      • rcvQname は、返信が受信される Tuxedo ドメインのキューの名前に対応します。rcvQname は省略可能です。
      • 最後の値も省略可能です。rcvQspacercvQname のどちらも指定されていないのに、failureQname が指定されている場合、URI 形式は tuxedo-queue:sendQspace/sendQname//failureQname になります。

      • failureQname は、Tuxedo ドメイン内でエラー メッセージが格納されるキューの名前に対応します。failureQname は省略可能です。
      • 注意 : 応答が想定されている場合は、要求を送信したのと同じスレッドで応答が発生します。
  8. [次へ] をクリックします。
  9. [Tuxedo 転送コンフィグレーション] ページで、次の値を入力します。
  10. [フィールド テーブル クラス] - 省略可能です。受信される FML または FML32 バッファを表すクラス名を入力します。これらは、フィールド名を要素名にマップするために、FML または FML32 から XML への変換ルーチンで使用されます。完全修飾クラス名をスペースで区切ってリストします。

    [View クラス] - 省略可能です。送受信される VIEW または VIEW32 バッファを表すクラス名を入力します。これらは、フィールド名を要素名にマップするために、VIEW/VIEW32 から XML への変換ルーチンで使用されます。完全修飾クラス名をスペースで区切ってリストします。

    [クラス Jar] - このエンドポイント オペレーションに必要な FML/FML32 または VIEW/VIEW32 クラスを持つ JAR ファイルを含んだ JAR リソースを選択します。

    [リモート アクセス ポイント] - ドロップダウン リストから、WTC インポート サービスに関連付けられたリモート アクセス ポイントを選択します。このドロップダウン リストには、WTC でコンフィグレーションされたリモート アクセス ポイントが含まれます。関連付けられたリモート アクセス ポイントがない場合、ビジネス サービスは作成できません。

    リモート アクセス ポイントがない場合、またはリモート アクセス ポイントを新しく作成する場合は、[新規] を選択します。横にあるフィールドに、対応する [アクセス ポイント名] と [ネットワーク アドレス] を入力します。アクセス ポイントは、エンドポイントの検証時に各 WTC サーバの WTC コンフィグレーションに追加されます。WTC サーバがない場合は、作成されます。

    [新規] オプションを選択した後では、既存のアクセス ポイント名を入力できます。この場合、既存の情報が新しいパラメータで更新されます。変更できるのは、ホスト名とポート番号に限られます。

    複数の URI を指定した場合、URI ごとに 1 つのリモート アクセス ポイントが存在し、その URI が参照用に表示されます。複数の URI が存在している場合、各 URI に異なるリモート アクセス ポイントが必要です。既存の WTC リソースに対応する URI がすでに指定されている場合、対応するリモート アクセス ポイントが表示されますが、編集することはできません。

    [ローカル アクセス ポイント] – このフィールドは、[リモート アクセス ポイント] フィールドで [新規] を選択した場合にのみ表示されます。ドロップダウン リストから、新しく作成したリモート アクセス ポイントに関連付けるローカル アクセス ポイントを選択します。ローカル アクセス ポイントがない場合、またはローカル アクセス ポイントを新しく作成する場合は、[新規] を選択します。横にあるフィールドに、対応する [ローカル アクセス ポイント名] と [ローカル ネットワーク アドレス] を入力します。

    注意 : アクセス ポイントは複数のエンドポイントから使用されることがあるため、エンドポイントが削除されても、転送によってアクセス ポイントが削除されることはありません。アクセス ポイントを削除するには、WebLogic Server Administration Console を使用します。

    [要求バッファ タイプ] - ドロップダウン リストから、リモート Tuxedo サービスが受信するバッファのタイプを選択します。

    [要求バッファ サブタイプ] - [要求バッファ タイプ] の値が VIEW または VIEW32 である場合、このフィールドが有効になります。要求バッファに関連付けるバッファのサブタイプを入力します。

    [応答が必要] – このチェック ボックスを選択すると、双方向の呼び出しが指定されます。選択しない場合、基礎になる tpcallTPNOREPLY フラグで呼び出され、null 応答が非同期的に返されます。

    [トランザクションを中断] – トランザクションがある場合、このチェック ボックスを選択してトランザクションを停止します。この機能は、リモート サービスがトランザクションに対応していない場合に役立ちます。

    /Q タイプの Tuxedo リソースを呼び出す場合は、応答の想定の有無に関わらず、[トランザクションを中断] オプションを使用します。一方向の呼び出しから正常に戻ってきたことは、メッセージがキューに正しく置かれたことを意味します。

    注意 : [トランザクションを中断] オプションが選択されていない場合、/Q モード エンドポイントへの Tuxedo 転送は、非同期のトランザクションを伴う転送だと見なされます。これによりフレームワークがデッドロック状態に陥る事態が防止されます。
    注意 : /Q モードでは、エンドポイントが返信を想定している場合、複数の管理対象サーバにある複数のスレッドが同じ送り先に返信を行うことがあります。このため、実行時に返信が想定される場合は、ユニークな相関 ID が要求と共に送信されます。
    注意·:· デキュー操作では、この相関 ID を持つメッセージを待機します。相関 ID はJMS 転送の同様の状況で使用される場合と同等の方法で構成されます。

    [ディスパッチ ポリシー] - ドロップダウン リストから使用可能な場合は、WebLogic Server ワーク マネージャを選択します。デフォルトのワーク マネージャは、他のワーク マネージャがない場合に使用されます。ワーク マネージャは、一方向の呼び出しの場合に非同期に null 応答をポストします。

    [要求エンコーディング] - Tuxedo 転送の要求における文字セットのエンコーディング指定します。

    [応答エンコーディング] - Tuxedo 転送の応答における文字セットのエンコーディング指定します。

    [トランスフォーメーション スタイル] - FML または FML32 バッファが XML に変換される際の要素の順序またはグループ化を示します。以下のいずれかを選択します。

    [なし] - (デフォルト) フィールドの順序は無視されます。

    [順序付け] - すべてのフィールドを正しい順序で表示します。

    [グループ別および順序付け] - フィールドが論理的にレコード構造になっている場合、発生順に並べ替えられ、レコードごとにグループ化されます。

    [タイムアウト] – 転送のランタイムが返信を待機する最大時間を秒単位で 0 以上の整数値で指定します。指定されていない場合、またはゼロ (デフォルト) に指定されている場合は、ローカルの Tuxedo アクセス ポイントがブロック呼び出しを許可する最大秒数である BLOCKTIME の時点で返信はタイムアウトします。

    実行時、タイムアウト値を超えている返信は無視され、TPETIME 例外でエラー メッセージが返されます。

    タイムアウト値は、要求/応答サービスでのみ指定します。/Q または一方向エンドポイントでは、[タイムアウト] フィールドは使用できません。発信呼び出しの一部がトランザクションである場合、タイムアウト値は無視されます。

    注意 : WTC BLOCKTIME 値がタイムアウト値よりも短い場合、WTC BLOCKTIME 値が優先されます。たとえばエンドポイントのタイムアウト値が 30 秒で、WTC BLOCKTIME が 20 秒の場合、呼び出しは 20 秒でタイムアウトします。
  11. [終了] をクリックします。
  12. [概要] ページで、[保存] をクリックします。

 


ロード バランシングおよびフェイルオーバ

ビジネス サービスを指定し、エンドポイント URI を定義する場合に、リソース名とは異なるリモート名を入力すると、Oracle Service Bus のロード バランシングおよびフェイルオーバ機能が使用できます。この場合、複数のサービス名を定義し、それらを、複数のリモート ドメインにレプリケートされたサービスに関連付けることができます。リソース名はユニークである必要がありますが、リモート名はユニークである必要はありません。

 


エラー処理

Tuxedo 転送のビジネス サービスでアプリケーションと通信のエラーを処理するには、次のようにコンフィグレーションします。

表 3-1 は Tuxedo 例外と例外によって示される Oracle Service Bus エラーについて説明しています。

表 3-1 Tuxedo 例外 
例外
説明
TPESVCFAIL
サービスが失敗しました。アプリケーション エラーです。
TPENOENT
要求したエントリが存在しません。通信エラーです。
TPEPERM
パーミッション エラーが発生しました。通信エラーです。

Tuxedo 例外の詳細については、Javadoc を参照してください。

 


コンフィグレーションのテスト

Oracle Service Bus で Tuxedo が動作するためのコンフィグレーションが終了したら、Oracle Service Bus Console にあるテスト コンソールを使用してコンフィグレーションをテストできます。

次のタスク リストは、Oracle Service Bus による Tuxedo の発信での使用をテストするプロセスをまとめたものです。

  1. Tuxedo サーバを構築して起動します。
  2. Oracle Service Bus プロキシ サービスを呼び出すように Tuxedo サービスを設定します。
  3. Oracle Service Bus Console で、Change Center の下にある [アクティブ化] をクリックして、テスト コンソールを有効にします。
  4. [プロジェクト エクスプローラ] で、テストするビジネス サービスに関連付けられた [テスト コンソールの起動] アイコンをクリックします。
  5. テスト コンソールにペイロードを入力します。詳細については、『Oracle Service Bus Console の使い方』の「ビジネス サービスのテスト」を参照してください。
  6. [実行] をクリックします。
  7. 応答ページに、サービス要求の結果が表示されます。


  ページの先頭       前  次