This topic includes the following sections:
Before you can begin to work with FML fielded buffers, or to use the VIEWS functions that move fields between structures and fielded buffers, you must set up your environment to accommodate these methods by setting the necessary environment variables. This section provides instructions for doing so.
The FML software delivered with the Oracle Tuxedo system resides in a subtree of the local file system. Several FML modules depend on the subtree structure described here. We assume that you have set the
TUXDIR environment variable to the full path name of the directory in which the Oracle Tuxedo ATMI Server is installed.
The Oracle Tuxedo installation directory contains the following subdirectories:
include—contains header files needed by writers of C application code.
cobinclude—contains COPY files needed by writers of COBOL application code. (This directory is named
cobinclufor operating systems with an 8.3 file name limitation.)
bin—contains the executable commands of FML.
lib—contains subroutine packages of FML. When compiling a program that uses FML functions, you should include
suffixon the C compiler command line to resolve external references.
suffixcontains the FML32 and VIEW32 functions. (The suffix is
.afor POSIX operating systems without shared objects, .
releasefor use of shared objects,
.libfor Windows; it is part of the Oracle Tuxedo system DLL for platforms that use dynamic link libraries.)
C applications in which FML is used must include the following header files in the order shown:
fml32.h contains definitions for structures, symbolic constants, and macros used by the FML software.
Several environment variables are used by FML and VIEWS.
FIELDTBLS—this variable should contain a comma-separated list of field table files for the application. Files given as full path names are used as is; files listed as relative path names are searched for through the list of directories specified by the
FIELDTBLS32is used for
FIELDTBLSis not set, then the single file name
fld.tblis used. (
FLDTBLDIRstill applies; see below.)
FLDTBLDIR—this variable specifies a colon-separated list of directories to be used to find field table files with relative filenames. Its usage is similar to the
PATHenvironment variable. If
FLDTBLDIRis not set or is NULL, then its value is taken to be the current directory.
FLDTBLDIR32is used for
For details, see Defining and Using Fields.
FIELDTBLS) plus two other environment variables:
VIEWFILES—this variable should contain a comma-separated list of object viewfiles for the application. Files given as full path names are used as is; files listed as relative path names are searched for through the list of directories specified by the
VIEWDIRvariable (see the following list item).
VIEWFILES32is used for
VIEWDIR—this variable specifies a colon-separated list of directories to be used to find view object files with relative filenames. It is set and used in the same way that the
PATHenvironment variable is set and used. If
VIEWDIRis not set or is NULL, then its value is assumed to be the current directory.
VIEWDIR32is used for
TPMBENC—this variable specifies the code-set encoding name that the application server or client running Oracle Tuxedo 8.1 or later includes for an
FLD_MBSTRINGfield in an FML32 typed buffer. When an application server or client process allocates and sends an FML32 buffer containing a
FLD_MBSTRINGfield, the code-set encoding name defined in
TPMBENCis automatically used by
encargument is not defined and its
flagargument is not set to
When the application server or client process receives an FML32 buffer that includes an
FLD_MBSTRING field, and assuming another environment variable named
TPMBACONV is set, the code-set encoding name defined in
TPMBENC is automatically compared to the code-set encoding name included for the
FLD_MBSTRING field in the received buffer; if the names are not the same, the
FLD_MBSTRING field data is automatically converted to the encoding defined in
TPMBENC before being delivered to the server or client process.
TPMBACONV—this variable specifies whether the application server or client running Oracle Tuxedo 8.1 or later automatically converts the
FLD_MBSTRINGfield data in a received FML32 buffer to the encoding defined in
TPMBENC. By default, the automatic conversion is turned off, meaning that the
FLD_MBSTRINGfield data is delivered to the destination server or client process as is—no encoding conversion. Setting
TPMBACONVto any non-NULL value, say
Y(yes), turns on the automatic conversion.
For details, see Converting FLD_MBSTRING Fields.
Starting with Tuxedo 9.0, VIEW32 supports MBSTRING typed buffers which correspond to the
FLD_MBSTRING field type in FML32.
Fmbpack32(3fml)prepares an MBSTRING field in a VIEW32 buffer for encoding and
TPMBACONV environment variables are also used in VIEW32.