スケーラブルデータベースサーバ HiRDB Version 8 UAP開発ガイド
OLTP用でない通常のUAPで複数接続機能を使用する場合の,UAPのコンパイルとリンケージについて説明します。
HP-UX 11.0,Solaris,AIX,及びLinuxの場合,libcltk.a,libzcltk.slをリンケージします。複数接続機能使用時にリンケージするライブラリを次の表に示します。なお,マルチスレッドを利用するためにリンケージしなければならないライブラリについては,各OSのマニュアルを参照してください。
表8-21 複数接続機能使用時にリンケージするライブラリ
UAPが動作するOS | UAPで使用するスレッド | リンケージするライブラリ | |
---|---|---|---|
共用ライブラリファイル | アーカイブファイル | ||
HP-UX 11.0 HP-UX 11i HP-UX 11i V2 (PA-RISC) |
カーネルスレッド (ネイティブスレッド) |
|
|
DCEスレッド | libzcltm.sl | libcltm.a | |
HP-UX 11i V2 (IPF) HP-UX 11i V3 (IPF) |
カーネルスレッド (ネイティブスレッド) |
|
− |
Solaris | ソラリススレッド (ネイティブスレッド) |
|
|
AIX 5L | POSIXスレッド |
|
|
AIX V6.1以降 | POSIXスレッド |
|
|
Linux | POSIXスレッド | libzcltk.so | libcltk.a |
Linux(IPF) | POSIXスレッド | libzcltk64.so | − |
Linux(EM64T) | POSIXスレッド |
|
− |
C言語の場合の例を次に示します。なお,下線で示す部分は,HiRDBのインストールディレクトリです。
cc -I/HiRDB/include sample.c -D_REENTRANT -D_HP_UX_SOURCE -D_POSIX_C_SOURCE=199506L -L/HiRDB/client/lib/ -lzcltk -lpthread |
cc -I/HiRDB/include sample.c +DD64 -D_REENTRANT -D_HP_UX_SOURCE -D_POSIX_C_SOURCE=199506L -L/HiRDB/client/lib/ -lzcltk64 -lpthread |
cc -I/HiRDB/include sample.c -D_REENTRANT -L/HiRDB/client/lib/ -lzcltk -lthread -lnsl -lsocket |
cc -I/HiRDB/include sample.c -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -L/HiRDB/client/lib/ -lzcltk -lthread -lnsl -lsocket |
cc -I/HiRDB/include sample.c -xarch=v9 -D_REENTRANT -L/HiRDB/client/lib/ -lzcltk64 -lthread -lnsl -lsocket |
cc -I/HiRDB/include sample.c -xarch=v9 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -L/HiRDB/client/lib/ -lzcltk64 -lthread -lnsl -lsocket |
cc -I/HiRDB/include sample.c -D_REENTRANT -L/HiRDB/client/lib/ -lzcltk -lthread |
xlc_r -I/HiRDB/include sample.c -L/HiRDB/client/lib/ -lzcltk |
xlc_r -I/HiRDB/include sample.c -q64 -L/HiRDB/client/lib/ -lzcltk64 |
xlc_r -I/HiRDB/include sample.c -L/HiRDB/client/lib/ -lzclt6k |
xlc_r -I/HiRDB/include sample.c -q64 -L/HiRDB/client/lib/ -lzclt6k64 |
COBOL言語の場合,マルチスレッドに対応したバージョン(03-01以降)のCOBOL85コンパイラが必要となります。
コンパイル時には,-Mtオプション(POSIXスレッドの場合は-Mpも必要)を指定します。-Mtオプションを指定してコンパイルしたオブジェクトと,指定しないでコンパイルしたオブジェクトをリンクすると,動作は保証されません。COBOL言語の場合のコンパイルについては,マニュアル「COBOL85 使用の手引」を参照してください。
COBOL言語の場合の例を次に示します。なお,下線で示す部分は,HiRDBのインストールディレクトリです。
setenv CBLLIB /HiRDB/include ccbl -Mt sample.cbl -L/HiRDB/client/lib/ -lzcltm -ldce |
setenv CBLLIB /HiRDB/include ccbl -Mt -Mp sample.cbl -L/HiRDB/client/lib/ -lzcltk -lpthread |
setenv CBLLIB /HiRDB/include ccbl -Mt -Mp sample.cbl -L/HiRDB/client/lib/ -lzcltk -lpthread |
setenv CBLLIB /HiRDB/include ccbl -Mt -Mp sample.cbl -L/HiRDB/client/lib/ -lcltk -lpthread |
setenv CBLLIB /HiRDB/include ccbl -Mt -Mp sample.cbl -L/HiRDB/client/lib/ -lzcltk -lpthread |
setenv CBLLIB /HiRDB/include ccbl -Mt -Mp sample.cbl -L/HiRDB/client/lib/ -lzclt6k -lpthread |
CLTDLL.LIBの代わりに,PDCLTM32.LIBをリンケージします。なお,OLTP下でX/Openに従ったAPIを使用したUAPの場合,PDCLTXM.LIBをリンケージします。
ここでは,Microsoft Visual C++ Version 4.2を前提として説明します。プロジェクトメニューから「設定」を選択して,各項目を設定します。「設定」で設定する項目を次の表に示します。マルチスレッドを利用するときに,リンケージする必要があるライブラリについては,各OSのマニュアルを参照してください。
表8-22 「設定」で設定する項目
項 目 | カテゴリ | カテゴリの設定 | 設 定 値 |
---|---|---|---|
コンパイラ | コード生成 | 構造体メンバのアライメント | 8バイト |
使用するランタイムライブラリ | マルチスレッドDLL | ||
プリプロセサ | インクルードファイルのパス | \HIRDB\INCLUDE | |
リンカ | インプット | ライブラリ | \HIRDB\LIB\PDCLTM32.LIB |
注 下線で示す部分は,HiRDBのインストールディレクトリを指定してください。
COBOL言語の場合,マルチスレッドに対応したバージョンのCOBOL85コンパイラが必要となります。ここでは,COBOL85 Version 5.0を前提に説明します。
コンパイル時には,コンパイラオプションダイアログボックスで-Mtオプションを指定します。-Mtオプションを指定してコンパイルしたオブジェクトと,指定しないでコンパイルしたオブジェクトをリンクすると,動作は保証されません。COBOL言語の場合のコンパイルについては,マニュアル「COBOL85 操作ガイド」を参照してください。
「オプション」メニューで設定する項目を次の表に示します。
表8-23 「オプション」メニューで設定する項目
サブメニュー | ダイアログ | 設定項目 | 設定値 |
---|---|---|---|
コンパイラ | COBOL85コンパイラオプション | COBOL85コンパイラオプション | -Mtの項目をチェック |
環境変数設定 | CBLLIB=C:\HIRDB\INCLUDE | ||
リンカ | リンカオプションの設定 | インポート/ユーザ指定ライブラリ | C:\HIRDB\LIB\PDCLTM32 |
注 下線で示す部分は,HiRDBのインストールディレクトリを指定してください。
シングルスレッドのUAPで複数接続機能を使用する場合の,コンパイルとリンケージの方法について説明します。なお,ここではHP-UX 11.0を例に説明します。
libclt.a,libzclt.slの代わりに,libclts.a,libzclts.slをリンケージします。
コンパイル時には,次のマルチスレッド用のコンパイルオプション,及びライブラリは指定できません。
また,pthread関連のヘッダはインクルードできません。
C言語の場合の例を次に示します。なお,下線で示す部分は,HiRDBのインストールディレクトリです。
cc -I/HiRDB/include sample.c -L/HiRDB/client/lib/ -lzclts |
cc -I/HiRDB/include sample.c -L/HiRDB/client/lib/libclts.a |
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.