WebLogic JDBC プログラマーズ ガイド
以下の節では JDBC コンポーネントと JDBC API の概要について説明します。
Java Database Connectivity (JDBC) とは、Java プログラミング言語で作成された一連のクラスとインタフェースで構成された標準 Java API のことです。アプリケーション、ツール、およびデータベースの開発者は、JDBC を使用することにより、データベース アプリケーションを作成したり、SQL 文を実行したりできます。
JDBC は低レベル インタフェースであり、SQL コマンドを直接起動する (呼び出す) ために使用されます。また、JDBC は Java Messaging Service (JMS) や Enterprise JavaBean (EJB) などの高レベルのインタフェースとツールを構築するための基盤でもあります。
JDBC ドライバは、JDBC API のインタフェースとクラスを実装します。以下の節では、WebLogic Server で使用できる JDBC ドライバ オプションについて説明します。
WebLogic Server は、以下のタイプの JDBC ドライバを使用します。これらのドライバが互いに連携することによって、データベース アクセスが提供されます。
WebLogic Server の中間層アーキテクチャ (データ ソース、および接続プール) により、データベース リソースを集中管理できます。ベンダに依存しないラッパー ドライバを使用すれば、購入したコンポーネントを自社の DBMS 環境により簡単に適合させ、より移植性の高いコードを記述できます。
次の表に、WebLogic Server で使用するドライバの一覧を示します。
|
||
|
|
|
|
データベースへの接続に使用する JDBC ドライバを決定する際には、使用している環境でさまざまなベンダのドライバを試す必要があります。通常、JDBC ドライバのパフォーマンスは、アプリケーションで使用する SQL コード、JDBC ドライバの実装など、さまざまな要因によって左右されます。
サポートされる JDBC ドライバについては、『WebLogic Platform 8.1 でサポート対象のコンフィグレーション』の「サポート対象のデータベース コンフィグレーション」を参照してください。
以下の節では、ベンダ固有の DBMS に接続するために WebLogic Server で使用される Type 2 および Type 4 の JDBC 層ドライバについて説明します。
BEA の WebLogic jDriver for Oracle は WebLogic Server 配布キットの中に入っています。このドライバを使用するには、Oracle クライアントがインストールされている必要があります。WebLogic jDriver for Oracle XA ドライバは、WebLogic jDriver for Oracle を分散トランザクション用に拡張します。詳細については、『WebLogic jDriver for Oracle のコンフィグレーションと使い方』を参照してください。
WebLogic Server 8.1 SP1 には、Microsoft SQL Server データベースに接続するための新しい BEA 製 JDBC ドライバが含まれています。BEA WebLogic Type 4 JDBC MS SQL Server ドライバは、非推奨となった WebLogic jDriver for Microsoft SQL Server に置き換わるものです。新しいドライバは JDBC 3.0 に準拠しており、JDBC 2.0 拡張の一部をサポートし、パフォーマンスが向上しています。WebLogic jDriver for Microsoft SQL Server の代わりに、新しい BEA WebLogic Type 4 JDBC MS SQL Server ドライバを使用してください。
詳細については、『WebLogic Type 4 JDBC ドライバ ガイド』を参照してください。
WebLogic Server 配布キットに同梱の BEA WebLogic jDriver for Microsoft SQL Server は、Microsoft SQL Server への接続を提供する pure-Java、Type 4 JDBC ドライバです。詳細については、『WebLogic jDriver for SQL Server ガイド (非推奨)』を参照してください。
以下の節では、アプリケーションへのデータベース アクセスを提供する WebLogic ラッパー ドライバについて簡単に説明します。これらのドライバは、サーバ サイドのアプリケーション (および RMI ドライバのクライアント アプリケーション) で使用できますが、JNDI ツリーからデータ ソースをルックアップして、接続プールからデータベース接続を確立することをお勧めします。
各ドライバの使用については、「WebLogic ラッパー ドライバの使い方」を参照してください。
WebLogic RMI ドライバは WebLogic Server 内で動作する Type 3 JDBC ドライバです。WebLogic RMI ドライバをリモート クライアント アプリケーションで使用して、データベースと WebLogic Server 接続プールを接続することもできますが、これはお勧めできる方法ではありません。BEA では、JNDI ツリーのデータ ソースをルックアップして、接続プールからデータベース接続を確立することをお勧めします。外部クライアントからのリクエストがあると、データソースは必要に応じて、RMI ドライバを内部で使用します。
WebLogic RMI は、サーバ サイド アプリケーション、またはクライアント アプリケーションと共に使用できます。
WebLogic RMI ドライバの使用については、「WebLogic RMI ドライバの使い方」を参照してください。
WebLogic Pool ドライバを使用すると、HTTP サーブレットや EJB などのサーバサイド アプリケーションから接続プールを利用できます。WebLogic Pool ドライバは、サーバ サイド アプリケーションで直接使用できますが、JNDI のルックアップにより、接続プールからデータベース接続を確立することをお勧めします。WebLogic Server のデータ ソースでは、WebLogic Pool ドライバを内部的に使用して、接続プールを接続します。
Pool ドライバの使い方については、『WebLogic HTTP サーブレット プログラマーズ ガイド』の「プログラミング タスク」の「データベースへのアクセス」を参照してください。
WebLogic JTS ドライバは WebLogic Pool ドライバに似たラッパー ドライバです。ただし、1 つのデータベース インスタンスを使用する複数のサーバ間での分散トランザクションで使用されます。JTS ドライバは、1 つだけのデータベース インスタンスを処理する場合は WebLogic jDriver for Oracle XA ドライバよりも効率的です。なぜなら、トランザクションのこのブランチでの処理を開始および終了するためのトランザクション マネージャからの呼び出し (XAResource.start()
および XAResource.end()
) には、データベースとの通信が必要ではないからです (これらはノー オペレーション)。
このドライバは、サーバ サイド アプリケーションでのみ使用します。
WebLogic JTS ドライバの使用については、「WebLogic JTS ドライバの使い方」を参照してください。
WebLogic Server は、以下の要件を満たすサードパーティ JDBC ドライバと連携して動作します。
これらのドライバは通常、WebLogic Server をコンフィグレーションして、接続プールに物理的なデータベース接続を作成するときに使用します。
WebLogic Server に付属する Oracle Thin Type 4 Driver は、WebLogic Server から Oracle DBMS への接続を提供します。Oracle Thin Driver は、Oracle Web サイトから最新版を入手して、使用してください。WebLogic Server でのこのドライバの使い方の詳細については、「WebLogic Server でのサードパーティ ドライバの使い方」を参照してください。
WebLogic Server では、DBMS への接続にそのまま利用できる接続プールをコンフィグレーションできます。クライアント、およびサーバ サイドのアプリケーションでは、JNDI ツリーにある DataSource を介して接続プールから接続を利用すること (推奨方法) も、WebLogic ラッパー ドライバを介して接続を利用することもできます。接続が完了したら、アプリケーションは接続を接続プールに返します。
図 1-1 WebLogic Server の接続プール アーキテクチャ
接続プールが起動されると、指定された数の物理的なデータベース接続が作成されます。接続プールでは起動時に接続を確立するので、アプリケーションごとにデータベース接続を作成する手間を省くことができます。
接続プールを使って WebLogic Server から DBMS へ物理的に接続するには、JDBC ドライバが必要になります。JDBC ドライバは WebLogic jDriver の 1 つであっても、Oracle Thin Driver などサードパーティの JDBC ドライバであってもかまいません。次の表に、接続プールを使用する場合のメリットをまとめています。
この節は、接続プールの概要です。詳細については、「接続プールのコンフィグレーションと使い方」を参照してください。
サーバ サイド アプリケーションからデータベースにアクセスする場合は、Java Naming and Directory Interface (JNDI) ツリーの DataSource、または WebLogic Pool ドライバのいずれかを使用します。分散トランザクションの場合は、JNDI ツリーの TxDataSource を使用します。1 つのデータベース インスタンスを使う、単一の WebLogic ドメイン内の複数のサーバ間での分散トランザクションの場合は、JNDI ツリーの TxDataSource、または JTS ドライバを使用します。WebLogic ラッパー ドライバではなく、JNDI ツリー、および DataSource を使用して、接続プールにアクセスすることをお勧めします。
注意 : 新しいデプロイメントの場合は、RMI ドライバの代わりに、JNDI ツリーの DataSource を使用することをお勧めします。
BEA は、クライアントサイドの JDBC 用に RMI ドライバを提供しています。RMI ドライバでは、Java 2 Enterprise Edition (J2EE) 仕様を使って標準ベースのアプローチが利用できます。
WebLogic RMI ドライバは Type 3 JDBC ドライバで、RMI と DataSource オブジェクトを使ってデータベース接続を作成します。このドライバはクラスタ化された JDBC にも対応し、WebLogic Server クラスタのロード バランシングおよびフェイルオーバ機能を活用します。DataSource オブジェクトを定義して、トランザクション サポートを有効にしたり無効にしたりできます。
JDBC マルチプールは、「接続プールのプール」であり、高可用性、またはロード バランシング アルゴリズムのいずれかに従って設定できます。マルチプールは、接続プールと同じ方法で使用できます。アプリケーションで接続が必要になる場合、マルチプールでは選択されたアルゴリズムに基づいて、どの接続プールから接続を提供するかを特定します。
WebLogic Server 構成で使用するマルチプールごとに、次のいずれかのアルゴリズム オプションを選択できます。
詳細については、「マルチプールのコンフィグレーションと使い方」を参照してください。
WebLogic Server では、クラスタがホストとなるアプリケーションの可用性を向上させるために、データ ソース、接続プール、マルチプールなどの JDBC オブジェクトをクラスタ化できます。クラスタ用にコンフィグレーションする各 JDBC オブジェクトは、クラスタ内の各管理対象サーバに存在する必要があります。JDBC オブジェクトをコンフィグレーションするときに、それらをクラスタに割り当てます。
クラスタ環境での JDBC オブジェクトについては、『WebLogic Server クラスタ ユーザーズ ガイド』の「JDBC 接続」を参照してください。
クライアント サイドおよびサーバ サイドの JDBC アプリケーションでは、DataSource を使用して、DBMS 接続を確立することができます。DataSource は、アプリケーションと接続プールの間のインタフェースです。各データ ソース (DBMS インスタンスなど) には、独自の DataSource オブジェクトが必要です。DataSource オブジェクトは、分散トランザクションをサポートする DataSource クラスとして実装できます。詳細については、「DataSource のコンフィグレーションと使い方」を参照してください。
JDBC アプリケーションを作成するには、java.sql API を使用して、データ ソースへの接続の確立、クエリの送信、データ ソースへの文の更新、および結果の処理に必要なクラス オブジェクトを作成します。各 JDBC インタフェースの詳細については、java.sql Javadoc の標準 JDBC インタフェース、および「接続プールのコンフィグレーションと使い方」を参照してください。また次の WebLogic の Javadoc も参照してください。
WebLogic Server は、JDBC 2.0 をサポートしている Java 2 SDK 1.4.1 を使用します。
サポートされるプラットフォームは、ベンダ固有の DBMS とドライバによって異なります。現時点での情報については、『サポート対象のコンフィグレーション』を参照してください。