[Top] [Prev] [Next]

9 - JDBC-ODBC Bridge Driver

9.1   JDBC ドライバの取得

データベースベンダー、データベースミドルウェアベンダーなどのベンダーから商用の JDBC ドライバを取得することをお勧めします。現在入手できるドライバのリストをチェックしてください。

JDBC-ODBC ブリッジドライバは、試験用として、またはほかに代わりとなるドライバが利用できない場合にだけ使用することをお勧めします。

9.2    JDBC-ODBC ブリッジ

可能であれば、ブリッジや ODBC ドライバではなく、Pure Java JDBC ドライバを使用してください。Pure Java JDBC ドライバを使用すると、ODBC が必要とするクライアント側の設定を実行しなくて済みます。また、ブリッジに付属するネイティブコード (たとえば、ブリッジネイティブライブラリ、ODBC ドライバマネージャライブラリ、ODBC ドライバライブラリ、およびデータベースクライアントライブラリ) 内のエラーによって Java VM が汚染される可能性もなくなります。

JDBC-ODBC ブリッジドライバは、プロトタイプの開発段階、および JDBC テクノロジをベースにしたドライバがほかに存在しない場合にだけ使用することをお勧めします。すべて Java で記述された商用の JDBC ドライバが利用できる場合は、ブリッジではなくそのドライバを使用することをお勧めします。

9.2.1     JDBC-ODBC ブリッジの概要

JDBC-ODBC ブリッジは、JDBC ドライバの 1 つです。このドライバは、JDBC 操作を ODBC 操作に翻訳することで JDBC 操作を実装します。ODBC には、このドライバが通常のアプリケーションプログラムとみなされます。このブリッジは、ODBC ドライバが使用可能なあらゆるデータベースに JDBC を実装しています。このブリッジは、sun.jdbc.odbc Java パッケージとして実装され、ODBC にアクセスするために使用されるネイティブライブラリが含まれています。ブリッジは Merant と Java ソフトウェアが共同で開発したものです。

9.2.2     ODBC の互換性とサポートされる ODBC バージョン

Solaris では、JDBC 2.0 ブリッジは ODBC 3.x ドライバマネージャと一緒に使用する必要があります。このブリッジは ODBC 2.x と ODBC 3.x の両方のドライバをサポートしていますが、ODBC 3.x ドライバを使ったテストだけが行われています。

NT では、JDBC 2.0 ブリッジは、ODBC 2.x および ODBC 3.x の、ドライバマネージャおよびドライバをサポートしています。JDBC 2.0 ブリッジのテストは、ODBC 3.x のドライバマネージャを使用し、かつ、ODBC 2.x および 3.x のドライバを使用して行われています。

Merant は、バージョン 3.5 以上の Merant DataDirect ODBC ドライバとともに JDBC 2.0 ブリッジを使用することを推奨しています。

9.2.3     ブリッジの実装

このブリッジは、Java 言語で実装され、ODBC を呼び出すのに、Java ネイティブメソッドを使用しています。

9.2.4     インストール

このブリッジは、JDK のインストール時にパッケージ sun.jdbc.odbc として自動的にインストールされます。ODBC のインストールと設定についての詳細は、ODBC ドライバベンダーにお問い合わせください。ブリッジのための特別な設定は必要ありません。クライアントのインストールと設定についての詳細は、データベースベンダーにお問い合わせください。Solaris では、一部の ODBC ドライバマネージャは、それぞれのライブラリに libodbcinst.so および libodbc.so といった名前を付けます。このブリッジは、これらのライブラリが libodbcinst.so.1 および libodbc.so.1 と命名されていると想定しているので、これらの名前に対してシンボリックリンクを作成する必要があります。

9.3    ブリッジの使用

このブリッジを使用する場合は、URL および odbc サブプロトコルを使用して JDBC 接続を開きます。URL の例については以下を参照してください。接続が確立される前に、ブリッジドライバクラス sun.jdbc.odbc.JdbcOdbcDriver を、jdbc.drivers という名前の java.lang.System プロパティに追加しておくか、Java クラスローダを使用して明示的にロードしておく必要があります。明示的なロードは、次のコードによって行われます。

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
ODBC ドライバ (すべての適した JDBC ドライバなど) は、ロードされると、自身のインスタンスを作成し、これを JDBC ドライバマネージャに登録します。

9.3.1     アプレットのブリッジの使用

Pure Java JDBC ドライバで使用される JDBC は、アプレットの使用時に正常に動作します。ブリッジドライバはアプレットとともに正常に動作しません。

9.3.2     ほとんどのブラウザはブリッジをサポートしていない

ブリッジは JDK のオプションの構成要素なので、ブラウザによって提供されないこともあります。提供されていても、そのブリッジを使用することができるのは、信頼できるアプレット (ファイルに書き込むことができるアプレット) だけです。これは、アプレットサンドボックスのセキュリティを確保するために必要です。さらに、アプレットが信頼できても、ODBC と DBMS クライアントライブラリが各クライアント上で設定されている必要があります。

9.3.3     テスト済み構成

Solaris からは、Merant 社製 ODBC ドライバのバージョン 3.5 を使用し、ブリッジを使って Oracle 8.1.5 にアクセスしました。NT からは、Microsoft 社の最新の ODBC ドライバを使用し、ブリッジを使って SQL Server 6.x にアクセスしました。

9.3.4     ブリッジとともに動作することが確認されている

ODBC ドライバは、Oracle、Sybase、Informix、Microsoft SQL Server、および Ingres で使用可能です。MERANT ODBC ドライバスイートは、JDBC-ODBC ブリッジと完全な互換性があります。MERANT ODBC ドライバの評価または購入については、1-800-547-4000 のオプション 2、または WWW サイト http://www.merant.com 経由で MERANT DataDirect Sales に連絡してください。MS SQL Server ドライバもまた NT 上で正常に使用できました。ほかの多くの ODBC ドライバも同様に機能します。

9.3.5     ブリッジによってサポートされている JDBC の URL

ブリッジドライバは odbc サブプロトコルを使用します。このサブプロトコルの URL は以下の形式をとります。

    jdbc:odbc:<data-source-name>[<attribute-name>=<attribute-value>]* 
例:

    jdbc:odbc:sybase     jdbc:odbc:mydb;UID=me;PWD=secret     jdbc:odbc:ora123;Cachesize=300 

9.3.6     デバッグ

このブリッジは、DriverManager トレースが有効になっている場合、拡張的なトレースを行います。以下のコード例でトレースが有効にされ、結果は標準出力に出力されます。

     java.sql.DriverManager.setLogStream(java.lang.System.out); 

9.4    ブリッジでサポートされている JDBC 2.0 API の新しい機能

このリリースの JDBC-ODBC ブリッジドライバは、JDBC 2.0 API の次の新しい機能をサポートしています。

ブリッジの現在のリリースはマルチスレッドの ODBC ドライバをサポートしており、多数のバグが修正されています。


[先頭の項目] [前の項目] [次の項目]

jdbc@wombat.eng.sun.com または jdbc-odbc@wombat.eng.sun.com
Copyright © 1996 - 1999 Sun Microsystems, Inc. All rights reserved.