DB 2のjdbcドライバの4種類の紹介------やっとWebsphereプロジェクトがTomcatに移る問題を解決しました(この文はすばらしいので、転載して保留します)


JDBCドライバの秘密
Javaを混同する一般的な根源は、JDBCには異なるバージョンがあり、JDBCドライバには異なるタイプがあり、異なるバージョンのJavaで使用できます.また、新しいJava仕様は常に開発中であり、Javaコミュニティプロセス(Java Community Process)を通じて、http://www.jcp.org)、関連する機能がどんどん拡張されています.
JDBCバージョン
DB 2汎用データベースV 8.1は、JDBC V 2.1仕様および一部のJDBC 3.0仕様をサポートする.汎用JDBCドライバを使用して、JDBC 3.0のニーズを全面的にサポートする計画が進められています.
JDBCドライバはJ 2 EEソリューションのコンポーネントとして認証された.ドライバ認証の結果は、常にSun互換性Webサイトに公開されます.
JDBCドライバアーキテクチャ
JDBCドライバアーキテクチャは4つのタイプに分けられます.
  • Type 1
  • Type 2
  • Type 3
  • Type 4

  • JDBC Type 1ドライバ
    JDBC Type 1ドライバはJDBC-ODBCブリッジに基づく.したがって、ODBCドライバは、このようなJDBCドライバ(Sunによって提供される)と組み合わせて使用することができる.IBMはType 1ドライバをサポートしていないため、推奨される環境ではありません.【図1】JDBC Type 1ドライバの一例を示す図である.
    図1.JDBC Type 1ドライバ
    JDBC Type 2ドライバ
    JDBC Type 2ドライバは、オペレーティングシステム固有のライブラリ(共有ライブラリ)に依存してRDBMSと通信する.アプリケーションはこのJDBCドライバを読み込み、ドライバは共有ライブラリを使用してDB 2サーバと通信します.DB2 UDB for Linux, UNIX® およびWindows® V 8.1には、2つの異なるタイプ2ドライバが用意されています.
  • 古い/CLI JDBCドライバは、ファイルdb2java.zipに提供される.現パッケージ名はCOM.ibm.db2.jdbc.app.DB2Driverです.このドライバは現在J 2 EE認証に使用されている.別名「appドライバ」は、リモート・データベースのローカルDB 2 UDBクライアントを介してローカル接続を実行するというコンセプトとそのパッケージ名に由来します.
  • 汎用JDBCドライバは、ファイルdb2jcc.jarに提供される.現パッケージ名はcom.ibm.db2.jcc.DB2Driverです.このドライバは、DB 2 UDB for Linux、UNIX、Windows V 8.1の新機能です.最初のインプリメンテーション(V 8.1)では、このドライバはType 4ドライバアーキテクチャを使用してDB 2サーバに直接Java接続するために使用される.DB 2 V 8.1.2では、Type 2アーキテクチャでこのドライバを使用できます.Type 2アーキテクチャでこのドライバを使用する主な理由の1つは、ローカルアプリケーションのパフォーマンスと分散トランザクションのサポートです.汎用JDBC Type 2ドライバは、分散トランザクションおよび接続プールをサポートするために、それぞれcom.ibm.db2.jcc.DB2XADataSourceおよびcom.ibm.db2.jcc.DB2ConnectionPoolDataSourceを使用します.

  •  
    JDBC Type 2ドライバを使用してJDBCアプリケーションをサポートできます.WebSphere Application Serverでは、この2つのタイプ2ドライバが同時にサポートされています.注意:古い/CLI Type 2ドライバは、将来のバージョンでは強化されません.
    【図2】JDBC Type 2ドライバを用いたアプリケーションの典型的なトポロジーを示す図である.
    図2.JDBC Type 2ドライバを用いたアプリケーション
    JDBC Type 3ドライバ
    JDBC Type 3ドライバは、DB 2データにアクセスするには、DB 2 JDBC Appletサーバ(DB 2 JDBC Applet Server)と通信する必要がある純粋なJava実装です.このようなドライバは、Java appletがDB 2データソースにアクセスできるようにすることを目的としています.図3に示す態様では、アプリケーションは、DB 2クライアントがインストールされた別の機器と通信する.
    図3.Type 3 JDBCドライバを用いた一般的なアプリケーションスキーム
    JDBC Type 3ドライバは、パッケージ名COM.ibm.db2.jdbc.netに基づいて命名された「ネットワーク(net)ドライバ」と呼ばれることが多い.DB 2 V 8.1は、JDBCアプリケーションで使用できるネットワークドライバをサポートしています.
    Type 3ドライバは、db2java.zipドライバが常にDB 2 Appletサーバと同じメンテナンスレベルであることを要求します.ドライバがapplet内で使用されている場合は、ブラウザがアプリケーションの実行中に対応するdb2java.zipファイルをダウンロードするため、問題ではありません.多くのお客様は、Type 2ドライバではなくType 3ドライバを使用して、古い/CLIドライバを使用してType 2接続を行うために必要なデータベースディレクトリ情報を作成するために必要なDB 2クライアントのインストールと必要なDB2 CATALOG DATABASEコマンドを回避します.WebSphere Application Serverおよび他のJ 2 EEサーバでは、分散トランザクション(JTA)がサポートされていないため、IBM Type 3ドライバは現在サポートされていません.将来のバージョンではType 3ドライバは強化されません.
    Type 3ドライバの代わりに汎用JDBC Type 4ドライバを使用することを奨励します.
    JDBC Type 4ドライバ
    Type 4ドライバは、Java専用のJDBCドライバであり、データベースサーバに直接接続されている.DB 2 UDB for Linux,UNIX,Windows V 8.1には「ユニバーサルJDBCドライバ(Universal JDBC driver)」と呼ばれるType 4ドライバが導入されている.汎用JDBCドライバは、ファイルdb2jcc.jarに提供される.その実装パッケージ名はcom.ibm.db2.jcc.DB2Driverである.
    汎用Type 2と汎用Type 4ドライバは、同じ実装クラス名を持つことに注意してください.DB 2が内部でどのドライバをインスタンス化するかを区別する方法は2つあります.
  • 接続プロパティを使用して、接続が共有ライブラリ(Type 2)を使用するかどうか、またはドライバがJavaアプリケーションからの直接接続を開始するかどうかを決定します(Type 4).
  • は、異なる接続URLモードを使用して、Type 2とType 4の動作のどちらが望ましいかを示します.Type 4 URLモードの例:文字列「jdbc:db2://server1:50000/sample」は、JavaアプリケーションがDB 2サーバ(ホスト名server 1)上に構成されたDB 2インスタンスに存在する「sample」というデータベースに直接接続することをJDBCドライバに要求し、DB 2サービスはポート50000上でリスニングする.Type 2 URLパターンの例:文字列「jdbc:db2:sample」.DB 2サーバ(「server 1」)とポート(「50000」)に関する情報は、DB 2クライアントカタログにあります.

  •  
    汎用JDBCドライバは、ドライバタイプの接続性やターゲットプラットフォームに関係のない抽象的なJDBCプロセッサです.汎用JDBCドライブは、分散型およびローカルDB 2 UDBアクセス用のアーキテクチャに依存しないJDBCドライバです.汎用JDBCドライバは、任意の特定のJDBCドライバタイプの接続性またはターゲットプラットフォームとは独立しているため、1つのDB 2 UDBドライバインスタンスですべてのJava接続性(Type 4ドライバ)とJNIベースの接続性(Type 2ドライバ)を同時にサポートします.このドライバは、独立したJavaアプリケーションまたは多層アプリケーションで使用できます.
    重要:DB 2 UDB V 8.1.2について、汎用JDBCドライバはCLASSPATHにライセンスJARファイルとdb2jcc.jarファイルがあることを要求する.以下は必要なライセンスJARファイルです.
  • Cloudscape™ Network Server V5.1: db2jcc_license_c.jar
  • DB 2 UDB V 8 for Linux、UNIX、Windowsサーバ:db2jcc_license_su.jar
  • DB 2 UDB for iSeries® and z/OSサーバ(DB 2 ConnectおよびDB 2 Enterprise Server Editionとともに提供):db2jcc_license_cisuz.jar
  •  
    汎用ドライバは、ターゲット・サーバにインストールされている必須ストレージ・プロシージャを使用して、データベース・メタデータ・ディレクトリを問合せ、サーバ・エラー・メッセージ・テキストを取得できます.
  • Linux、UNIX、およびWindows上のUDB V 8については、これらのストレージ・プロシージャが予めインストールされている.
  • DB 2 UDB for OS/390® V 6は、PTF UQ 72081とUQ 72082を取り付ける必要があります.
  • DB 2 UDB for OS/390 and z/OSV 7には、PTF UQ 72083をインストールする必要があります.まもなく発売されるz/OS上のDB 2 UDB V 8には、必要なストレージプロセスが予めインストールされています.
  • DB 2 UDB for iSeries V 5 R 1には、PTF SI 06308、SI 06300、SI 06301、SI 06302、SI 06305、SI 06307、SI 05872が必要である.
  • DB 2 UDB for iSeries V 5 R 2には、PTF SI 06541、SI 06796、SI 07557、SI 07564、SI 07565、SI 07566、SI 07567が必要です.DB 2 UDB for iSeries V 5 R 3には、必要なストレージプロセスが予めインストールされます.

  •  
    図4に、Type 4 JDBCドライバ実装を示す.注意:Linux、UNIX、WindowsのJavaアプリケーションまたはappletからDB 2 for z/OS/390に接続するために使用される汎用JDBC/SQLJドライバ(Type 4およびType 2)には、適切なライセンスファイルが必要です(db2jcc_license_cisuz.jar).このライセンスファイルは、DB 2 Connect製品とともに提供されます.
    図4.Type 4 JDBCドライバ実装