3.11.2 AIXの場合
AIX使用時のORACLEアクセスライブラリ再作成方法について説明します。
- 〈この項の構成〉
(1) 適用範囲
ORACLEアクセスライブラリを作成する機能は,次のORACLEシステムを運用している場合に適用してください。
-
DABrokerを動作させた時,次のメッセージでORACLEの関数名,またはライブラリ名が出力された場合
- DABroker出力メッセージ
-
KFDB005MM-E システムコールでエラーが発生しました。
[dlopen(/opt/DABroker/lib/libdaO7101.sl※) errno=ld.sl.1:
重大なエラー:再配置エラー:ファイル /opt/DABroker/lib/libdaO7101.sl※:
シンボル(ORACLEの関数):参照されたシンボルがありません]
- 注※
-
-
Oracle10g R10.1.0またはR10.2.0を使用している場合:libdaO7101.slと表示されます。
-
Oracle11g R11.1.0またはR11.2.0を使用している場合:libdaO7111.slと表示されます。
-
DABroker for Javaのデータベース種別にOracle8iを指定して,Oracle10g R10.1.0またはR10.2.0を使用している場合:libdaO8101.slと表示されます。
-
DABroker for Javaのデータベース種別にOracle8iを指定して,Oracle11g R11.1.0またはR11.2.0を使用している場合:libdaO8111.slと表示されます。
-
(2) ORACLEアクセスライブラリ再作成の手順
ORACLEアクセスライブラリを再作成する手順を次に説明します。
次の手順は,必ず,運用ディレクトリが/opt/DABrokerの環境で実行してください。
DABrokerの運用ディレクトリを/opt/DABroker以外に設定している場合は,いったん,DABrokerのセットアップコマンドで運用ディレクトリを/opt/DABrokerに戻してから実行してください。
-
DABroker既存ライブラリのバックアップ
DABrokerの既存ライブラリのバックアップを次のように取得してください。
cd /opt/DABroker/lib
-
Oracle10g R10.1.0またはR10.2.0を使用している場合
mv libdaO7101.a libdaO7101.a_bk
-
Oracle11g R11.1.0またはR11.2.0を使用している場合
mv libdaO7111.a libdaO7111.a_bk
-
DABrokerのデータベース種別にORACLE8iを指定して,Oracle10g R10.1.0またはR10.2.0を使用している場合
mv libdaO8101.a libdaO8101.a_bk
-
DABrokerのデータベース種別にORACLE8iを指定して,Oracle11g R11.1.0またはR11.2.0を使用している場合
mv libdaO8111.a libdaO8111.a_bk
-
-
提供サンプルメイクファイルの修正
DABrokerでは,表3-12〜15に示す,ORACLEアクセスライブラリのサンプルメイクファイルを提供しています。使用している環境に合わせて,修正して使用してください。
なお,表中の番号は,次の内容を示しています。
- 1:DABrokerアクセスライブラリ名称
-
修正しないでください。
- 2:DABroker共用ライブラリ
-
修正しないでください。
- 3:ORACLEクライアントライブラリ,及びOS提供ライブラリ
-
DABrokerのORACLEアクセスライブラリは,ORACLEのOCIプログラムです。ORACLEのマニュアルを参照し,OCIプログラム作成時に必要なORACLEクライアントライブラリ,及びOS提供ライブラリを確認の上,使用している環境に合わせて修正してください。
- 4:DABroker共用オブジェクトファイル
-
修正しないでください。
- 5:リンケージパラメタ
-
修正しないでください。
-
Oracle 10g R10.1.0またはR10.2.0を使用している場合
ファイル名:/opt/DABroker/sample/oramake7101
表3‒12 Oracle 10g R10.1.0またはR10.2.0サンプルメイクファイル 番号
定義文
1
PROGRAM = libdaO7101.a
1
PROGRAM1 = libdaO7101.o
2
LIBS = -L /opt/DABroker/lib -ldacommon
3
LIBS1 = -lpthreads -bglink:/lib/glink.o -bM:SRE -bexpall ¥
3
-bnoentry -lm -lc_r
3
ORALIB = -L $(ORACLE_HOME)/lib -lclntsh
3
LDFLAGS = -G
4
OBJS = /opt/DABroker/obj/dacdcntl.o ¥
4
/opt/DABroker/obj/daO7101.a
5
all: $(PROGRAM)
5
$(PROGRAM): $(OBJS)
echo "Linking $(PROGRAM) ..."
ld -o $(PROGRAM1) $(OBJS) $(LIBS) $(LIBS1) $(LDFLAGS) ¥
$(ORALIB)
ar rv $(PROGRAM) $(PROGRAM1)
rm -f $(PROGRAM1)
echo "done"
-
Oracle 11g R11.1.0またはR11.2.0を使用している場合
ファイル名:/opt/DABroker/sample/oramake7111
表3‒13 Oracle 11g R11.1.0またはR11.2.0サンプルメイクファイル 番号
定義文
1
PROGRAM = libdaO7111.a
1
PROGRAM1 = libdaO7111.o
2
LIBS = -L /opt/DABroker/lib -ldacommon
3
LIBS1 = -lpthreads -bglink:/lib/glink.o -bM:SRE -bexpall ¥
3
-bnoentry -lm -lc_r
3
ORALIB = -L $(ORACLE_HOME)/lib -lclntsh
3
LDFLAGS = -G
4
OBJS = /opt/DABroker/obj/dacdcntl.o ¥
4
/opt/DABroker/obj/daO7111.a
5
all: $(PROGRAM)
5
$(PROGRAM): $(OBJS)
echo "Linking $(PROGRAM) ..."
ld -o $(PROGRAM1) $(OBJS) $(LIBS) $(LIBS1) $(LDFLAGS) ¥
$(ORALIB)
ar rv $(PROGRAM) $(PROGRAM1)
rm -f $(PROGRAM1)
echo "done"
-
DABroker for Javaのデータベース種別にOracle8iを指定して,Oracle 10g R10.1.0またはR10.2.0を使用している場合
ファイル名:/opt/DABroker/sample/oramake8101
表3‒14 Oracle 10g R10.1.0またはR10.2.0サンプルメイクファイル(DABroker for Javaのデータベース種別にOracle8iを指定時) 番号
定義文
1
PROGRAM = libdaO8101.a
1
PROGRAM1 = libdaO8101.o
2
LIBS = -L /opt/DABroker/lib -ldacommon
3
LIBS1 = -lpthreads -bglink:/lib/glink.o -bM:SRE -bexpall ¥
3
-bnoentry -lm -lc_r
3
ORALIB = -L $(ORACLE_HOME)/lib -lclntsh
3
LDFLAGS = -G
4
OBJS = /opt/DABroker/obj/dacd8101.o ¥
4
/opt/DABroker/obj/daO8101.a
5
all: $(PROGRAM)
5
$(PROGRAM): $(OBJS)
echo "Linking $(PROGRAM) ..."
ld -o $(PROGRAM1) $(OBJS) $(LIBS) $(LIBS1) $(LDFLAGS) ¥
$(ORALIB)
ar rv $(PROGRAM) $(PROGRAM1)
rm -f $(PROGRAM1)
echo "done"
-
DABroker for Javaのデータベース種別にOracle8iを指定して,Oracle 11g R11.1.0またはR11.2.0を使用している場合
ファイル名:/opt/DABroker/sample/oramake8111
表3‒15 Oracle 11g R11.1.0またはR11.2.0サンプルメイクファイル(DABroker for Javaのデータベース種別にOracle8iを指定時) 番号
定義文
1
PROGRAM = libdaO8111.a
1
PROGRAM1 = libdaO8111.o
2
LIBS = -L /opt/DABroker/lib -ldacommon
3
LIBS1 = -lpthreads -bglink:/lib/glink.o -bM:SRE -bexpall ¥
3
-bnoentry -lm -lc_r
3
ORALIB = -L $(ORACLE_HOME)/lib -lclntsh
3
LDFLAGS = -G
4
OBJS = /opt/DABroker/obj/dacd8111.o ¥
4
/opt/DABroker/obj/daO8111.a
5
all: $(PROGRAM)
5
$(PROGRAM): $(OBJS)
echo "Linking $(PROGRAM) ..."
ld -o $(PROGRAM1) $(OBJS) $(LIBS) $(LIBS1) $(LDFLAGS) ¥
$(ORALIB)
ar rv $(PROGRAM) $(PROGRAM1)
rm -f $(PROGRAM1)
echo "done"
-
DABroker ORACLEアクセスライブラリの再作成
サンプルメイクファイルを修正後,次の環境変数を入力し,makeコマンドを実行してください。
(メイクファイル実行手順 Bシェルを使用の場合)
ORACLE_HOME=ORACLE HOMEディレクトリ
export ORACLE_HOME
DABDIR=/opt/DABroker
export DABDIR
-
Oracle 10g R10.1.0またはR10.2.0を使用している場合
make -f Oramake7101(修正後のメイクファイルを実行する)
-
Oracle 11g R11.1.0またはR11.2.0を使用している場合
make -f Oramake7111(修正後のメイクファイルを実行する)
-
DABroker for Javaのデータベース種別にOracle8iを指定して,Oracle 10g R10.1.0またはR10.2.0を使用している場合
make -f Oramake8101(修正後のメイクファイルを実行する)
-
DABroker for Javaのデータベース種別にOracle8iを指定して,Oracle 11g R11.1.0またはR11.2.0を使用している場合
make -f Oramake8111(修正後のメイクファイルを実行する)
-
-
再作成後のORACLEアクセスライブラリをDABrokerのライブラリ格納用ディレクトリにコピーする
makeコマンドを実行したディレクトリ環境下で再作成したORACLEアクセスライブラリを次のようにコピーしてください。
再作成したORACLEアクセスライブラリは,makeコマンドを実行したカレントディレクトリに作成されます。
-
Oracle 10g R10.1.0またはR10.2.0を使用している場合
cp libdaO7101.sl /opt/DABroker/lib/libdaO7101.sl
-
Oracle 11g R11.1.0またはR11.2.0を使用している場合
cp libdaO7111.sl /opt/DABroker/lib/libdaO7111.sl
-
DABroker for Javaのデータベース種別にOracle8iを指定して,Oracle 10g R10.1.0またはR10.2.0を使用している場合
cp libdaO8101.sl /opt/DABroker/lib/libdaO8101.sl
-
DABroker for Javaのデータベース種別にOracle8iを指定して,Oracle 11g R11.1.0またはR11.2.0を使用している場合
cp libdaO8111.sl /opt/DABroker/lib/libdaO8111.sl
-
-
DABrokerの再セットアップ
作成したORACLEアクセスライブラリを/opt/DABroker/libにコピーした後,再度,DABrokerのセットアップコマンドを実行してください。