![]() ![]() ![]() ![]() |
FML フィールド化バッファの操作を開始したり、構造体とフィールド化バッファ間でフィールドを移動する VIEWS 関数を使用するには、まず、必要な環境変数を設定して、これらの方式が環境に組み込まれるように設定します。この節では、その方法について説明します。
Oracle Tuxedo システムに同梱される FML ソフトウェアは、ローカル ファイル システムのサブツリーに格納されています。いくつかの FML モジュールでは、このサブツリー構造が使用されます。TUXDIR
環境変数には、Oracle Tuxedo ATMI サーバがインストールされているディレクトリの絶対パス名を設定しておかなければなりません。
Oracle Tuxedo のインストール先ディレクトリは、以下のサブディレクトリで構成されています。
include
- C アプリケーション コードの作成者に必要なヘッダ ファイルが格納されています。cobinclude
- COBOL アプリケーション コードの作成者に必要な COPY ファイルが格納されています。このディレクトリの名前は、ファイル名が 8.3 に制限されているオペレーティング システムでは cobinclu
になります。bin
- FML の実行可能コマンドが格納されています。lib
- FML のサブルーチン パッケージが格納されています。FML 関数を使用するプログラムをコンパイルする場合は、$TUXDIR/lib/libfml.
suffix
と $TUXDIR/lib/libgp.
suffix
を C コンパイラのコマンドラインで指定して、外部参照を解決する必要があります。libfml32.
suffix
には、FML32 関数および VIEW32 関数が含まれています。接尾辞は、共有オブジェクトを使用しない POSIX オペレーティング システムでは .a
、共有オブジェクトを使用する場合は .so
.release
、Windows では .lib
であり、ダイナミック リンク ライブラリを使用するプラットフォームの Tuxedo システムの DLL の一部です。
FML を使用する C アプリケーションには、以下のヘッダ ファイルをここに示す順序でインクルードします。
#include <stdio.h>
#include “fml.h”
fml.h
または fml32.h
ファイルには、FML ソフトウェアで使用される構造体、シンボリック定数、およびマクロのための定義が格納されています。
FML および VIEWS で使用される環境変数は以下のとおりです。
FIELDTBLS
- この変数には、所定のアプリケーション プログラム用のフィールド テーブル ファイルをカンマで区切ってリストします。絶対パス名で指定したファイルは、そのまま使用されます。相対パス名で指定したファイルは、FLDTBLDIR
変数で指定したディレクトリのリストから検索されます。FML32
では、FIELDTBLS32
が使用されます。FIELDTBLS
を設定しないと、単一ファイル名 fld.tbl
が使用されます(この場合でも、FLDTBLDIR
は適用されます。以下の説明を参照してください)。FLDTBLDIR
- この変数には、相対ファイル名を持つフィールド テーブル ファイルの検索に使用するディレクトリをコロンで区切ってリストします。使用法は PATH
環境変数と同様です。FLDTBLDIR
を設定しない場合、または NULL の場合、カレント ディレクトリの値が使用されます。FML32
では、FLDTBLDIR32
が使用されます。
詳細については、「フィールドの定義と使用」を参照してください。
FLDTBLDIR
および FIELDTBLS
) のほかに、2 つの環境変数が使用されます。VIEWFILES
- この変数には、アプリケーション プログラムで使用するオブジェクト VIEW ファイルをカンマで区切ってリストします。絶対パス名で指定したファイルは、そのまま使用されます。相対パス名で指定したファイルは、VIEWDIR
変数で指定したディレクトリのリストから検索されます (次の項目を参照)。VIEW32
では、VIEWFILES32
が使用されます。VIEWDIR
- この変数には、相対ファイル名を指定した VIEW オブジェクト ファイルを検索するために使用する、コロンで区切ったディレクトリのリストを指定します。この変数の設定方法と使用方法は、PATH
環境変数と同じです。VIEWDIR
を設定しない場合、または NULL の場合、カレント ディレクトリの値が使用されます。VIEW32
では、VIEWDIR32
が使用されます。FLD_MBSTRING
をサポートします。TPMBENC
- この変数には、Oracle Tuxedo 8.1 またはそれ以降が動作しているアプリケーション サーバまたはクライアントで FML32 型付きバッファ内の FLD_MBSTRING
フィールド用に設定されているコード セット エンコーディング名を指定します。アプリケーション サーバまたはクライアントのプロセスが、FLD_MBSTRING
フィールドを含んだ FML32 バッファを割り当ておよび送信する際に、Fmbpack32()
の enc
引数が未定義で flag
引数が FBUFENC
に設定されていない場合、TPMBENC
で定義したコード セット エンコーディング名が自動的に使用されます。
アプリケーション サーバまたはクライアントのプロセスが、FLD_MBSTRING
フィールドを含んだ FML32 バッファを受信する際、別の環境変数 TPMBACONV
が設定されていると想定される場合、TPMBENC
で定義したコード セット エンコーディング名は、受信側バッファ内の FLD_MBSTRING
フィールドに指定されているコード セット エンコーディング名と自動的に比較されます。エンコーディング名が異なる場合、FLD_MBSTRING
フィールドのデータは、TPMBENC
で定義したエンコーディングに自動的に変換されてから、サーバまたはクライアントのプロセスに配信されます。
TPMBENC
のデフォルト値はありません。FLD_MBSTRING
フィールドを使用するアプリケーション サーバまたはクライアントでは、自動変換が機能するように TPMBENC
を定義する必要があります。
注意 : | TPMBENC の使用方法は、MBSTRING 型付きバッファの場合とほぼ同じです。 |
TPMBACONV
- この変数には、Oracle Tuxedo 8.1 またはそれ以降が動作しているアプリケーション サーバまたはクライアントが、受信側 FML32 バッファ内の FLD_MBSTRING
フィールドを TPMBENC
で定義されたエンコーディングに自動的に変換するかどうかを指定します。デフォルトでは、自動変換は無効になっています。つまり、FLD_MBSTRING
フィールドのデータは、エンコーディング変換が行われずに送信先サーバまたはクライアントのプロセスに配信されます。TPMBACONV
を Y
(yes) などの NULL 以外の値に設定すると、自動変換が有効になります。注意 : | TPMBACONV の使用方法は、MBSTRING 型付きバッファの場合とほぼ同じです。 |
詳細については、「FLD_MBSTRING フィールドの変換」を参照してください。
Tuxedo 9.0 から、VIEW32 は MBSTRING 型付きバッファをサポートするようになりました。これは、FML32 の FLD_MBSTRING
フィールド タイプに対応します。
Fmbpack32(3fml)
は、エンコーディング用に VIEW32 バッファの MBSTRING フィールドを比較し、Fmbunpack32(3fml)
はそれを解凍します。TPMBENC
環境変数および TPMBACONV
環境変数も VIEW32 で使用されます。
![]() ![]() ![]() |