Tuxedo コントロールの作成

このタスクでは、Tuxedo コントロール ファイルを作成し、コントロール ファイルにメソッドを追加します。

  1. Tuxedo サービスを使用する Web サービス内 (ソース ビューまたはデザイン ビュー) で右クリックし、[挿入|コントロール] を選択します。
  2. [コントロールの選択] メニューから、[新しいシステム コントロール|Tuxedo コントロール] を選択します。[新しいコントロール] ダイアログが表示されます。
    コントロールの場所と名前を選択し、[次へ] をクリックします。 注意 : 作成した Tuxedo コントロールは、プロジェクト内のフォルダに格納されている必要があります。

  3. image

    ウィザードの次のページで、コントロール プロパティを入力できます。

    alt

  4. 以下の Tuxedo サービス属性を指定します。
  5. Tuxedo コントロールのフィールド
    説明
    [サービス名]

    WTC インポート サービス名を入力します。この名前は、「WebLogic Tuxedo Connector (WTC) サービスの作成」でマップされたサービス名と一致する必要があります。

    サービス名が正確にわからない場合は、[参照] をクリックすると、インポートされている WTC サービス名のリストが表示されます。[WTC インポート済みサービス] ダイアログのリストにサービスが表示されている場合は、サービスを選択し、[選択] をクリックします。必要なサービスがリストに表示されていない場合、そのサービスは WebLogic Server にインポートされていません。

    [WTC インポート済みサービス] ダイアログからサービスをインポートするには、[インポート] をクリックします。[ワークステーション アドレス] ダイアログが表示されます。

    このフィールドは、アノテーション属性 @tuxedo(serviceName) に対応しています。

    WTC サービスをインポートする方法については、「新しい Tuxedo サービスのインポート」を参照してください。

    [サービスの種類]

    メニューからサービスのタイプを選択します。このフィールドでは、Tuxedo サービスで Tuxedo コントロールがサポートする対話のタイプを指定します。

    指定可能な値を次に示します。

    • service : 同期要求/応答をサポートします。
    • oneway : 応答なしの要求をサポートします。
    • queue : tpenqueue および tpdequeue をサポートします。
    • conversational : 非同期要求/応答をサポートします。
    • 注意 : queue サービス タイプを指定する方法の詳細については、「queue タイプのサービスを使用する Tuxedo コントロールの作成」を参照してください。

    デフォルトは service です。

    このフィールドは、アノテーション属性 @tuxedo(serviceType) に対応しています。

    [バッファ タイプ]

    メニューからバッファのタイプを選択します。このフィールドでは、Tuxedo コントロールが Tuxedo サービスに送信するために構築するバッファのタイプを指定します。

    指定可能な値を次に示します。

    • Carray : データが NULL 文字を含むことのできる未指定の文字配列 (バイト配列) である場合に使用します。Tuxedo の CARRAY と等価です。
    • FML : データに単純型の名前付きフィールド (各フィールドの最大長は 65 KB) が含まれている場合に使用します。
    • FML32 : データにネストされた FML32 フィールド (各フィールドの最大長は 4 GB) を含む名前付きフィールドが含まれている場合に使用します。
    • String : データに単純文字列だけが含まれている場合に使用します。
    • View : Tuxedo アプリケーションでは、C 構造体または COBOL 構造体の定義に使用し、WebLogic アプリケーションでは、等価である Java TypedView バッファの定義に使用します。データ構造体のフィールドと型が定義された view 記述ファイルは、VIEW 型バッファに記述されたデータ構造体を使用するクライアント プロセスとサーバ プロセスで使用できる必要があります。さまざまな種類のマシン間でバッファが渡される場合、エンコードとデコードが自動的に実行されます。
    • View32 : View と同じですが、長さフィールドとカウント フィールドに 32 ビットが使用されます。そのため、View よりも長いフィールドを使用でき、より多くのフィールドを使用できます。
    • XML : データが XML ドキュメントの場合に使用します。 メソッドへのデータ入力は、Java String または XML Bean の形式である必要があります。Tuxedo の XML (Tuxedo リリース 7.1 以降) と等価です。
    • 注意 : データ依存型ルーティングを使用する入力 XML では、Workshop テスト ブラウザによって生成された XML バッファ内のすべてのコメントを削除してください。バッファ内のコメントの場所によっては、Tuxedo でバッファの解析に関する問題が発生することがあります。

    • XCOMMON : View バッファ タイプのシノニムです。XCOMMON バッファは、TypedXCommon クラスを拡張する Java クラスによって表されます。このバッファは、セマンティクスにおいて View バッファと同じです。
    • XCTYPE : View バッファ タイプのシノニムです。XCTYPE バッファは、TypedXCType クラスを拡張する Java クラスによって表されます。このバッファは、セマンティクスにおいて View バッファと同じです。
    • XOCTET : 単なるバイト配列であり、Tuxedo の CARRAY バッファ タイプのシノニムです。
    • none : Tuxedo サービスへの要求で入力バッファを使用しない場合に使用します。メソッド シグネチャに入力パラメータが含まれている場合は、エラーが生成されます。
    • unknown

    デフォルトは none です。

    このフィールドは、アノテーション属性 @tuxedo(bufferType) に対応しています。

       

    [フィールド テーブル]

    FML バッファまたは FML32 バッファを使用するときに、Tuxedo サービスのフィールド テーブルの名前を入力します。FML バッファまたは FML32 バッファは、呼び出されたサービスから送信されたり、応答バッファとして機能したりします。これらのバッファを使用するときには、フィールド テーブルを指定する必要があります。フィールド テーブルの名前は、mkfldclass ユーティリティまたは mkfldclass32 ユーティリティで生成されたクラスと一致する必要があります。

    バッファ タイプが FML および FML32 の場合、WTC はバッファに格納できるフィールドの名前とタイプを必要とします。これらは、mkfldclass ユーティリティおよび mkfldclass32 ユーティリティで作成されたフィールド テーブル クラスに記述されています。

    mkfldclass ユーティリティおよび mkfldclass32 ユーティリティの詳細については、「WebLogic Server Javadoc」を参照してください。

    このフィールドは、アノテーション属性 @tuxedo(bufferType) に対応しています。

    [戻りビュー クラス]

    Tuxedo サービスから受信できる View バッファ タイプに対応する view クラスの名前を入力します。このフィールドが必要となるのは、Tuxedo サービスが View バッファまたは View32 バッファを返す場合だけです。これらのクラスは、送信ビュー クラス 属性には影響されません。この属性は、Tuxedo サービスが入力として必要とする View バッファを表す view クラスまたは view32 クラスを指定する際に使用します。

    注意 : 1 つの Tuxedo サービスがさまざまな VIEW バッファで応答できるように、この属性の値をクラスのリストにできます。

    viewj ユーティリティおよび viewj32 ユーティリティについては、「WebLogic Server Javadoc」を参照してください。

    このフィールドは、アノテーション属性 @tuxedo(bufferType) に対応しています。

    [送信ビュー クラス]

    [バッファ タイプ] フィールドで View または View32 を選択した場合、[送信ビュー クラス] フィールドがアクティブになります。この属性は、サービスが入力バッファとして必要としている View/View32 バッファを表すクラスの名前を示します。この view クラスは、TypedView バッファを作成する際に使用されます。

    このフィールドは、アノテーション属性 @tuxedo(bufferType) に対応しています。

  6. [終了] をクリックします。デザイン ビューに新しい Tuxedo コントロールが表示されます。
  7. デザイン ビューで、新しく作成された Tuxedo コントロールのイメージをダブルクリックします。
  8. ソース ビューに新しい Tuxedo コントロール ファイルが表示されます。
  9. [ソース ビュー] タブをクリックします。 呼び出される Tuxedo サービスに必要なバッファの内容に合わせて、このメソッドのシグネチャを編集します。
  10. [挿入] ウィザードを使用して新しいコントロールを作成すると、ウィザードで指定したサービスの種類サービス名に対応する 1 つのメソッドが定義されます。呼び出される Tuxedo サービスに必要な名前とバッファの内容に合わせて、このメソッドのシグネチャと、場合によってはメソッド名を編集する必要があります。また、このコントロールが呼び出すその他のサービスでも、このインタフェースにメソッドが定義されている必要があります。

    要求/応答バッファを作成するために、データとフィールドをマップする方法については、「Java データ型と FML バッファおよび VIEW バッファ間でのマッピング」を参照してください。

  11. メニューから [ファイル|保存] を選択します。
  12. 〔Ctrl〕+〔W〕を押して、Tuxedo コントロール ファイルを閉じます。

