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であり、ダイナミック・リンク・ライブラリを使用するプラットフォームのOracle TuxedoシステムのDLLの一部です。)
|
FMLを使用するCアプリケーションには、以下のヘッダー・ファイルをここに示す順序でインクルードします。
#include <stdio.h>
#include ���fml.h���
fml.hまたは
fml32.hファイルには、FMLソフトウェアで使用される構造体、シンボリック定数、およびマクロのための定義が格納されています。
FMLおよびVIEWSで使用される環境変数は以下のとおりです。
•
|
FMLでは、次の変数を使用して、システム生成されたファイルを検索します。
|
•
|
TUXDIR - この変数は、FMLを含むOracle Tuxedoシステム・ソフトウェアのインストール先ディレクトリの最上位ノードに設定する必要があります。
|
•
|
FMLでは、次の変数を使用して、フィールド表ファイルにアクセスします。
|
•
|
FIELDTBLS - この変数には、所定のアプリケーション・プログラム用のフィールド表ファイルをカンマで区切ってリストします。フル・パス名で指定したファイルは、そのまま使用されます。相対パス名で指定したファイルは、 FLDTBLDIR変数で指定したディレクトリのリストから検索されます。 FML32では、 FIELDTBLS32が使用されます。 FIELDTBLSが設定されていない場合、単一のファイル名 fld.tblが使用されます。( FLDTBLDIRもやはり適用されます。次を参照してください。)
|
•
|
FLDTBLDIR - この変数には、相対ファイル名を持つフィールド表ファイルの検索に使用するディレクトリをコロンで区切ってリストします。使用法は PATH環境変数と同様です。 FLDTBLDIRを設定しない場合、またはNULLの場合、カレント・ディレクトリの値が使用されます。 FML32では、 FLDTBLDIR32が使用されます。
|
•
|
VIEWS機能では、FMLと同じ環境変数( FLDTBLDIRおよび FIELDTBLS)のほかに、2つの環境変数が使用されます。
|
•
|
VIEWFILES - この変数には、アプリケーション・プログラムで使用するオブジェクトVIEWファイルをカンマで区切ってリストします。フル・パス名で指定したファイルは、そのまま使用されます。相対パス名で指定したファイルは、 VIEWDIR変数で指定したディレクトリのリストから検索されます(次の項目を参照)。 VIEW32では、 VIEWFILES32が使用されます。
|
•
|
VIEWDIR - この変数には、相対ファイル名を指定したVIEWオブジェクト・ファイルを検索するために使用する、コロンで区切ったディレクトリのリストを指定します。この変数の設定方法と使用方法は、 PATH環境変数と同じです。 VIEWDIRを設定しない場合、またはNULLの場合、カレント・ディレクトリの値が使用されます。 VIEW32では、 VIEWDIR32が使用されます。
|
•
|
FML32では、次の変数を使用して、フィールド型 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型付きバッファの場合とほぼ同じです。
|
Tuxedo 9.0から、VIEW32はMBSTRING型付きバッファをサポートするようになりました。これは、FML32の
FLD_MBSTRINGフィールド・タイプに対応します。
Fmbpack32(3fml)は、エンコーディング用にVIEW32バッファのMBSTRINGフィールドを比較し、
Fmbunpack32(3fml)はそれを解凍します。
TPMBENC環境変数および
TPMBACONV環境変数もVIEW32で使用されます。