辞書出口モジュールの作成方法を以下に説明します。
開発言語
開発環境
辞書出口モジュール
ヘッダファイル
関数インタフェース
辞書出口モジュール使用時の作業
開発言語
辞書出口モジュールの作成には、C言語を使用してください。
開発環境
以下のコンパイラを使用してください。
Oracle Developer Studio 12
使用するOSに標準添付されているGNU Compiler Collection(GCC)
Microsoft Visual C++ 2015/2017/2019
辞書出口モジュール
共通の注意事項
辞書出口モジュール内では標準出力、標準エラー出力への出力を行わないでください。
辞書出口モジュールは、Navigator Serverプロセスに動的にロードされるため、辞書出口モジュール内に、辞書出口モジュールインタフェースで規定されていない関数や変数などのシンボルをモジュール内に定義する場合、それらの有効範囲(スコープ)についてNavigator Server側で定義しているシンボルと干渉することのないよう、十分に注意して設計してください。
辞書出口モジュール自身がDBMSへのアクセスを行う場合、Navigator側ですでに確立しているDBMSとの接続に影響を与えないよう、設計において十分に注意してください。DBMSへのアクセスなど、Navigatorに返却する管理情報を作成する実処理は、Navigatorサーバプロセスと独立した別のプロセス、または別サーバで行うようにシステムを構成する必要があります。Navigatorサーバプロセスにリンクされる辞書出口モジュールは、以下のような実処理を行う別プロセスや、別サーバとのインタフェース処理だけを行うように作成してください。
Navigatorサーバ本体から、規定のインタフェースで渡されたパラメタを、DBMSアクセスなどの実処理を行う別プロセス、または別サーバに渡して実処理の実行を要求します。
実処理を行う別プロセス、または別サーバが依頼に対応して返却する結果データを受け取り、規定のインタフェースでNavigatorサーバ本体に返却します。
UNIXの場合
64bitの共用オブジェクトとして作成してください。
関数インタフェースは、すべてエクスポートしてください。また、Navigator Serverは、マルチスレッドで動作しているため、マルチスレッドに対応したモジュールを作成してください。
Windowsサーバの場合
64bitのダイナミックリンクライブラリとして作成してください。
関数インタフェースは、すべてエクスポートしてください。また、Navigator Serverは、マルチスレッドで動作しているため、マルチスレッドに対応したモジュールを作成してください。
ヘッダファイル
辞書出口モジュールを作成する場合には、ソースファイルに以下のヘッダファイルをインクルードしてください。
kvrdic_dicexit.h
このヘッダファイルは、Navigator Serverのインストールディレクトリのetcディレクトリに存在します。使用している開発環境にコピーして使用してください。
関数インタフェース
以下にNavigatorと辞書出口モジュールとのインタフェースとなる関数の一覧を示します。
KVRDIC_open_dicinfo_list | 辞書情報の取得開始 |
KVRDIC_get_dicinfo_list | 辞書情報一覧の取得 |
KVRDIC_close_dicinfo_list | 辞書情報一覧の取得終了 |
関数インタフェースの詳細は、“F.2 辞書出口モジュール用の関数”を参照してください。
辞書出口モジュール使用時の作業
作成した辞書出口モジュールを使用する場合には、以下の作業が必要になります。
(サーバの切り換え機能を使用した運用を行う場合は、切り換わる可能性のあるすべてのサーバに対してこの作業を行ってください。)
作成した辞書出口モジュールは、辞書出口を使用するすべてのサーバにコピーし、適切なディレクトリに配置します。
また、辞書出口モジュールには、Navigator Serverのプロセスの実効ユーザが読み込み、実行のできる権限を与えてください。