Oracle データベースへの接続

Oracle の ColdFusion データ ソースは、ODBC ドライバおよびネイティブ ドライバを使用して、Windows NT および UNIX のどちらでも使用できるように設定できます。


メモ

ColdFusion では、Oracle 7.3.4 および Oracle 8.0.4 以降がサポートされています。


Oracle 7.3.4/8.0.x オプションの設定 (Windows)

ColdFusion Server のEnterprise版が Windows NT サーバにインストールされている場合、ネイティブ ドライバを使用して Oracle を ColdFusion データ ソースとして設定することができます。

ネイティブ ドライバ: Oracle 7.3.4 および 8.0.x オプション (Windows)

次の表では、Windows NT 環境における、Oracle 7.3.4 および 8.0.x 用のネイティブ ドライバ データ ソースに関する ColdFusion ネイティブ ドライバ オプションが説明されています。
オプション
説明
[データ ソース名]
データ ソースの名前
[説明]
データ ソースについての説明
[ホスト文字列]
Oracle Net8 Easy Config ユーティリティを使って作成されたデータベースのエイリアスを入力します。 接続するデータベースのエイリアスを検索するには、Oracle Net8 Easy Config ユーティリティを使います。

Oracle 7.3.4/8.0.x オプションの設定 (UNIX)

ColdFusion Server のEnterprise版が Solaris サーバにインストールされている場合は、ネイティブ ドライバを使用して Oracle を ColdFusion データ ソースとして設定することができます。

ネイティブ ドライバ: Oracle 7.3.4 および 8.0.x オプション (UNIX)

次の表では、UNIX 環境における Oracle 7.3.4 および 8.0.x のネイティブ ドライバ データ ソースに関する ColdFusion ネイティブ ドライバ オプションが説明されています。
オプション
[説明]
[データ ソース名]
データ ソースの名前
[説明]
データ ソースについての説明
[ホスト文字列]
Oracle Net8 Easy Config ユーティリティを使って作成されたデータベースのエイリアスを入力します。 データベースのデータベース エイリアスは、Oracle Net8 Easy Config ユーティリティを使用して探すことができます。

ODBC ドライバ: MERANT Oracle 7.3.4 および 8.0.x オプション (UNIX)

次の表は、UNIX で実行する MERANT Oracle 7.3 および MERANT Oracle 8.0 x ODBC ドライバのColdFusion の ODBC ドライバ オプションを示しています。
オプション
説明
[データ ソース名]
データ ソースの名前
[説明]
データ ソースについての説明
[接続文字列]
アクセスするサーバおよびデータベースを示すクライアント接続文字列

Oracle 7.3.4 および 8.0.x データベースへの接続(UNIX)

ColdFusion アプリケーションを Oracle 7.3.4 および 8.0.x データベースに接続するには、その前に Oracle クライアント ソフトウェアをインストールしなければなりません。

/opt/coldfusion/bin/start スクリプトを変更して ORACLE_HOME 環境変数が含まれるようにしてから、$ORACLE_HOME/lib ディレクトリを LD_LIBRARY_PATH パスに追加する必要があります。 たとえば、"/opt/coldfusion/bin/start スクリプト"を参照してください。 すべてのバージョンにおいて、$CFHOME/bin/start スクリプトを編集してください。 環境変数 LD_LIBRARY_PATH は、ColdFusion で使用される libclntsh.so ファイルを含むディレクトリを指示していなければなりません。

libclntsh.so ファイルが、http://www.coldfusion.com からダウンロードしたスクリプトを使用する $CFHOME/lib の中に作成されている場合、LD_LIBRARY_PATH 変数では、$ORACLE_HOME/lib より前に $CFHOME/lib のエントリが含まれていなければなりません。たとえば§次のようになります。

LD_LIBRARY_PATH = $CFHOME/lib:$ORACLE_HOME/lib:other_database_library_paths...

libclntsh.so ファイルが $ORACLE_HOME/lib の中にある場合、このディレクトリにはただ 1 つのエントリが必要です。たとえば、次のようになります。

LD_LIBRARY_PATH = $ORACLE_HOME/lib:other_database_library_paths...

メモ

$CFHOME/odbc/src/oracle の中の readme.ora ファイルでは、$ODBC_HOME が誤っ て $CFHOME と記述されています。


以下を確認してください。

Example

tnsnames.ora ファイルの例は、次のとおりです。

scup=
  (DESCRIPTION=
    (ADDRESS=
      (PROTOCOL=TCP)
      (HOST=scup)
       (PORT=1521))
     (CONNECT_DATA=(SID=WG73)))

