BEA ホーム | 製品 | dev2dev | support | askBEA
 ドキュメントのダウンロード   サイト マップ   Glossary 
検索

WebLogic Tuxedo Connector 管理ガイド

 Previous Next Contents PDF で侮ヲ  

WebLogic Tuxedo Connector での FML の使用

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

 


FML の概要

注意: FML の使い方の詳細については、『FML を使用した BEA Tuxedo アプリケーションのプログラミング』の「FML プログラミング入門」を参照してください。

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

FML には、2 つのタイプがあります。

 


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 - -
.
.
.

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

    - mkfldclass

    - mkfldclass32

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

    java weblogic.wtc.jatmi.mkfldclass bankflds

    作成されたファイルは bankapp.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 */
.
.
.

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

    javac bankflds.java

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

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

  3. WTCServer MBean を更新します。

例 :

<WTCResources
FldTbl16Classes="my.bankflds,your.bankflds,more.bankflds"
Name="BankappResources"/>

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

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

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

FML テーブルをコンパイルするときには、次の手順で DynRdHdr プロパティを使用します。

  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. userTable.class ファイルをアプリケーション CLASSPATH に追加します。

  3. userTable.class ファイルの完全に修飾された場所を反映するため、WTCResources MBean を更新します。

  4. WTCServer を対象とします。 WTCServer サービスが開始されるときに、userTable.class がロードされます。

userTable.class ファイルの作成後は、userTable.class を手動で更新しなくても FML テーブルを変更してその変更をデプロイすることができます。 WTCServer の起動時に、Weblogic Tuxedo Connector は、WTCResources MBean で指定された場所に従って FML テーブルをロードします。 Path_to_Your_FML_Table 属性を変更した場合、前の手順に従って userTable.java および userTable.class ファイルを更新する必要があります。

 


tBridge XML/FML32 変換

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

WTCtBridgeRedirect MBean の 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 Next