8.1.2 反映情報編集UOCの作成手順(UNIX)

UNIX版Datareplicatorで反映情報編集UOCを作成する手順について説明します。

反映情報編集UOCではSQLを使う場合,直接コンパイルを実行できません。いったんCコンパイラがコンパイルできるソースに変換した後,コンパイルする必要があります。UOCを実行するまでの手順を次の図に示します。

図8-3 反映情報編集UOCの実行手順

[図データ]

なお,次の表に示すように,Datareplicatorの種類によって作成する反映情報編集UOCのロードモジュールの種類は異なります。

Datareplicatorの種類反映情報編集UOCのロードモジュールの種類
32ビット版HP-UX版
Solaris版
AIX 5L版
Linux版
32ビット版※1
64ビット版HP-UX版
Solaris版
AIX 5L版
32ビット版※1
IPF版HP-UX版32ビット版※1
64ビット版※2
Linux版64ビット版※2
注※1
32ビットモードで動作するUOCをコーディングしてください。
注※2
64ビットモードで動作するUOCをコーディングしてください。コーディングでの注意点を次に示します。
  • long型は8バイトの整数として認識されます。そのため,long型はint型に修正してください。
  • ポインタは8バイトとなります。UOC内でポインタの長さを特に意識した処理がなければ,修正の必要はありません。
  • 反映情報編集UOCを作成するときに使用する関数が,32ビットモードと異なる場合があります。64ビットモードで使用できる関数かどうか確認してください。
  • long型を使用した埋込み変数の宣言はできません。埋込み変数のlong型はint型に修正してください。
<この項の構成>
(1) 作成方法
(2) コンパイル及びリンケージ

(1) 作成方法

反映情報編集UOCインタフェース共有ライブラリの作成方法を次に示します。

  1. 反映情報編集UOCインタフェースを使う反映列を決定します。
  2. 反映情報編集UOCインタフェースの関数を作成します。
  3. 反映情報編集UOCでSQLを使用する場合,反映側HiRDBのSQLプリプロセサを使って,Cコンパイラがコンパイルできるソースファイルに変換します。
    SQLプリプロセサについては,マニュアル「HiRDB Version 9 UAP開発ガイド」を参照してください。
  4. 反映情報編集UOCインタフェースの関数をコンパイル/リンケージします。

(2) コンパイル及びリンケージ

コンパイル及びリンケージについてOSごとに説明します。

なお,リンケージの未解決エラーが発生する場合は,リンケージのときに必要なライブラリすべてを指定してください。

(a) HP-UX版の場合
 -c:
オブジェクト作成オプション
 -I /HiRDB/include:
下線部分に,反映側HiRDBのインストールディレクトリを指定します。
 -I /opt/hirdbds/include:
Datareplicatorが提供するヘッダファイル格納ディレクトリを指定(/opt/hirdbds/include固定)。UOC自身がほかのヘッダファイルを必要とする場合は,複数指定できます。
 UOCソースファイル名:
SQLプリプロセサを使って,Cコンパイラがコンパイルできるソースファイルに変換した名称を指定します。

コンパイルコマンドの文法については,該当するOSのリファレンスマニュアルを参照してください。

注1
UOC名には,実行形式ファイル名を指定します。この実行形式ファイル名を,反映定義に指定します。UOCの実行時には,実行形式ファイルを格納したディレクトリのパス名を環境変数PATHに設定しておいてください。
UOCオブジェクト名には,コンパイルして作成したオブジェクトファイル名を指定します。
/opt/hirdbds/lib下のライブラリは,反映側Datareplicatorが用意しているライブラリです。これらのライブラリは必ず指定してください。
注2
リンケージのコマンドに指定する実行ファイル名は,hdsで始まる名称 又はシステムにインストール済みのプログラムで禁止している名称を指定しないでください。
注※
UOC内からSQLを実行するときは,これ以降のコマンド文字列に次に示すライブラリを指定してください。
・IPF版で32ビット版のロードモジュールを作成する場合

+s -L HiRDBをインストールしたディレクトリ/client/lib  -lzcltk

・IPF版で64ビット版のロードモジュールを作成する場合