新しい Tuxedo サービスのインポート

Web サービスまたは Java アプリケーション内では、[新しいコントロール] ダイアログから、使用できる Tuxedo サービスを参照できます。[サービス名] フィールドまたは [受信キュー スペース] フィールドで [参照] をクリックすると、使用できる WTC インポート サービスのリストを表示できます。必要なサービスがリストに表示されていない場合、そのサービスは WebLogic Server にインポートされていません。

注意 : WebLogic Server にサービスをインポートするには、WTC サービスをコンフィグレーションしておく必要があります。WTC サービスをコンフィグレーションするには、[WTC インポート済みサービス] ダイアログ ボックスで、[コンフィグレーション] をクリックします。(WTC 接続がすでに存在する場合には、[コンフィグレーション] ボタンは灰色で表示されます)。「WTC サービスのコンフィグレーション」を参照してください。

[WTC インポート済みサービス] ダイアログからサービスをインポートするには、[インポート] をクリックします。[ワークステーション アドレス] ダイアログが表示されます。

image

  1. machine_name:port number の形式で、リモート Tuxedo ドメインのワークステーション リスナのネットワーク アドレスを入力します。たとえば、//mach1:5100 のように入力します。これは Tuxedo アプリケーションのアドレスであるため、サービス名を取得できます。[次へ] をクリックします。
  2. 注意 : Tuxedo ドメインのセキュリティが有効になっている場合、[ワークステーション アドレス] ダイアログで [次へ] をクリックすると、[Security Information for Tuxedo login] ダイアログが表示されます。Tuxedo アプリケーションの情報を入力し、[次へ] をクリックします。

Tuxedo ドメインへの接続が行われ、リモート Tuxedo ドメインによってエクスポートされたサービスのリストが表示されます。

  1. インポートするサービスを選択します。WebLogic Server で複数のローカル WTC ドメインをコンフィグレーションしている場合は、コンフィグレーションされているローカル ドメインのリストが表示されます。このリストから、このサービスを提供するローカル ドメインを選択できます。[インポート] をクリックして、関連するインポート サービスを作成します。
  2. [戻る] をクリックすると、[WTC インポート済みサービス] ダイアログが表示されます。

WTC サービスをインポートする方法の詳細については、「WebLogic Tuxedo Connector (WTC) 接続の設定」を参照してください。