Hitachi

DABroker


3.11.4 Red Hat Linuxの場合

〈この項の構成〉

(1) 適用範囲

ORACLEアクセスライブラリを作成する機能は,次の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に戻してから実行してください。

  1. DABroker既存ライブラリのバックアップ

    DABrokerの既存ライブラリのバックアップを次のように取得してください。

    cd /opt/DABroker/lib

    • Oracle 10g R10.1.0またはR10.2.0を使用している場合

      mv libdaO7101.a libdaO7101.a_bk

    • Oracle 11g R11.1.0またはR11.2.0を使用している場合

      mv libdaO7111a libdaO7111.a_bk

    • DABroker for Javaのデータベース種別にOracle8iを指定して,Oracle 10g R10.1.0またはR10.2.0を使用している場合

      mv libdaO8101.a libdaO8101.a_bk

    • DABroker for Javaのデータベース種別にOracle8iを指定して,Oracle 11g R11.1.0またはR11.2.0を使用している場合

      mv libdaO8111.a libdaO8111.a_bk

  2. 提供サンプルメイクファイルの修正

    DABrokerでは,表3-36〜39に示す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‒36 Oracle 10gサンプルメイクファイル

      番号

      定義文

      1

      PROGRAM   = libdaO7101.so

      2

      LIBS    = -L $(DABDIR)/lib -ldacommon

      3

      ORALIB   = -L$(ORACLE_HOME)/lib -L$(ORACLE_HOME)/rdbms/lib -lclntsh

      3

      LDFLAGS   = -ldl -lnsl -lpthread -G

      4

      OBJS    = $(DABDIR)/obj/dacdcntl.o $(DABDIR)/obj/daO7101.a

      5

      all:    $(PROGRAM)

      5

      $(PROGRAM): $(OBJS)

      echo "Linking $(PROGRAM) ..."

      ld -o $(PROGRAM) $(OBJS) $(LIBS) $(ORALIB) $(LDFLAGS)

      echo "done"

    • Oracle 11g R11.1.0またはR11.2.0を使用している場合

      ファイル名:/opt/DABroker/sample/oramake7111

      表3‒37 Oracle 11gサンプルメイクファイル

      番号

      定義文

      1

      PROGRAM   = libdaO7111.so

      2

      LIBS    = -L $(DABDIR)/lib -ldacommon

      3

      ORALIB   = -L$(ORACLE_HOME)/lib -L$(ORACLE_HOME)/rdbms/lib -lclntsh

      3

      LDFLAGS   = -ldl -lnsl -lpthread -G

      4

      OBJS    = $(DABDIR)/obj/dacdcntl.o $(DABDIR)/obj/daO7111.a

      5

      all:    $(PROGRAM)

      5

      $(PROGRAM): $(OBJS)

      echo "Linking $(PROGRAM) ..."

      ld -o $(PROGRAM) $(OBJS) $(LIBS) $(ORALIB) $(LDFLAGS)

      echo "done"

    • DABroker for Javaのデータベース種別にOracle8iを指定して,Oracle 10g R10.1.0またはR10.2.0を使用している場合

      ファイル名:/opt/DABroker/sample/oramake8101

      表3‒38 Oracle 10gサンプルメイクファイル(DABroker for Javaのデータベース種別にOracle8iを指定時)

      番号

      定義文

      1

      PROGRAM   = libdaO8101.so

      2

      LIBS    = -L $(DABDIR)/lib -ldacommon

      3

      ORALIB   = -L$(ORACLE_HOME)/lib -L$(ORACLE_HOME)/rdbms/lib -lclntsh

      3

      LDFLAGS   = -ldl -lnsl -lpthread -G

      4

      OBJS    = $(DABDIR)/obj/dacd8101.o $(DABDIR)/obj/daO8101.a

      5

      all:    $(PROGRAM)

      5

      $(PROGRAM): $(OBJS)

      echo "Linking $(PROGRAM) ..."

      ld -o $(PROGRAM) $(OBJS) $(LIBS) $(ORALIB) $(LDFLAGS)

      echo "done"

    • DABroker for Javaのデータベース種別にOracle8iを指定して,Oracle 11g R11.1.0またはR11.2.0を使用している場合

      ファイル名:/opt/DABroker/sample/oramake8111

      表3‒39 Oracle 11gサンプルメイクファイル(DABroker for Javaのデータベース種別にOracle8iを指定時)

      番号

      定義文

      1

      PROGRAM   = libdaO8111.so

      2

      LIBS    = -L $(DABDIR)/lib -ldacommon

      3

      ORALIB   = -L$(ORACLE_HOME)/lib -L$(ORACLE_HOME)/rdbms/lib -lclntsh

      3

      LDFLAGS   = -ldl -lnsl -lpthread -G

      4

      OBJS    = $(DABDIR)/obj/dacd8111.o $(DABDIR)/obj/daO8111.a

      5

      all:    $(PROGRAM)

      5

      $(PROGRAM): $(OBJS)

      echo "Linking $(PROGRAM) ..."

      ld -o $(PROGRAM) $(OBJS) $(LIBS) $(ORALIB) $(LDFLAGS)

      echo "done"

  3. 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(修正後のメイクファイルを実行する)

  4. 再作成の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

  5. DABrokerの再セットアップ

    作成したORACLEアクセスライブラリを/opt/DABroker/libにコピーしたあと,再度,DABrokerのセットアップコマンドを実行してください。