ナビゲーションをスキップ

WebLogic JDBC のコンフィグレーションと管理

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

概要とロードマップ

この章では、『WebLogic JDBC のコンフィグレーションと管理』の内容と構成について説明します。

 


マニュアルの内容と対象読者

このマニュアルは、Java Database Connectivity (JDBC) API を使用するアプリケーションの開発とサポートを行うソフトウェア開発者およびシステム管理者向けに書かれています。また、WebLogic Server を評価するビジネス アナリストやシステム設計者にとって有用な情報も掲載しています。このマニュアルのトピックは、ソフトウェア プロジェクトの評価、設計、開発、プロダクション前、およびプロダクション段階に関連しています。

このマニュアルは、特定の JDBC プログラミング トピックを対象としたものではありません。これらのトピックに関する WebLogic Server のドキュメントとリソースへのリンクについては、「関連マニュアル」を参照してください。

このマニュアルは、J2EE および JDBC の概念に精通している読者を対象としています。また、WebLogic Server JDBC で提供される付加価値の高い機能を重点的に扱います。

 


このマニュアルの手引き

 


関連マニュアル

このマニュアルには、JDBC 固有のコンフィグレーションおよび管理上の情報が含まれています。

WebLogic Server アプリケーションを開発、デプロイ、およびモニタするための包括的なガイドラインについては、以下のドキュメントを参照してください。

 


JDBC サンプルとチュートリアル

このマニュアルの他にも、さまざまな JDBC コード サンプルとチュートリアルが用意されています。これらのサンプルとチュートリアルでは、JDBC のコンフィグレーションと API の使い方、および主要な JDBC 開発タスクを実行する実際的な手順が示されています。

Avitek Medical Records アプリケーション (MedRec) とチュートリアル

MedRec は WebLogic Server に付属したエンドツーエンドのサンプル J2EE アプリケーションであり、一元的で独立した医療記録管理システムをシミュレートします。MedRec アプリケーションでは、患者、医師、および管理者に対して、さまざまなクライアントを使用して患者のデータを管理するフレームワークが提供されます。

MedRec では WebLogic Server と J2EE の機能が例示され、BEA 推奨のベスト プラクティスが重点的に示されます。MedRec は WebLogic Server 配布キットに含まれており、Windows マシンの [スタート] メニューからアクセスできます。Linux などのプラットフォームでは、WL_HOME\samples\domains\medrec ディレクトリから MedRec を起動します。WL_HOME は、WebLogic Platform の最上位インストール ディレクトリです。

WebLogic Server 配布キットの JDBC サンプル

WebLogic Server 9.0 では、任意で API コード サンプルを WL_HOME\samples\server\examples\src\examples にインストールできます。WL_HOME は、WebLogic Server の最上位インストール ディレクトリです。[スタート] メニューから、サンプル サーバを起動すると、サンプルおよびその実行手順に関する情報を確認できます。

 


このリリースでの JDBC の新機能と変更点

以下の節では、WebLogic Server 9.0 の JDBC に関する新機能と変更点について説明します。

JDBC 3.0 のサポート

WebLogic Server 9.0 は、JDBC 3.0 仕様との互換性を備えています。この仕様では、以下の新機能がサポートされています。