+s -L HiRDBをインストールしたディレクトリ/client/lib  -lzcltk64

・32ビット版,又は64ビット版の場合

+s -L HiRDBをインストールしたディレクトリ/client/lib  -lzclt

+sは,反映側HiRDBのインストールディレクトリと反映側HiRDBの運用ディレクトリを分けて使うことを示します。+sを指定するときは,環境変数SHLIB_PATHも指定してください。
-Lは,SHLIB_PATHを省略したときのデフォルトのサーチパスを示します。
-lは,反映側HiRDBのリンケージライブラリ名を指定します。
(b) Solaris版の場合
 -c:
オブジェクト作成オプション
 -I /HiRDB/include:
下線部分に,反映側HiRDBのインストールディレクトリを指定します。
 -I /opt/hirdbds/include:
Datareplicatorが提供するヘッダファイル格納ディレクトリを指定(/opt/hirdbds/include固定)。UOC自身がほかのヘッダファイルを必要とする場合は,複数指定できます。
 UOCソースファイル名:
SQLプリプロセサを使って,Cコンパイラがコンパイルできるソースファイルに変換した名称を指定します。
注1
-Lオプションの行は,UOC内からSQLを実行するときに指定するライブラリです。下線で示す部分には,反映側HiRDBをインストールしたディレクトリを指定します。
注2
-Rオプションは省略できます。ただし,省略した場合は,LD_LIBRARY_PATHに「HiRDBをインストールしたディレクトリ/lib」を追加しておく必要があります。
(c) AIX版の場合
 -c:
オブジェクト作成オプション
 -I /HiRDB/include:
下線部分に,反映側HiRDBのインストールディレクトリを指定します。
 -I /opt/hirdbds/include:
Datareplicatorが提供するヘッダファイル格納ディレクトリを指定(/opt/hirdbds/include固定)。UOC自身がほかのヘッダファイルを必要とする場合は,複数指定できます。
 UOCソースファイル名:
SQLプリプロセサを使って,Cコンパイラがコンパイルできるソースファイルに変換した名称を指定します。

コンパイルコマンドの文法については,該当するOSのリファレンスマニュアルを参照してください。

注1
UOC名には,実行形式ファイル名を指定します。この実行形式ファイル名を,反映定義に指定します。UOCの実行時には,実行形式ファイルを格納したディレクトリのパス名を環境変数PATHに設定しておいてください。
UOCオブジェクト名には,コンパイルして作成したオブジェクトファイル名を指定します。
/opt/hirdbds/lib下のライブラリは,反映側Datareplicatorが用意しているライブラリです。これらのライブラリは必ず指定してください。
注2
リンケージのコマンドに指定する実行ファイル名は,hdsで始まる名称 又はシステムにインストール済みのプログラムで禁止している名称を指定しないでください。
注3
-Lオプションの行は,UOC内からSQLを実行するときに指定するライブラリです。下線で示す部分には,反映側HiRDBをインストールしたディレクトリを指定します。
(d) Linux版の場合
 -c:
オブジェクト作成オプション
 -I /HiRDB/include:
下線部分に,反映側HiRDBのインストールディレクトリを指定します。
 -I /opt/hirdbds/include:
Datareplicatorが提供するヘッダファイル格納ディレクトリを指定(/opt/hirdbds/include固定)。UOC自身がほかのヘッダファイルを必要とする場合は,複数指定できます。
 UOCソースファイル名:
SQLプリプロセサを使って,Cコンパイラがコンパイルできるソースファイルに変換した名称を指定します。

コンパイルコマンドの文法については,該当するOSのリファレンスマニュアルを参照してください。

注※1
32ビット版の場合,-lpthreadは不要です。
注※2
32ビット版の場合,-lzcltk64は-lzcltに読み替えてください。
注1
-Rオプションは省略できます。ただし,省略した場合は,LD_LIBRARY_PATHに「HiRDBをインストールしたディレクトリ/lib」を追加しておく必要があります。
注2
-lは,反映側HiRDBのリンケージライブラリ名を指定します。
注3
-Lオプションの行は,UOC内からSQLを実行するときに指定するライブラリです。下線で示す部分には,反映側HiRDBをインストールしたディレクトリを指定します。