8.3.2 送信データUOCの作成手順(UNIX)
(1) 作成方法
送信データUOCの共有ライブラリの作成方法を次に示します。
- 送信データUOCでチェックする更新情報を決定します。
- 送信データUOCの関数を作成します。
- 送信データUOCの関数をコンパイル/リンケージします。
(2) コンパイル及びリンケージ
コンパイル及びリンケージについてOSごとに説明します。
なお,リンケージの未解決エラーが発生する場合は,リンケージのときに必要なライブラリすべてを指定してください。
(a) HP-UX版の場合
- UOCのコンパイル方法
cc -c +z -I/opt/hirdbds/include UOCソースファイル名〔UOCソースファイル名〕… |
- IPF版の環境でのUOCのコンパイル方法
cc -c +z -Y -I/opt/hirdbds/include UOCソースファイル名〔UOCソースファイル名〕… |
- -c:
- オブジェクト作成オプション
- +z:
- 位置独立コード作成オプション
- -I:
- Datareplicatorが提供するヘッダファイル格納ディレクトリを指定(/opt/hirdbds/include固定)。UOC自身がほかのヘッダファイルを必要とする場合は,複数指定できます。
- UOCのリンケージ方法
ld -b -o libhdesuoc.sl UOCオブジェクトファイル名〔UOCオブジェクトファイル名〕… |
- IPF版の環境でのUOCのリンケージ方法
ld -b -o libhdesuoc.so UOCオブジェクトファイル名〔UOCオブジェクトファイル名〕… |
(b) Solaris版の場合
- UOCのコンパイル方法
/opt/SUNWspro/bin/cc -c -KPIC -I/opt/hirdbds/include UOCソースファイル名〔UOCソースファイル名〕… |
- -c:
- オブジェクト作成オプション
- -KPIC:
- 位置独立コード作成オプション
- -I:
- Datareplicatorが提供するヘッダファイル格納ディレクトリを指定(/opt/hirdbds/include固定)。UOC自身がほかのヘッダファイルを必要とする場合は,複数指定できます。
- UOCのリンケージ方法
/opt/SUNWspro/bin/cc -G -o libhdesuoc.so UOCオブジェクトファイル名〔UOCオブジェクトファイル名〕… |
(c) AIX版の場合
- UOCのコンパイル方法
xlc -c -I /opt/hirdbds/include UOCソースファイル名〔UOCソースファイル名〕… |
- -c:
- オブジェクト作成オプション
- -I:
- Datareplicatorが提供するヘッダファイル格納ディレクトリを指定(/opt/hirdbds/include固定)。UOC自身がほかのヘッダファイルを必要とする場合は,複数指定できます。
- UOCのリンケージ方法
xlc -bM:SRE -bnoentry -bE:/opt/hirdbds/lib/libhdesuoc.exp -o libhdesuoc.a UOCオブジェクトファイル名〔UOCオブジェクトファイル名〕… |
(d) Linux版の場合
- 32ビット版,又はIPF版の環境でのUOCのコンパイル方法
gcc -c -fPIC -I/opt/hirdbds/include UOCソースファイル名〔UOCソースファイル名〕… |
- EM64T版の環境でのUOCのコンパイル方法
gcc -c -m32 -fPIC -I/opt/hirdbds/include UOCソースファイル名〔UOCソースファイル名〕… |
- -c:
- オブジェクト作成オプション
- -fPIC:
- 位置独立コード作成オプション
- -I:
- Datareplicatorが提供するヘッダファイル格納ディレクトリを指定(/opt/hirdbds/include固定)。UOC自身がほかのヘッダファイルを必要とする場合は,複数指定できます。
- 32ビット版の環境でのUOCのリンケージ方法
ld -G -o libhdesuoc.so UOCオブジェクトファイル名〔UOCオブジェクトファイル名〕… |
- IPF版の環境でのUOCのリンケージ方法
gcc -shared -o libhdesuoc.so UOCオブジェクトファイル名〔UOCオブジェクトファイル名〕… |
- EM64T版の環境でのUOCのリンケージ方法
gcc -m32 -shared -o libhdesuoc.so UOCオブジェクトファイル名〔UOCオブジェクトファイル名〕… |
(3) 注意事項
作成した送信データUOCのライブラリは,任意のディレクトリに格納できます。ただし,/opt/hirdbds/lib下にあるlibhdesuoc.sl(Solaris版及びLinux版の場合はlibhdesuoc.so,AIX版の場合はlibhdesuoc.exp)とは入れ替えないでください。
UOCを実行する前に,抽出システム定義のnode_shlibpathオペランドに送信データUOCライブラリ(libhdesuoc.sl又はlibhdesuoc.so)が格納してあるディレクトリを指定しておいてください。node_shlibpathオペランドに指定したディレクトリ下に送信データUOCライブラリがないときは,全更新情報を送信対象とします。