目次 | 前項目 | 次項目 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 と JavaSoft のジョイント開発です。

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     アプレットからのブリッジの使用

純正 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 ドライバがリエントラントでないことを前提としています。つまりブリッジは、これらのドライバへのアクセスと同期する必要があります。結果、ブリッジの同時使用には限界があります。これはブリッジの限界です。ほとんどの純正 Java JDBC ドライバは、期待されるレベルの同時アクセスを提供します。



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