AIX の詳細は、Net.Data とともに出荷される README ファイルに記述されています。 README ファイルは、以下の情報を含んでいます。
AIX プラットフォームで言語環境を作成するときには、共用ライブラリーをロードする必要があります。 AIX では、言語環境が、Net.Data に呼び出されるルーチンを提供するために必要で、 dtw_initialize() や dtw_execute() などの言語環境インターフェース・ルーチンのアドレスを戻します。
Net.Data は、AIX の言語環境から言語環境インターフェース・ルーチンへのポインターを検索するために、 dtw_fp 構造を使用します。この構造は、以下のような形式となります。
typedef struct dtw_fp { int (* dtw_initialize_fp)(); /* dtw_initialize function pointer */ int (* dtw_execute_fp)(); /* dtw_execute function pointer */ int (* dtw_cleanup_fp)(); /* dtw_cleanup function pointer */ } dtw_fp_t;
この構造は、共用ライブラリーがロードされると、Net.Data によって dtw_getFp() ルーチンの中でパラメーターとして、 言語環境に渡されます。
dtw_fp 構造は、唯一のパラメーターとして渡されます。この構造は、 各サポートされるインターフェースに対して、1 つのフィールドを含みます。 これらのフィールドを設定するのは、言語環境の役割です。 言語環境が、指定されたインターフェースを提供している場合、 言語環境は、そのフィールドにそのインターフェースの関数ポインターをセットします。 言語環境が、指定されたインターフェースを提供していない場合、 言語環境はそのフィールドを NULL にセットします。 プログラム・テンプレートの dtw_getFp() ルーチンは、このルーチンの正確なインプリメンテーションを示しています。
共用ライブラリーがロードされる際に、Net.Data がこのルーチンへのポインターを取得するためには、 dtw_getFp ルーチンが、共用ライブラリーのエクスポート・ファイルで指定された最初のエントリー・ポイントでなければなりません。 すべての使用可能な言語環境インターフェース・ルーチンをサポートする、 dtwsampshr.o という名前のライブラリーのサンプル・エクスポート・ファイルは、以下のようになっています。
#!dtwsampshr.o dtw_getFp dtw_initialize dtw_execute dtw_cleanup
AIX システムで REXX 言語環境への呼び出しが多数ある場合、 RXQUEUE_OWNER_PID 環境変数を 0 にセットすることを考慮してください。 REXX 言語環境への呼び出しを多数行うマクロは、簡単に多くのプロセスを生成し、 システム資源を消費します。
以下の 3 つの方法のいずれかで環境変数を設定します。
@DTW_rSETENV("RXQUEUE_OWNER_PID", "0")
/etc/environment: RXQUEUE_OWNER_PID = 0
この方法は、マシン全体の REXX の動作に影響を与えます。
InheritEnv RXQUEUE_OWNER_PID = 0
この方法は、Web サーバーの REXX の動作に影響を与えます。
Net.Data は、Web サーバーと同じコード・ページを使用して実行します。 ロケールに対して Net.Data が正しいコード・ページを使用するためには、 Web サーバーが正しいコード・ページを使用している必要があります。 たとえば、IBM Internet Connection Server を使用していて、韓国語のコード・ページを使用したい場合、 サーバーを停止して、韓国語ロケールを使用してそのサーバーを再始動します。
stopsrc httpd startsrc -s httpd -e "LC_ALL=ko_KR"
マクロが UTF-8 文字を含んでいるか、 あるいはユーザーが Unicode データを含んでいる DB2 データベースに接続している場合は、 INI ファイルの DTW_UNICODE 構成変数を YES に設定してください。 Net.Data は現在、マクロ内の UTF-8 文字をサポートしていますが、 UTF-16 文字はサポートしていません。 しかし、Net.Data は、 UTF-8 または UTF-16 のいずれかでエンコードされたデータベース・データはプロセスすることができます。 Net.Data の出力は常に UTF-8 です。
パフォーマンスのヒント : ユーザーが 2 バイトのロケールで実行しており、 string または work の組み込み関数が常に単一バイトの文字ストリングをプロセスする場合は、 DTW_MBMODE を NO に設定して不必要な型変換を避けてください。