詳細については、Sun Web サイトの Java JDBC 技術のページ (http://java.sun.com/products/jdbc/) を参照してください。

RowSet の拡張

WebLogic Server 9.0 においては、新しい JDBC RowSet Implementations 仕様 (JSR-114) に準拠して仕様を拡張するために、RowSet 実装の拡張が行われています。

JSR-114 のサポート

WebLogic Server RowSet の実装は、JDBC RowSet Implementations 仕様 (JSR-114) に完全に準拠しており、以下のオブジェクトをサポートしています。

RowSet の詳細については、Sun Web サイトの Java JDBC 技術のページ (http://java.sun.com/products/jdbc/) を参照してください。RowSet および WebLogic Server RowSet 実装の詳細については、『WebLogic JDBC プログラマーズ ガイド』の「Using RowSets with WebLogic Server」を参照してください。

WebLogic RowSet の機能拡張

WebLogic Server 9.0 には、以下の RowSet 拡張機能があります。

JDBC RowSet および WebLogic Server RowSet 実装の詳細については、『WebLogic JDBC プログラマーズ ガイド』の「Using RowSets with WebLogic Server」を参照してください。

システムおよびスタンドアロン JDBC リソースのモジュール形式のデプロイメント

WebLogic Server 9.0 の JDBC コンフィグレーションは、新しい weblogic-jdbc.xsd スキーマに準拠する XML ドキュメントに格納されるようになりました。9.0 より前の管理方法と同じようにシステム モジュールとして、またはアプリケーション モジュールとして、JDBC リソースを作成および管理します。JDBC アプリケーション モジュールは、J2EE モジュールの WebLogic 固有の拡張機能であり、J2EE アプリケーションに含めて、またはスタンドアロンのモジュールとしてデプロイできます。

JDBC リソースのモジュール形式のデプロイメントを利用すると、EAR ファイルを開いたり、JDBC の手動による膨大な再コンフィグレーションを行わずに、アプリケーションと必要な JDBC コンフィグレーションを、ある環境から別の環境に (たとえば、テスト環境からプロダクション環境に) 移行できます。

JDBC システム モジュール

管理者は、WebLogic Server 9.0 より前のリソース作成方法と同様にして、Administration Console または WLST を使用して JDBC リソースを直接作成できます。このようにして作成された JDBC リソースは、ドメイン ディレクトリの下位ディレクトリ config/jdbc に、システム リソース モジュールとして格納され、ドメインの config.xml ファイル内で参照されます。作成済みの JDBC は、JMX を介して JDBCSystemResourceMBean としてもアクセス可能です。

システム モジュールは、ドメインにコンフィグレーションされたサーバおよびクラスタの対象指定に対して全面的に利用できます。つまり、同じ対象にデプロイされているすべてのアプリケーションおよびクライアント アプリケーションで利用できます。システム リソース モジュールは管理者の所有になります。管理者はいつでも、リソースの削除や修正を行ったり、同様なリソースを追加したりできます。

アプリケーション モジュール

JDBC リソースは、標準の J2EE モジュールと同様に、アプリケーション モジュールとしても管理できます。JDBC 記述子は、weblogic.Deployer ユーティリティを使用してスタンドアロンのリソースとしてデプロイでき、そのリソースは通常、デプロイメント プロセスにおいて対象指定されたサーバまたはクラスタで使用できます。このようにしてデプロイされた JDBC リソースは、Administration Console を使用して再コンフィグレーションできますが、JMX や WLST を介しては利用できません。

パッケージ化された JDBC リソース モジュール

リソース モジュールはまた、パッケージ化されたモジュールとして、エンタープライズ アプリケーションの一部に含めることができます。パッケージ化されたモジュールは、EAR または展開された EAR ディレクトリにバンドルされ、weblogic-application.xml デプロイメント記述子内で参照されます。リソース モジュールはエンタープライズ アプリケーションと一緒にデプロイされ、同梱されたアプリケーションのみ、またはすべてのアプリケーションで、利用可能なようにコンフィグレーションできます。パッケージ化したモジュールを使用することにより、アプリケーションは必要なリソースに常にアクセスでき、アプリケーションを新しい環境に移動する処理が簡素化されます。

システム リソース モジュールと対照的に、パッケージ化されたモジュールの所有者は、モジュールをデプロイする管理者ではなく、モジュールを作成およびパッケージ化した開発者となります。つまり、パッケージ化されたモジュールに対しては、管理者の制御が及ぶ範囲が、より制限されています。リソース モジュールをデプロイする際、管理者はモジュールで指定されていたリソース プロパティを変更できますが、リソースの追加や削除は行えません (他の J2EE モジュールのように、リソース モジュールのデプロイ コンフィグレーションの変更はモジュールのデプロイメント プランに格納され、元のモジュール自体は変更されません)。

JDBC スキーマ

WebLogic Server 9.0 で JDBC リソースの新しいモジュール式のデプロイメント モデルをサポートするにあたり、WebLogic JDBC オブジェクトのスキーマを用意しました。JDBC リソース モジュール (記述子) を作成する際は、モジュールをこのスキーマに準拠させる必要があります。IDE や他のツールはこのスキーマに基づいて JDBC リソース モジュールを検証できます。

簡素化された JDBC リソース コンフィグレーション

WebLogic Server 9.0 では、JDBC コンフィグレーションを簡素化し、コンフィグレーション エラーの発生する可能性を低減するために、JDBC リソース タイプの数を少なくしています。JDBC 接続プールをコンフィグレーションしてから、データ ソースまたはトランザクション (tx) データ ソースをコンフィグレーションして、その接続プールを指定し、JNDI ツリーにバインドさせる代わりに、接続プールを含むデータ ソースをコンフィグレーションします。

注意 : コンフィグレーション設計が新しくなったため、単一の接続プールを指す複数のデータ ソースは使用できなくなりました。その代わり、追加のデータ ソースを作成して、その各々に固有の接続プールを持たせるか、複数の名前で JNDI ツリーに単一のデータ ソースをバインドすることができます。詳細については、「複数の名前によるデータ ソースの JNDI ツリーへのバインディング」を参照してください。

マルチプール コンフィグレーションもまた、WebLogic Server 9.0 では簡素化されています。マルチプールは、マルチ データ ソースで置き換えられています。マルチプールと同様に、マルチ データ ソースには他の JDBC リソースのリストが含まれます。ただし、このリリースでは、JNDI ツリーにバインドするために、マルチ データ ソースを指す別のデータ ソースをコンフィグレーションする必要はありません。また、Administration Console からマルチ データ ソースをコンフィグレーションした場合は、マルチ データ ソースとそこに含まれるすべてのデータ ソースを 1 つの手順でコンフィグレーションできます。

JDBC リソースの再定義の一環として、新しい MBean の一部が導入されており、それ以外は非推奨となっています。

JDBC リソースのコンフィグレーションの詳細については「WebLogic JDBC リソースのコンフィグレーション」を参照してください。

J2EE Management Model (JSR-77) のサポート

WebLogic Server 9.0 JDBC は J2EE Management Model を定義する JSR-77 をサポートしています。J2EE Management Model は、J2EE Web アプリケーション サーバおよびそのリソースの実行時状態をモニタするのに使用されます。J2EE Management Model にアクセスして、WebLogic JDBC システム全体、メモリにロードされた JDBC ドライバ、JDBC データ ソースなどのリソースをモニタできます。

詳細については、「J2EE Management Model における JDBC 管理オブジェクト (JSR-77 のサポート)」を参照してください。

ロギング ラスト リソースおよびその他のトランザクション オプションのサポート

WebLogic Server 9.0 において、JDBC データ ソースは、ロギング ラスト リソース (LLR) トランザクションの最適化を有効化するようにコンフィグレーションできます。これにより、1 つの非 XA リソースがグローバル トランザクションに参加できるようになり、XA と同じ ACID 保証および XA と比べた場合のパフォーマンスの向上を実現できます。

LLR の最適化により、次のようにパフォーマンスを向上させられます。

LLR についてコンフィグレーションされたデータ ソースからの接続が、グローバル トランザクションに参加している場合、WebLogic Server トランザクション マネージャは他のすべての (XA 対応) トランザクション参加者に対して prepare を呼び出し、データベース テーブル内の LLR 参加者に対してコミット レコードを書き込む一方で、LLR 参加者に対しトランザクションを 1 フェーズ コミットとしてコミットしてから、その他すべてのトランザクション参加者に対して commit を呼び出します。

ロギング ラスト リソースの最適化により、LLR 参加者に対するトランザクション ログが書き込まれ、データの整合性が維持されます。1 フェーズ コミットの最中にトランザクションが失敗した場合、WebLogic Server トランザクション マネージャは、他のすべてのトランザクション参加者に対してトランザクションをロールバックします。

ロギング ラスト リソース オプションの詳細については、「ロギング ラスト リソース トランザクション オプションについて」を参照してください。

WebLogic Server ユーザ ID のデータベース ユーザ ID への資格マッピング

JDBC データ ソースのための資格マッピングとは、WebLogic Server のユーザ ID がデータベース ユーザ ID へマッピングされる処理です。データ ソースで資格マッピングが有効になっている場合は、アプリケーションによってデータ ソースのデータベース接続が要求されたときに、WebLogic Server が現在の WebLogic Server ユーザ ID を判別し、そのユーザ ID にマップされたデータベース ID をデータベース接続上の軽量なクライアント ID として設定します。

この機能は、JDBC ドライバおよび DBMS の機能に依存します。この機能は、Oracle データベースと Oracle Thin Driver を使用する場合、および DB2 データベースと DB2 UDB JDBC Driver を使用する場合にのみサポートされます。

詳細については、「データソースの資格マッピングのコンフィグレーション」を参照してください。

その他のデータ ソースおよび接続プールの機能拡張

プールされた JDBC 接続に対する SQL 文のタイムアウト機能の拡張

WebLogic Server 9.0 では、接続の JDBC データ ソース プールに以下の属性が追加され、プールされたデータベース接続で文を実行できる時間の長さを制限できるようになりました。

詳細については、「ステートメント タイムアウトによる文の処理時間の制限」を参照してください。

接続テスト機能の拡張

WebLogic Server 9.0 では、いくつかの内部接続テスト機能の拡張に伴い、以下の機能が接続の JDBC データ ソース プールに追加されて、プールされた接続のデータベース接続テスト機能の向上が実現され、接続リクエストの処理における遅延が最低限に抑えられています。

詳細については、「データソースの接続テスト オプション」を参照してください。

データベース接続使用中の正常なサーバ停止

WebLogic Server 9.0 では、JDBC データ ソースに IgnoreInUseConnections 属性が追加されて、サーバ インスタンスの停止中に使用されているデータベース接続を WebLogic Server が無視できるようになっています。この属性を true に設定すると、WebLogic Server は使用中のデータベース接続を無視して、問題なくサーバを停止します。false に設定すると、WebLogic Server は使用中の接続が接続のプールに返されるまで待機します。

PinnedToThread プロパティによるパフォーマンスの向上

アプリケーションがデータ ソースからのデータベース接続を予約するのにかかる時間を最小限にし、データベース接続用のスレッド間の競合を削減するには、データ ソースの接続プロパティ リストに PinnedToThread プロパティを追加し、その値を true に設定します。

PinnedToThread が有効化されている場合、WebLogic Server では、データ ソースから実行スレッドまでのデータベース接続が固定されます。これは、アプリケーションでそのスレッドが接続の予約のために最初に使用されるときに実行されます。また、アプリケーションでその接続を利用し終えて connection.close() が呼び出されたときに、実行スレッドとの接続が保持され、接続はデータ ソースに返されません (この設定が有効でない場合、メソッドは接続をデータ ソースに返します)。その後、アプリケーションが同じ実行スレッドを使用して接続を要求すると、WebLogic Server によってスレッドで予約済みの接続が提供されます。このような方法を取ると、複数のスレッドが同時に接続の予約を試行したときに起こる、データ ソースでのロックの競合が発生しなくなります。また、限られた数のデータベース接続から同じ接続を予約しようとするスレッド間に競合が発生することもありません。

Administration Console オンライン ヘルプの「JDBC データ ソース : コンフィグレーション : 接続プール」を参照してください。

Oracle 仮想プライベート データベースのサポート

WebLogic Server 9.0 は、Oracle 仮想プライベート データベース (VPD) をサポートしています。VPD は、ユーザの ID に基づいてデータへのアクセスを制御する手段です。WebLogic Server では、Oracle Thin Driver で JDBC 拡張機能を使用することによって、データベース接続に対しユーザ資格を設定します。

『WebLogic JDBC プログラマーズ ガイド』の「Programming with Oracle Virtual Private Databases」を参照してください。

データ ソースに対する複数 JNDI 名のサポート

複数の名前で JNDI ツリーにバインドされるようにデータ ソースをコンフィグレーションできます。複数の JNDI 名を持つデータ ソースは、複数のデータ ソースが単一の JDBC 接続プールを指していた WebLogic Server のこれまでのリリースのコンフィグレーションと置き換えて使用できます。

詳細については、「複数の名前によるデータ ソースの JNDI ツリーへのバインディング」を参照してください。

XAResource のトランザクション タイムアウトのサポート

リソース マネージャが javax.transaction.xa.XAResource.setTransactionTimeout() メソッドをサポートしている場合に、WebLogic Server トランザクション マネージャで、参加している XA リソースのトランザクション ブランチのタイムアウト値を設定できるようになりました。XA リソースのデフォルトのタイムアウト値を超えて長時間実行されるトランザクションに対して、トランザクション ブランチのタイムアウトを設定することができます。

WebLogic Server トランザクション マネージャで JDBC XA リソースに対してトランザクション タイムアウトを設定するには、JDBC データ ソースで以下のプロパティに値を指定します。

これらのプロパティは、データベース接続の作成に XA JDBC ドライバを使用しているデータ ソースにのみ適用されます。XA 以外の JDBC ドライバを使用している場合には無視されます。

上記で説明したように、これらの値が設定されている場合、WebLogic Server トランザクション マネージャは XAResource.setTransactionTimeout() を呼び出します。XA リソース マネージャ (たとえば XA JDBC ドライバ) または XA リソースにおけるこのメソッドの実装によって、値がどのように使用されるかが決まります。たとえば Oracle の場合、setTransactionTimeout() メソッドでは、セッション タイムアウト (SesTm) が設定され、この値はトランザクションの最大アイドル時間として機能します。この動作は他の XA リソースでは異なることがあります。

データ ソースの use-xa-data-source-interface プロパティ

WebLogic Server 9.0 においては、ドライバが XA にも XA 以外にも同じクラス名を使用している場合に、JDBC ドライバの XA バージョンの使用を指定できるよう、use-xa-data-source-interface データ ソース プロパティが導入されています。

マルチ データ ソースの拡張

WebLogic Server 9.0 では、以下のマルチ データ ソースの拡張機能が追加されています。

マルチ データ ソースにおける XA のサポート

WebLogic Server 9.0 では、XA トランザクションで使用する JDBC マルチ データ ソースがサポートされています。マルチ データ ソースに格納されたデータ ソースは、XA JDBC ドライバを使用するようにコンフィグレーションできます。

マルチ データ ソースのコンフィグレーションの詳細については、「JDBC マルチ データ ソースにおけるトランザクションのサポート」を参照してください。

JDBC マルチ データ ソースのフェイルオーバ機能の拡張

WebLogic Server 9.0 では、JDBC マルチ データ ソースに対して、以下の拡張が行われています。

詳細については、「マルチ データ ソースのフェイルオーバ機能の拡張」を参照してください。

HIGH AVAILABILITY マルチ データ ソースの FAILOVER への名前変更

WebLogic Server 9.0 では、マルチ データ ソースの HIGH AVAILABILITY アルゴリズム オプションが、FAILOVER と名前を変更されています。この新しい名前は、このアルゴリズムを選択した場合のマルチ データ ソースの動作を、より明確に示しています。

JDBC 管理のための新しい WLST スクリプト サンプル

WebLogic Server 9.0 には、これまで weblogic.Admin ユーティリティで利用可能だった管理タスクを実行する方法を示す、WLST スクリプト サンプルが付属しています。タスクの例としては、データ ソースの作成、データ ソース内のプールされたデータベース接続のリセットなどが挙げられます。

JDBC のモニタおよび診断機能の拡張

JDBC リソースのモニタと問題の診断を簡単に行えるよう、JDBC アクティビティをモニタし、JDBC の問題を診断するための以下の拡張機能が、WebLogic Server 9.0 に追加されています。

JDBC データ ソースの新しいモニタ統計とプロファイル情報

WebLogic Server 9.0 では、環境をモニタおよび調整できるよう、Administration Console または JMX を介して新しいデータ ソースの使用に関する以下の情報が利用できます。

WebLogic Server 9.0 では、Administration Console または JMX を介して、以下の新しいプリペアド ステートメント キャッシュの統計および使用状況のプロファイル情報が利用できます。

ドライバ レベルの統計をモニタするためのコールバック

WebLogic Server 9.0 では、JDBC ドライバに対して呼び出されるメソッドのコールバックを提供しています。これらのコールバックは、実行されているメソッド、任意の送出された例外、ドライバ メソッドの実行に費やされた時間など、JDBC ドライバの使用状況をモニタおよびプロファイリングするために使用できます。

コールバック機能を有効化するには、JDBC データ ソース記述子 (モジュール) 内の driver-interceptor 要素に対するコールバック ハンドラの絶対パスを指定する必要があります。コールバック ハンドラには、weblogic.jdbc.extensions.DriverInterceptor インタフェースが実装されている必要があります。JDBC ドライバのコールバックが有効化されていると、WebLogic Server は JDBC ドライバ内の任意のメソッドの呼び出し前と呼び出し後に、登録されたコールバック ハンドラの preInvokeCallback()postInvokeExceptionCallback()、または postInvokeCallback() メソッドを呼び出します。

JDBC のデバッグ機能の拡張

WebLogic Server 9.0 では、JDBC サブシステムは、デバッグ アクセスとロギングが一元化された新しいデバッグおよび診断システムを使用します。以下の JDBC デバッグ オプションがあります。

詳細については、「WebLogic JDBC リソースのモニタ」を参照してください。

WebLogic Type 4 JDBC ドライバの更新

WebLogic Server では、WebLogic Type 4 JDBC ドライバが更新されています。この更新されたドライバにより、いくつかの重大な問題が解決します。またこれらのドライバでは、いくつかの顕著な機能拡張が行われています。詳細については、『WebLogic Type 4 JDBC ドライバ ガイド』を参照してください。

削除された、非推奨になった、または変更になった JDBC の機能、メソッド、インタフェース、および MBean

WebLogic Server 9.0 では JDBC サブシステムでさまざまな変更が行われており、一部のドライバやクラスが削除されて、一部の MBean が非推奨になりました。

削除されたもの

WebLogic Server 9.0 では以下のアイテムが削除されています。

削除された API の詳細なリストは、『WebLogic のアプリケーション環境のアップグレード』の「非推奨となった API と削除された API」を参照してください。

以下のコンフィグレーション属性が削除されています。

以下の属性にあった機能は、別の属性に移行しました。これらの属性は、JDBC データ ソースのコンフィグレーションを簡素化するために削除されています。

非推奨になった機能

WebLogic Server 9.0 では以下のアイテムが非推奨になっています。

非推奨になった MBean

WebLogic Server 9.0 では以下の MBean が非推奨になりました。

変更された機能および動作

JDBC データ ソースおよび接続プールの機能に、以下の変更が加えられています。

 

フッタのナビゲーションのスキップ  ページの先頭 前 次