ORACLE JAPAN Server Release 6.1

 

  |  

  WebLogic Server ホーム   |     WTC 管理ガイド   |   前へ   |   次へ   |   目次   |   索引   |   PDF 版

WebLogic Tuxedo Connector での FML の使用

 

この章では、フィールド操作言語(FML)および WebLogic Tuxedo Connector が FML を使用する方法について説明します。

 


FML の概要

注意: FML の使い方の詳細については、『Programming a Application Using FML』を参照してください。

FML は、フィールド バッファと呼ばれる記憶構造を定義および操作する Java 言語機能のセットです。各フィールド バッファには、フィールドに属性および値の組み合わせが含まれています。各フィールドは次のように構成されます。

2 種類の FML があります。

 


WebLogic Tuxedo Connector FML API

注意: WebLogic Tuxedo Connector は、FML 機能のサブセットを実装しています。たとえば、views はサポートされていません。

FML アプリケーション プログラム インタフェース(API)は、WebLogic Server クラスの Javadoc に含まれている weblogic.wtc.jatmi パッケージにドキュメント化されています。

 


FML フィールド テーブルの管理

フィールド テーブルは、Tuxedo フィールド テーブルに似た方法で生成されます。フィールド テーブルは、2 つのシステム間で共通のフィールド名定義、フィールド タイプ、および識別番号を提供するテキスト ファイルです。FML を使用して Tuxedo システムと相互運用するには、次の手順を実行する必要があります。

  1. Tuxedo システムから WebLogic Tuxedo Connector 環境に、フィールド テーブルをコピーします。

    例 : Tuxedo 配布キットには、bankapp という銀行アプリケーション サンプルが含まれています。このアプリケーションには、次の構造を持つ bankflds というファイルがあります。

    #Copyright (c) 1990 Unix System Laboratories, Inc.
    #All rights reserved
    #ident "@(#) apps/bankapp/bankflds $Revision: 1.3 $"
    # Fields for database bankdb

    # name number type flags comments
    ACCOUNT_ID 110 long - -
    ACCT_TYPE 112 char - -
    ADDRESS 109 string - -
    .

    .

    .

  2. フィールド テーブル定義を Java ソース ファイルに変換します。weblogic.wtc.jatmi パッケージの mkfldclass ユーティリティを使用します。このクラスは、FML32 フィールド テーブルを読み取るユーティリティ機能で、FldTbl インタフェースを実装する Java ファイルを生成します。このユーティリティには、次のような 2 つのインスタンスがあります。

    1. mkfldclass

    2. mkfldclass32

      コマンドの正しいインスタンスを使用して、bankflds フィールド テーブルを FML32 Java ソースに変換します。次は、mkfldclass を使用した例です。

      java weblogic.wtc.jatmi.mkfldclass bankflds

      作成されるファイルの名前は bankflds.java で、次のような構造になります。

      import java.io.*;
      import java.lang.*;
      import java.util.*;
      import weblogic.wtc.jatmi.*;

      public final class bankflds
      implements weblogic.wtc.jatmi.FldTbl
      {
      /** number: 110 type: long */
      public final static int ACCOUNT_ID = 33554542;
      /** number: 112 type: char */
      public final static int ACCT_TYPE = 67108976;
      /** number: 109 type: string */
      public final static int ADDRESS = 167772269;
      /** number: 117 type: float */

      .

      .

      .

  3. 次のコマンドを使用して、作成した bankflds.java ファイルをコンパイルします。

    javac bankflds.java

    コンパイルすると、 bankflds.class ファイルとなります。ロード時、WebLogic Tuxedo Connector はクラス ファイルを使用して FML32 フィールドからフィールド エントリを追加、検索、および削除します。

  4. フィールド テーブルのクラス ファイルをアプリケーション CLASSPATH に追加します。

  5. WebLogic Tuxedo Connector XML コンフィグレーション ファイルを更新します。

  6. フィールド テーブルのクラス定義をロードするために、WebLogic Server を再起動します。

mkfldclass32 クラスに対する DynRdHdr プロパティの使い方

WebLogic Tuxedo Connector には、FML テーブルをコンパイルするための代替手段を提供するプロパティが用意されています。以下の場合に、DynRdHdr ユーティリティの使用が必要になる場合があります。

DynRdHdr プロパティを使って FML テーブルをコンパイルするときは、以下の手順で行います。

  1. フィールド テーブルの定義を、Java のソース ファイルに変換します。

    java -DDynRdHdr=Path_to_Your_FML_Table weblogic.wtc.jatmi.mkfldclass32 userTable

このコマンドの引数は、次の表に示すとおりです。

引数

説明

-DDynRdHdr

FML テーブルのコンパイルに使用する WebLogic Tuxedo Connector のプロパティ。

Path_to_Your_FML_Table

FML テーブルの完全修飾パスとファイル名。

weblogic.wtc.jatmi.mkfldclass32

FML32 フィールド テーブルを読み取って FldTbl インタフェースを実装する Java ファイルを生成するユーティリティ関数のクラス。

userTable

mkfldclass32 クラスによって作成される .java メソッドの名前。

  1. 次のコマンドを使って userTable ファイルをコンパイルします。

    javac userTable.java

  2. アプリケーション CLASSPATH に userTable.class ファイルを追加します。

  3. WebLogic Tuxedo Connector の XML コンフィグレーション ファイルの T_DM_RESOURCES セクションを変更し、userTable.class ファイルの完全修飾された場所を指定します。

  4. サーバを起動します。サーバは、起動すると、WebLogic Tuxedo Connector の XML コンフィグレーション ファイルの T_DM_RESOURCES セクションで指定されている場所を使って、FML テーブルをロードします。

いったん userTable.class ファイルを作成した後は、FML テーブルを変更してデプロイする際に、userTable.class を手作業で更新する必要はありません。サーバは、起動時に、WebLogic Tuxedo Connector の XML コンフィグレーション ファイルの T_DM_RESOURCES で指定されている場所を使って、更新された FML テーブルをロードします。ただし、Path_to_Your_FML_Table 属性を変更する場合は、前記の手順を使って、userTable.java ファイルと userTable.class ファイルを更新する必要があります。

 


tBridge XML/FML32 変換

注意: 指定するデータ型は、FLAT または NO にする必要があります。他のデータ型を指定すると、リダイレクションは失敗します。

<translateFML> 要素は、FML32 変換がメッセージペイロードで実行されることを示すために使用します。FML32 変換には、FLAT および NO の 2 つのタイプがあります。

FLAT 変換の使い方

メッセージ ペイロードは、WebLogic Tuxedo Connector の内部 FML32/XML トランスレータを使用して変換されます。フィールドは、メッセージ構造(階層構造)を意識せず、グループ化を反復せずに、フィールドごとの値に変換されます。

FML32 バッファを XML に変換するため、tBridge は FML32 バッファにある各フィールドの各インスタンスを抽出して文字列に変換し、それをフィールド名で構成されるタグ内に配置します。これらすべてのフィールドは、サービス名で構成されるタグ内に配置されます。たとえば、次のフィールドで構成される FML32 バッファがあるとします。

NAME JOE
ADDRESS CENTRAL CITY
PRODUCTNAME BOLT
PRICE 1.95
PRODUCTNAME SCREW
PRICE 2.50

変換された XML バッファは次のようになります。

<FML32>
<NAME>JOE</NAME>
<ADDRESS>CENTRAL CITY</ADDRESS>
<PRODUCTNAME>BOLT</PRODUCTNAME>
<PRODUCTNAME>SCREW</PRODUCTNAME>
<PRICE>1.95</PRICE>
<PRICE>2.50</PRICE>
</FML32>

NO 変換の使い方

変換は使用されません。tBridge は、リダイレクションの方向に応じて、JMS TextMessage を Tuxedo TypedBuffer(TypedString)に(またはその逆に)マップします。JMS BytesMessage は、Tuxedo TypedBuffer(TypedCarray)に(またはその逆に)マップされます。

FML32 の考慮事項

FML32 を使用する場合は、以下の情報について考慮する必要があります。

 

back to top previous page next page