コードは、次の表のとおりです。
コード
説明
scup=
ColdFusion Administrator における接続文字列名の設定
(HOST=scup)
HOST=205.185.22.33 と同様の IP アドレス
PORT=1521
TCP リスナが割り当てられているポート これを識別するには、Oracle サーバがインストールされている。UNIX コンピュータの /etc/services ファイルを見てください。
SID=WG73
データベース識別子 Oracle 管理者に問い合わせてください。 これらはデータベースをインストールする際に設定してください。

この節の手順をすべて完了したら、ColdFusion サービスを停止して再開始し、odbc.ini ファイルを再度読み込む必要があります。

/opt/coldfusion/bin/start スクリプト

#!/bin/sh
# start - setup environment and run ColdFusion servers
# This script should be run as root.# Set during install
CFHOME=/opt/coldfusion
# Sybase Open Client directory
SYBASE=/work/sybclient11.1
# Oracle SQL *Net RDBMS directory
# See CFHOME/odbc/src/oracle for script to build library
ORACLE_HOME=/opt/oracle7
# Set library search path
#
# NOTE: Add your database client library directory to the FRONT of this list
#
# Example: 
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$SYBASE/lib:/usr/dt/lib:/lib:/usr/openwin/
lib:$CFHOME/lib
# This is the list of variables that ColdFusion will see
# Add any special Database environment varaibles here
VAR_LIST="LD_LIBRARY_PATH CFHOME SYBASE ORACLE_HOME INFORMIXDIR 
INFORMIXSERVER II_SYSTEM"
#======================================================
# You should not need to touch anything below this point
#======================================================

環境変数 CFHOME と ORACLE_HOME は、ColdFusion のインストール ディレクトリ(通常は /opt/coldfusion)および Oracle クライアント ソフトウェア のインストール ディレクトリ(/opt/oracle8 など)を指示すると想定されます。

Oracle の $ORACLE_HOME/rdbms/lib ディレクトリ にある genclntsh スクリプトを使用し、次の Oracle 操作手順に従って、libclntsh.so ライブラリを $ORACLE_HOME/lib ディレクトリ内に作成してください。

Oracle トラブルシューティング

ColdFusion が Oracle 7.3.4 ドライバに接続できない場合は、次の処理を実行します。

Oracle Net8 Easy Config に入力された基本情報が正しいにもかかわらず接続テストに失敗した場合は、ローカルの Oracle 8 データベース管理者(DBA) へ問い合わせてください。 まず、 ホスト名、SID、ユーザ名およびパスワードといった基本接続情報をチェックしてください。 Net8 Easy Config ユーティリティを使うか、または、tnsnames.ora ファイルを直接検査して、基本情報を確認することができます。

また、UNIX の場合は、Oracle クライアント ライブラリがあり、coldfusion/bin/start スクリプト内に ORACLE_HOME が定義されているか確認してください。

ODBC による Oracle 8.0.x への接続 (UNIX)


メモ

UNIX で実行されている ColdFusion で Oracle 8.0.4 および 8.0.5 x のデータベースを使 用するには、libclntsh.so 共有オブジェクト ファイルを作成する必要があります。 Oracle 8.0.6 through 8.1.x では、Oracle がインストールされる際に libclntsh.so ファイ ルが $ORACLE_HOME/lib. 内に作成されるため、何もする必要はありません。


ColdFusion では、Oracle 8.0.4 以降がサポートされています。


Oracle 8.0.4 および 8.0.5 対応バージョンの libclntsh.so を構築するには

  1. シェルで、ORACLE_HOME、CFHOME、LD_LIBRARY_PATH のすべてを start スクリプトの設定と同様に設定します。
  2. $CFHOME/odbc/src/oracle から、スクリプト ./genclntsh8 を実行します。

    このスクリプトによって、libclntsh.so が新しく $CFHome/lib 内に作成され、 $CFHome/lib へ移されます。


    メモ

    Oracle 8 を使用している場合は、$ORACLE_HOME/lib ディレクトリに元の libclntsh.so ライブラリがあります。 したがって、$CFHOME/bin/start スクリプト の LD_LIBRAY_PATH を作成する場合には、正しいライブラリが含まれている $CFHOME/lib ディレクトリが、$ORACLE_HOME/lib の前の LD_LIBRARY_PATH になければなりません。 そうでなければ元のバージョンの Oracle が読み込まれ、エ ラーが発生します。


Oracle 7.3.4 Native Driver のトラブルシューティング (Windows)

