BEA Logo BEA WebLogic Tuxedo Connector Release 6.1

  Corporate Info  |  News  |  Solutions  |  Products  |  Partners  |  Services  |  Events  |  Download  |  How To Buy

   WebLogic Tuxedo Connector Administration Guide:   Previous topic   |   Next topic   |   Contents   

 

Using FML with WebLogic Tuxedo Connector

 

The following sections discuss the Field Manipulation Language (FML) and describe how the WebLogic Tuxedo Connector uses FML.

Overview of FML

Note: For more information about using FML, see Programming a BEA Tuxedo Application Using FML.

FML is a set of java language functions for defining and manipulating storage structures called fielded buffers. Each fielded buffer contains attribute-value pairs in fields. For each field:

There are two types of FML:

The WebLogic Tuxedo Connector FML API

The FML application program interface (API) is provided by the WebLogic Tuxedo Connector jatmi.jar file. The details of the FML API implementation are documented in the index.html file included doc directory of your WebLogic Tuxedo Connector distribution.

Note: The WebLogic Tuxedo Connector implements a subset of FML functionality. For example, views are not supported.

FML Field Table Administration

Note: For more information on field tables, see the index.html file included doc directory of your WebLogic Tuxedo Connector distribution for references on the FldTbl and the mkfldclass32 classes.

Field tables are generated in a manner similar to Tuxedo field tables. The field tables are text files that provide the field name definitions, field types, and identification numbers that are common between the two systems. To interoperate with a Tuxedo system using FML, the following steps are required:

  1. Copy the field tables from the Tuxedo system to WebLogic Tuxedo Connector environment.

    For example: Your Tuxedo distribution contains a bank application example called bankapp. It contains a file called bankflds that has the following structure:

    #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. Converted the field table definition into Java source files. Use the mkfldclass utility supplied with the WebLogic Tuxedo Connector jar file. This class is a utility function that reads a FML32 Field Table and produces a Java file which implements the FldTbl interface. There are two instances of this utility:

  3. Compile the resulting bankflds.java file using the following command:

    javac bankflds.java

    The result is a bankflds.class file. When loaded, the WebLogic Tuxedo Connector uses the class file to add, retrieve and delete field entries from an FML32 field.

  4. Add the field table class file to your application CLASSPATH.

  5. Update the WebLogic Tuxedo Connector XML configuration file.

For example:

        <T_DM_RESOURCES>
                <FieldTables>
<FldTblClass Type="fml32">com.bea.mystuff.bankflds</FldTblClass>
</FieldTables>
</T_DM_RESOURCES>

  1. Restart your WebLogic Server to load the field table class definitions.

tBridge XML/FML Translation

The <translateFML> element is used to indicate if FML translation is performed on the message payload. There are two types of FML translation: FLAT and NO.

Note: The data type specified must be FLAT or NO. If any other data type is specified, the redirection fails.

FLAT

The message payload is translated using the WebLogic Tuxedo Connector internal FML/XML translator. Fields are converted field-by-field values without knowledge of the message structure (hierarchy) and repeated grouping.

In order to convert an FML buffer to XML, the tBridge pulls each instance of each field in the FML buffer, converts it to a string, and places it within a tag consisting of the field name. All of these fields are placed within a tag consisting of the service name. For example, an FML buffer consisting of the following fields:

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

The resulting XML buffer would be:

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

NO

No translation is used. The tBridge maps a JMS TextMessage into a Tuxedo TypedBuffer (TypedString) and vice versa depending on the direction of the redirection. JMS BytesMessage are mapped into Tuxedo TypedBuffer (TypedCarray) and vice versa.

FML Considerations

Remember to consider the following information when working with FML: