![]() ![]() ![]() ![]() |
フィールド操作言語 (FML: Field Manipulation Language) とは、属性と値の組み合わせをフィールドに格納する記憶構造 (フィールド化バッファ) を定義および操作する C 言語関数のセットです。属性はフィールドの識別子であり、対応する値はフィールドのデータ内容を表します。
フィールド化バッファを使用すると、関連したフィールドのセットを名前でアクセスできるので、協調動作するプロセス間でパラメータ化されたデータを受け渡す場合に便利です。ほかのプロセスと通信する必要のあるプログラムで FML を使用すると、フィールドを格納する構造体を操作せずにフィールドにアクセスすることができます。
FML は、VIEWS と呼ばれる機能も提供します。この機能を使用すると、フィールド化バッファを C 構造体や COBOL レコードにマッピングしたり、逆に C 構造体や COBOL レコードをフィールド化バッファにマッピングできます。VIEWS を使用すると、フィールド化バッファの代わりに構造体内で大量のデータを操作できます。操作対象のデータが構造体に転送されると、アプリケーションの動作が速くなります。つまり、この VIEWS 機能を使用すると、フィールド化バッファのデータ独立性と従来のレコード構造の効率性や簡便性を両方とも実現できます。
FML および VIEWS の機能には、次の 2 つのインタフェースがあります。
Oracle Tuxedo システムでは、ATMI アプリケーションのコンテキストで FML 関数を使用してフィールド化バッファを操作します。
FML 関数は、Oracle Tuxedo システムのコア部分を扱うデータ エントリ プログラムで使用されます。つまり、これらのプログラムでは、フィールド化バッファを使用して、ユーザが端末から入力したデータをほかのプロセスに転送します。したがって、データ エントリ プログラムからフィールド化バッファに入力されたデータを受け取るプログラムを作成する場合も、FML 関数を使用する必要があります。
ユーザの入出力を操作するアプリケーション プログラムを独自に開発する場合や、プロセス間でメッセージを送受信するプログラムを作成する場合も、プログラム間で送受信されるフィールド化バッファを操作する方法として FML を使用できます。
型付きバッファは、フィールド化バッファという FML の概念に基づいた Oracle Tuxedo システムの機能の 1 つです。Oracle Tuxedo システムには、FML と VIEW という 2 種類の標準的な型付きバッファが用意されています。これらのバッファのうち、Oracle Tuxedo の VIEW バッファの場合は、FML フィールド化バッファとまったく関連付けなくてもよいという点が唯一異なります。
このマニュアルでは、構造化された FML レコードとして VIEW を説明します。ほかのマニュアル、たとえば『C 言語を使用した Oracle Tuxedo アプリケーションのプログラミング』では、Oracle Tuxedo で提供されるいくつかのバッファ型のうちの 1 つとして VIEW を扱います。
fldid
) は、FML レコードまたはフィールド化バッファ内の個々のデータ項目を示すタグです。フィールド識別子は、フィールド名 (番号) とフィールドのデータ型で構成されています。
short
、long
float
、double
、char
)。ほかに、string
型 (NULL 文字で終了する文字列)、carray
型 (文字配列)、mbstring
型 (マルチバイト文字配列 - Tuxedo リリース 8.1 またはそれ以降で使用可能)、ptr
型 (バッファを指すポインタ)、FML32
型 (埋め込み型の FML32 バッファ)、および VIEW32
型 (埋め込み型の VIEW32 バッファ) がサポートされています。mbstring
、ptr
、FML32
、および VIEW32
型は、FML32 インタフェースでのみサポートされています。COBOL では、COMP-5
型、COMP-1
型、COMP-2
型、および PIC X
型に対応します。ただし、現時点では、COBOL には mbstring
、ptr
、fml32
、および view32
に対応する型はありません。VIEWS では、COBOL COMP-3
との統合のために C 言語のパック 10 進数型もサポートされています。
![]() ![]() ![]() |