目次 | 前の項目 | 次の項目 JDBCTM ガイド: 使用の開始


10 - JDBC-ODBC ブリッジドライバ

10.1    JDBC-ODBC ブリッジ

可能であれば、ブリッジや ODBC ドライバの代わりに純正の Java JDBC ドライバを使用します。これにより、ODBC が必要とするクライアント構成が完全に除去されます。また、ブリッジがもたらしたネイティブコード (たとえば、ブリッジネイティブライブラリ、ODBC ドライバマネージャライブラリ、ODBC ドライバライブラリ、およびデータベースクライアントライブラリ) の中のエラーによって Java VM が破壊される可能性もなくなります。

10.1.1     JDBC-ODBC ブリッジとは

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

10.1.2     サポートされている ODBC のバージョン

このブリッジは、ODBC 2.x をサポートします。これは、ほとんどの ODBC ドライバが現在サポートするバージョンです。また、将来の ODBC 3.x ドライバのほとんどでも機能すると思われますが、まだテストはされていません。

10.1.3     ブリッジの実装

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

10.1.4     インストール

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

10.2    ブリッジの使用

ブリッジは、URL を odbc サブプロトコルとともに使用し、JDBC 接続を開いて使用されます。URL の例については以下を参照してください。接続が確立される前に、ブリッジドライバクラス sun.jdbc.odbc.JdbcOdbcDriver は、jdbc.drivers という名前の java.lang.System プロパティに追加するか、Java クラスローダを使用して明示的にロードする必要があります。明示的ロードは、コードの以下の行によって行われます。
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
ロードすると、ODBC ドライバは (すべての優れた JDBC ドライバと同様に)、それ自体のインスタンスを生成し、これを JDBC ドライバマネージャを使用して登録します。

10.2.1     アプレットからのブリッジの使用

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

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

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

10.2.3     テスト済み構成

Solaris からは、ブリッジを使用して、Solaris 上で稼動する Oracle 7.1.6 および Sybase Version 10 にアクセスしました。NT からは、ブリッジを使用して SQL Server 6.x にアクセスしました。

10.2.4     ブリッジと動作する ODBC

Visigenic は、このブリッジでテストされた ODBC ドライバを提供します。ドライバは、Oracle、Sybase、Informix、Microsoft SQL Server、および Ingres に対して使用可能です。ODBC DriverSet 2.0 を購入するには、415-312-7197 で Visigenic の販売担当者に連絡するか、Web サイト www.visigenic.com にアクセスしてください。INTERSOLV ODBC ドライバスイートは、JDBC-ODBC ブリッジと互換性があります。Oracle、xBASE、Sybase (Windows NT/95 だけ)、Microsoft SQL-Server、および Informix のドライバは、最小テストスイートを正常に通過しました。INTERSOLV ODBC ドライバの評価または購入については、1-800-547-4000 のオプション 2、または WWW サイト http://www.intersolv.com 経由で INTERSOLV DataDirect Sales に連絡してください。MS SQL Server ドライバもまた NT 上で正常に使用できました。ほかの多くの ODBC ドライブも同様に機能します。

10.2.5     ODBC ドライバの非互換性

Solaris では、Sybase ctlib ベースドライバが機能しないことがわかっています。これは ctlib が Java VM と信号処理上競合するからです。NT では、NT Java VM が異なるため、これは問題ではないようですが、確認されてはいません。

ODBC ドライバの中には、1 つのコネクションにつき 1 つの結果セットだけをアクティブにすることを許可するものがあります。

10.2.6     ブリッジにサポートされている 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

10.2.7     デバッグ

ブリッジは、DriverManager 追跡を有効にすると広範な追跡を行います。コードの以下の行は、追跡を有効にし、それを標準出力に出力します。

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

10.3    一般的な参考情報

このブリッジは、ODBC ドライバが再入可能でないことを前提としています。つまりブリッジは、これらのドライバへのアクセスと同期する必要があります。結果、ブリッジの同時使用には限界があります。これはブリッジの限界です。ほとんどの Pure Java JDBC ドライバは、期待されるレベルの同時アクセスを提供します。



目次 | 前の項目 | 次の項目
jdbc@wombat.eng.sun.com または jdbc-odbc@wombat.eng.sun.com
Copyright (C) 1996, 1997 Sun Microsystems, Inc. All rights reserved.