8.1.2 反映情報編集UOCの作成手順(UNIX)
UNIX版Datareplicatorで反映情報編集UOCを作成する手順について説明します。
反映情報編集UOCではSQLを使う場合,直接コンパイルを実行できません。いったんCコンパイラがコンパイルできるソースに変換した後,コンパイルする必要があります。UOCを実行するまでの手順を次の図に示します。
- 〈この項の構成〉
(1) 作成方法
反映情報編集UOCインタフェース共有ライブラリの作成方法を次に示します。
-
反映情報編集UOCインタフェースを使う反映列を決定します。
-
反映情報編集UOCインタフェースの関数を作成します。
-
反映情報編集UOCでSQLを使用する場合,反映側HiRDBのSQLプリプロセサを使って,Cコンパイラがコンパイルできるソースファイルに変換します。
SQLプリプロセサについては,マニュアル「HiRDB UAP開発ガイド」を参照してください。
-
反映情報編集UOCインタフェースの関数をコンパイル/リンケージします。
(2) コンパイル及びリンケージ
コンパイル及びリンケージについてOSごとに説明します。
なお,リンケージの未解決エラーが発生する場合は,リンケージのときに必要なライブラリすべてを指定してください。
(a) HP-UX版の場合
-
UOCのコンパイル方法
cc -c +DD64 -I /HiRDB/include -I /opt/hirdbds/include UOCソースファイル名
- -c:
-
オブジェクト作成オプション
- -I /HiRDB/include:
-
下線部分に,反映側HiRDBのインストールディレクトリを指定します。
- -I /opt/hirdbds/include:
-
Datareplicatorが提供するヘッダファイル格納ディレクトリを指定(/opt/hirdbds/include固定)。UOC自身がほかのヘッダファイルを必要とする場合は,複数指定できます。
- UOCソースファイル名:
-
SQLプリプロセサを使って,Cコンパイラがコンパイルできるソースファイルに変換した名称を指定します。
コンパイルコマンドの文法については,該当するOSのリファレンスマニュアルを参照してください。
-
UOCのリンケージ方法
ld -o UOC名 -u main UOCオブジェクト名 /opt/hirdbds/lib/libhdsuif.a /opt/hirdbds/lib/libhdsulb.so /opt/hirdbds/lib/libhdscom.so /opt/hirdbds/lib/libhdspck.so -lc -L /HiRDB/client/lib -lzcltk64
- 注1
-
UOC名には,実行形式ファイル名を指定します。この実行形式ファイル名を,反映定義に指定します。UOCの実行時には,実行形式ファイルを格納したディレクトリのパス名を環境変数PATHに設定しておいてください。
UOCオブジェクト名には,コンパイルして作成したオブジェクトファイル名を指定します。
/opt/hirdbds/lib下のライブラリは,反映側Datareplicatorが用意しているライブラリです。これらのライブラリは必ず指定してください。
- 注2
-
リンケージのコマンドに指定する実行ファイル名は,hdsで始まる名称 又はシステムにインストール済みのプログラムで禁止している名称を指定しないでください。
- 注3
-
-Lオプションの行は,UOC内からSQLを実行するときに指定するライブラリです。下線で示す部分には,反映側HiRDBをインストールしたディレクトリを指定します。
(b) AIX版の場合
-
UOCのコンパイル方法
xlc -q64 -c -I /HiRDB/include -I /opt/hirdbds/include UOCソースファイル名
- -c:
-
オブジェクト作成オプション
- -I /HiRDB/include:
-
下線部分に,反映側HiRDBのインストールディレクトリを指定します。
- -I /opt/hirdbds/include:
-
Datareplicatorが提供するヘッダファイル格納ディレクトリを指定(/opt/hirdbds/include固定)。UOC自身がほかのヘッダファイルを必要とする場合は,複数指定できます。
- UOCソースファイル名:
-
SQLプリプロセサを使って,Cコンパイラがコンパイルできるソースファイルに変換した名称を指定します。
コンパイルコマンドの文法については,該当するOSのリファレンスマニュアルを参照してください。
-
UOCのリンケージ方法
xlc -q64 -o UOC名 -u main UOCオブジェクト名 /opt/hirdbds/lib/libhdspck.a /opt/hirdbds/lib/libhdsulb.a /opt/hirdbds/lib/libhdscom.a /opt/hirdbds/lib/libhdsuif.a -lm -lc -L /HiRDB/client/lib -Wl,-blibpath:.:/usr/lib:/lib:/HiRDB/client/lib -lzcltk64
- 注1
-
UOC名には,実行形式ファイル名を指定します。この実行形式ファイル名を,反映定義に指定します。UOCの実行時には,実行形式ファイルを格納したディレクトリのパス名を環境変数PATHに設定しておいてください。
UOCオブジェクト名には,コンパイルして作成したオブジェクトファイル名を指定します。
/opt/hirdbds/lib下のライブラリは,反映側Datareplicatorが用意しているライブラリです。これらのライブラリは必ず指定してください。
- 注2
-
リンケージのコマンドに指定する実行ファイル名は,hdsで始まる名称 又はシステムにインストール済みのプログラムで禁止している名称を指定しないでください。
- 注3
-
-Lオプションの行は,UOC内からSQLを実行するときに指定するライブラリです。下線で示す部分には,反映側HiRDBをインストールしたディレクトリを指定します。
(c) Linux版の場合
-
UOCのコンパイル方法
gcc -c -I /HiRDB/include -I /opt/hirdbds/include UOCソースファイル名
- -c:
-
オブジェクト作成オプション
- -I /HiRDB/include:
-
下線部分に,反映側HiRDBのインストールディレクトリを指定します。
- -I /opt/hirdbds/include:
-
Datareplicatorが提供するヘッダファイル格納ディレクトリを指定(/opt/hirdbds/include固定)。UOC自身がほかのヘッダファイルを必要とする場合は,複数指定できます。
- UOCソースファイル名:
-
SQLプリプロセサを使って,Cコンパイラがコンパイルできるソースファイルに変換した名称を指定します。
コンパイルコマンドの文法については,該当するOSのリファレンスマニュアルを参照してください。
-
UOCのリンケージ方法
gcc -o UOC名 -u main UOCオブジェクト名 /opt/hirdbds/lib/libhdsuif.a /opt/hirdbds/lib/libhdsulb.so /opt/hirdbds/lib/libhdscom.so /opt/hirdbds/lib/libhdspck.so -lpthread -ldl -L/HiRDB/client/lib -lzclt64 -Wl,-R/HiRDB/client/lib
- 注1
-
-Rオプションは省略できます。ただし,省略した場合は,LD_LIBRARY_PATHに「HiRDBをインストールしたディレクトリ/client/lib」を追加しておく必要があります。
- 注2
-
-lは,反映側HiRDBのリンケージライブラリ名を指定します。
- 注3
-
-Lオプションの行は,UOC内からSQLを実行するときに指定するライブラリです。下線で示す部分には,反映側HiRDBをインストールしたディレクトリを指定します。