スケーラブルデータベースサーバ HiRDB Version 8 UAP開発ガイド
X/Openに従ったAPI(TX_関数)を使用したUAPは,専用のライブラリを使用します。TX_関数を使用したUAPをコンパイル,及びリンケージする場合,TX_関数専用のライブラリとHiRDBが提供するライブラリとを結合させる必要があります。
なお,Linux for AP8000版のクライアントの場合,X/Openに従ったAPI(TX_関数)を使用したUAPの実行はできません。
TP1/LiNK(トランザクション制御)と連携しているHiRDBでUAPを実行する場合の注意事項について説明します。
TP1/LiNKと連携できるのは,HiRDBサーバ,HiRDBクライアントが,Windows同士の場合です。
TP1/LiNK環境下で実行するUAPをプリプロセス,リンケージする場合,次のようにしてください。
SQLプリプロセサ実行時に,次のオプションを指定してください。
PDCPP SAMPLE /XA
PDCBL SAMPLE.ECB /XAD
UAPをリンケージする場合に,次のライブラリをリンクしてください。
CLTDLL.LIBはリンクしないでください。
OpenTP1を使用した場合の,UAPのコンパイル及びリンケージについて説明します。
なお,OpenTP1でのコンパイル,及びリンケージの詳細については,マニュアル「OpenTP1 プログラム作成リファレンス C言語編」,又はマニュアル「OpenTP1 プログラム作成リファレンス COBOL言語編」を参照してください。
OpenTP1でHiRDBをアクセスするUAPを作成するとき,OpenTP1運用コマンドでトランザクション制御用オブジェクトファイルを作成する必要があります。
トランザクション制御用オブジェクトファイルは,trnmkobjコマンドを使用します。トランザクション制御用オブジェクトファイルを作成する場合,次のように指定します。
trnmkobj -o 制御用オブジェクトファイル名称 -r HiRDB_DB_SERVER
trnmkobj -o seigyo -r HiRDB_DB_SERVER
APIを使用したUAPをコンパイル,及びリンケージする場合,次のように指定します。
/usr/bin/cc -c -I$DCDIR/include -I/HiRDB/include ファイル名称.c /usr/bin/cc -o UAP実行形式ファイル名称 UAPファイル名称.o $DCDIR/spool/trnrmcmd/userobj/制御用オブジェクトファイル名称.o -L/HiRDB/client/lib -lzclty -L$DCDIR/lib -Wl,-B,immediate -Wl,-a,default -lbetran -L/usr/lib -ltactk -lbsd -lc |
/usr/bin/cc -c -I$DCDIR/include -I/HiRDB/include sample.c /usr/bin/cc -o SAMPLE sample.o $DCDIR/spool/trnrmcmd/userobj/ seigyo.o -L/HiRDB/client/lib -lzclty -L$DCDIR/lib -Wl,-B,immediate -Wl,-a,default -lbetran -L/usr/lib -ltactk -lbsd -lc |
/usr/bin/cc -c -I$DCDIR/include -I/HiRDB/include ファイル名称.c /usr/bin/cc -o UAP実行形式ファイル名称 UAPファイル名称.o $DCDIR/spool/trnrmcmd/userobj/制御用オブジェクトファイル名称.o -L/HiRDB/client/lib -lcltxa -L$DCDIR/lib -Wl,-B,immediate -Wl,-a,default -lbetran -L/usr/lib -ltactk -lbsd -lc |
/usr/bin/cc -c -I$DCDIR/include -I/HiRDB/include sample.c /usr/bin/cc -o SAMPLE sample.o $DCDIR/spool/trnrmcmd/userobj/ seigyo.o -L/HiRDB/client/lib -lcltxa -L$DCDIR/lib -Wl,-B,immediate -Wl,-a,default -lbetran -L/usr/lib -ltactk -lbsd -lc |
OpenTP1でHiRDBをアクセスするUAPを作成するとき,OpenTP1運用コマンドでトランザクション制御用オブジェクトファイルを作成する必要があります。
トランザクション制御用オブジェクトファイルは,trnmkobjコマンドを使用します。トランザクション制御用オブジェクトファイルを作成する場合,次のように指定します。
trnmkobj -o 制御用オブジェクトファイル名称 -r HiRDB_DB_SERVER
trnmkobj -o seigyo -r HiRDB_DB_SERVER
APIを使用したUAPをコンパイル,及びリンケージする場合,次のように指定します。
ccbl -o UAP実行形式ファイル名称 -Mw ファイル名称.cbl $DCDIR/spool/trnrmcmd/userobj/制御用オブジェクトファイル名称.o -L/HiRDB/client/lib -lzclty -L$DCDIR/lib -Wl,-B,immediate -Wl,-a,default -lbetran -L/usr/lib -ltactk -lbsd -lc |
ccbl -o SAMPLE -Mw sample.cbl $DCDIR/spool/trnrmcmd/userobj/seigyo.o -L/HiRDB/client/lib -lzclty -L$DCDIR/lib -Wl,-B,immediate -Wl,-a,default -lbetran -L/usr/lib -ltactk -lbsd -lc |
ccbl -o UAP実行形式ファイル名称 -Mw ファイル名称.cbl $DCDIR/spool/trnrmcmd/userobj/制御用オブジェクトファイル名称.o -L/HiRDB/client/lib -lcltxa -L$DCDIR/lib -Wl,-B,immediate -Wl,-a,default -lbetran -L/usr/lib -ltactk -lbsd -lc |
ccbl -o SAMPLE -Mw sample.cbl $DCDIR/spool/trnrmcmd/userobj/seigyo.o -L/HiRDB/client/lib -lcltxa -L$DCDIR/lib -Wl,-B,immediate -Wl,-a,default -lbetran -L/usr/lib -ltactk -lbsd -lc |
TPBroker for C++を使用した場合の,UAPのコンパイル及びリンケージについて説明します。なお,UAPはマルチスレッド対応のXAインタフェースを使用しているものとします。
なお,TPBroker for C++でのコンパイル及びリンケージ方法については,マニュアル「TPBroker ユーザーズガイド」を参照してください。
また,マルチスレッド対応のXAインタフェース専用ライブラリは,C言語及びC++言語にだけ対応しています。
TPBroker for C++でHiRDBをアクセスするUAPを作成するとき,TPBroker for C++のコマンド(tsmkobjコマンド)でトランザクション制御用オブジェクトファイルを作成します。指定例を次に示します。
tsmkobj -o 制御用オブジェクトファイル名 -r HiRDB_DB_SERVER |
UAPをコンパイル及びリンケージする場合の指定例を次に示します。
aCC +inst_implicit_include +DAportable -c -I$TPDIR/include -I$TPDIR/include/dispatch -I/HiRDB/include -D_REENTRANT -D_HP_UX_SOURCE -D_POSIX_C_SOURCE=199506Lファイル名.c aCC +inst_implicit_include +Daportable -o UAP実行形式ファイル名 UAPファイル名.o $TPDIR/otsspool/XA/制御用オブジェクトファイル名称.o -L/HiRDB/client/lib -lzcltxk -L$TPDIR/lib -Wl,+s -lots_r -lorb_r -Wl,-B,immediate -Wl,-a,default -L/usr/lib -lpthread |
TUXEDOを使用した場合の,UAPのコンパイル及びリンケージについて説明します。なお,XAインタフェース専用のライブラリは,C言語又はC++言語にだけ対応しています。
buildtms -r HiRDB_DB_SERVER -o TMSロードモジュールファイル名 |
buildserver -r HiRDB_DB_SERVER -s サービス名 -o サーバロードモジュールファイル名 -f サーバファイル名.o |
buildclient -o クライアントロードモジュール名 -f クライアントファイル名.c |
set LINK=/EXPORT:_imp_pdtxa_switch=pdtxa_switch /EXPORT:_inp_pdtxa_switch_y=pdtxa_switch_y buildtms -r HiRDB_DB_SERVER -o TMSロードモジュールファイル名 |
set LINK=/EXPORT:_imp_pdtxa_switch=pdtxa_switch /EXPORT:_inp_pdtxa_switch_y=pdtxa_switch_y buildserver -r HiRDB_DB_SERVER -s サービス名 -o サーバロードモジュールファイル名 -f サーバファイル名.obj |
buildclient -o クライアントロードモジュール名 -f クライアントファイル名.c |
TP1/EEを使用した場合の,UAPのコンパイル及びリンケージについて説明します。なお,TP1/EEのコマンドについては,マニュアル「TP1/Server Base Enterprise Option 使用の手引」を参照してください。
eetrnmkobj -o リソースマネジャ連携用オブジェクトファイル名称 -r HiRDB_DB_SERVER \ -s RMスイッチ名称 -O RM関連オブジェクトファイル名称 \ -i HiRDB提供ヘッダパス |
eetrnmkobj -o seigyo -r HiRDB_DB_SERVER -s pdtxa_switch_y \ -O /HiRDB/client/lib/libzcltyk.sl -i /HiRDB/include |
/usr/vac/bin/xlc_r -o 実行形式ファイル名 $DCDIR/lib/ee_main.o リソースマネジャ連携用オブジェクト -brtl -bdynamic -L/HiRDB/lib -L/HiRDB/client/lib -L$DCDIR/lib -lpthread -lisode -lc_r -ldl -lzcltyk -lee -lee_rm -lbetran2 -ltactk |
/usr/vac/bin/xlc_r -o SAMPLE $DCDIR/lib/ee_main.o seigyo.o -brtl -bdynamic -L/HiRDB/lib -L/HiRDB/client/lib -L$DCDIR/lib -lpthread -lisode -lc_r -ldl -lzcltyk -lee -lee_rm -lbetran2 -ltactk |
eetrnmkobj -o リソースマネジャ連携用オブジェクトファイル名称 -r HiRDB_DB_SERVER \ -s RMスイッチ名称 -O RM関連オブジェクトファイル名称 \ -i HiRDB提供ヘッダパス |
eetrnmkobj -o seigyo -r HiRDB_DB_SERVER -s pdtxa_switch_y \ -O /HiRDB/client/lib/libzcltyk.sl -i /HiRDB/include |
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.