Win32 システム上で Oracle 7.3.4 ネイティブ ドライバを使用する場合、次のようなエラーが発生する可能性があります。

エラー診断情報
Oracle エラー コード = 0 
内部エラー: データ アクセス マネージャは、Oracle 環境の初期化に失敗しました。 
このエラーは、(CFQUERY) の汎用識別子を使用して要素を処理しているときに発生し、ドキュメ
ント ポジション (3:1) から (3:50) を占有しました。 

このエラーは、次のような場合、Oracle 7.3.4 ネイティブ ドライバにて発生することもあります。

問題の診断および解決

  1. サーバに、SQL*Net 7.3.4.0 以降がインストールされているかを確認します。
  2. ユーザの winnt¥system32 ディレクトリに、ファイル ociw32.dll が含まれていることを確認します。

Oracle 8 クライアントの設定 (Windows および UNIX)

この節では、Oracle 8 ネイティブ データベース ドライバを UNIX または WindowsNT で使用する際に必要な、一般的な設定手順について説明します。 この手順は、Oracle 8 Client のバージョン 8.0.4.0.0 を使用して説明されています。

起動する前に、次の情報を手元に用意しておきます。

Oracle 8 における ColdFusion ネイティブ ドライバの使用

  1. 必要なクライアント ソフトウェアをインストールします。
  2. SQL Net Easy Configuration ユーティリティを使って、データベースのエイリアスを作成します。

    このユーティリティの UNIX 版は、$ORACLE_HOME/bin/net8wiz.sh にあります。

  3. ColdFusion Administrator の「ネイティブ ドライバ」ページ内で、データ ソースを作成します。
  4. coldfusion/bin/start スクリプトを編集して、次の値を加えます。

Oracle 8 Client のインストール方法

  1. Oracle 8 Client ソフトウェアをインストールします。
  2. データベース管理オプションまたはアプリケーション ユーザ オプションを選択します。 この例では、アプリケーション ユーザを選択します。
  3. オプションの設定手順を実行していくと、システム上で実行中 Oracle サービスが停止し、オンライン マニュアルをどこにインストールするかが選択されます。

Oracle Net8 Easy Config ユーティリティの実行

次の手順では、ColdFusion Administrator 内でデータ ソースを作成するときに、Oracle データベースを参照するときに使うエイリアスを作成します。 データベースのエイリアスを作成すると、tnsnames.ora という名前のコンフィギュレーション ファイルに、すべてのデータベース接続情報が書き込まれます。

Oracle Net8 Easy Config ユーティリティの実行

  1. Oracle Net8 Easy Config ユーティリティを開きます。

    Windows NT 環境のサーバでは、Oracle for Windows NT のプログラムグループの 中にアイコンが表示されます。 UNIX では、このユーティリィティは $ORACLE_HOME/bin/net8wiz.sh にあります。

  2. 新しいサービス名を入力して、[次へ] をクリックします。

  3. ダイアログ ボックス内で、接続するネットワーク プロトコルに応じて TCP/IP を選択します。 ColdFusion アプリケーション で使用する Oracle 8 データベースを選択します。
  4. ダイアログ ボックス内に、Oracle 8 データベースがあるサーバのホスト名を入力します。 次の数値は、ポート番号の既定値です。

  5. ホスト名を入力した後、特定の Oracle データベース インスタンスを識別するためのデータベース SID を入力します。

    既定値は ORCL ですが、実際のデータベース SID は異なることがあります。 詳細に ついては、データベース管理者に問合わせてください。

  6. 次のダイアログボックスでは、作成したデータベース サービスがテストされます。

    ユーザ名とパスワードを入力してデータベースにアクセスし、Oracle データベース への接続をテストしてください。 ユーザ名およびパスワードが不明の場合は、デー タベース管理者に問い合わせてください。

ColdFusion でのデータ ソースの作成

ColdFusion 内でデータ ソースを作成します。

データ ソースの作成

  1. [ColdFusion Administrator] を開いて、データソースである「ネイティブ ドライバ」ページに移動します。
  2. データ ソース名を入力して、ドロップダウン リストから Oracle 8 ネイティブ ドライバを選択します。
  3. [追加] ボタンをクリックすると、ColdFusion 上で「データ ソースの設定」ページが開きます。 ここで、ColdFusion に、データベースの場所についての情報を指示します。 正しく接続するためには、次のオプションが最も重要です。
  4. データ ソースが作成されたら、ColdFusion Administrator の「データ ソースを確認」ページを開き、ColdFusion が Oracle 8 データベースに接続できるかどうか確認します。