WebLogic Tuxedo Connector プログラマーズ ガイド
![]() |
![]() |
![]() |
![]() |
以下の節では、フィールド操作言語 (FML) および WebLogic Tuxedo Connector が FML を使用する方法について説明します。
注意 :FML の使い方の詳細については、「FML プログラミング入門」を参照してください。
FML は、フィールド バッファと呼ばれる記憶構造を定義および操作する Java 言語機能のセットです。各フィールド バッファには、フィールドに属性および値の組み合わせが含まれています。各フィールドは次のように構成されます。
注意 :WebLogic Tuxedo Connector は、FML 機能のサブセットを実装しています。FML32 の詳細については、「FML32 の考慮事項」を参照してください。
FML アプリケーション プログラム インタフェース (API) は、WebLogic クラスの Javadoc に含まれている weblogic.wtc.jatmi
パッケージにドキュメント化されています。
フィールド テーブルは、Tuxedo フィールド テーブルに似た方法で生成されます。フィールド テーブルは、2 つのシステム間で共通のフィールド名定義、フィールド タイプ、および識別番号を提供するテキスト ファイルです。FML を使用して Tuxedo システムと相互運用するには、次の手順を実行する必要があります。
#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 - -
.
.
.
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 */
.
.
.
javac bankflds.java
コンパイルすると、bankflds.class
ファイルとなります。ロード時、WebLogic Tuxedo Connector はクラス ファイルを使用して FML32 フィールドからフィールド エントリを追加、検索、および削除します。
WebLogic Tuxedo Connector には、FML テーブルを別の方法でコンパイルするためのプロパティが提供されています。以下の場合には、DynRdHdr
ユーティリティを使用する必要があります。
.java
メソッドが、単一のクラスまたはインタフェースの全体的な複雑度に関する内部 Java 仮想マシンの制限を越える。 .java
メソッドをコンパイルして作成されたクラスをロードできない。FML テーブルをコンパイルする場合には、次の手順で DynRdHdr
プロパティを使用します。
userTable.class
ファイルの作成後は、userTable.class
を手動で更新しなくても FML テーブルを変更してその変更をデプロイすることができます。WTC サービスの開始時に、Weblogic Tuxedo Connector は、WTC サービス コンフィグレーションの [リソース] タブで指定された場所を使用して更新済みの FML テーブルをロードします。Path_to_Your_FML_Table 属性を変更した場合、前の手順に従って userTable.java
および userTable.class
ファイルを更新する必要があります。
注意 :指定するデータ型は、FLAT または NO にする必要があります。他のデータ型を指定すると、リダイレクションは失敗します。
WTCtBridgeRedirect MBean の TranslateFML
要素は、FML32 変換がメッセージ ペイロードで実行されることを示すために使用します。FML32 変換には、FLAT および NO の 2 つのタイプがあります。
メッセージ ペイロードは、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
<FML32>
<NAME>JOE</NAME>
<ADDRESS>CENTRAL CITY</ADDRESS>
<PRODUCTNAME>BOLT</PRODUCTNAME>
<PRODUCTNAME>SCREW</PRODUCTNAME>
<PRICE>1.95</PRICE>
<PRICE>2.50</PRICE>
</FML32>
変換は使用されません。tBridge は、リダイレクションの方向に応じて、JMS TextMessage を Tuxedo TypedBuffer (TypedString) に (またはその逆に) マップします。JMS BytesMessage は、Tuxedo TypedBuffer (TypedCarray) に (またはその逆に) マップされます。
FML32 を使用する場合は、以下の情報について考慮する必要があります。
<STRING></STRING>
は、結果的に FML32 バッファではスキップされます。
![]() ![]() |
![]() |
![]() |