Oracle® Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの管理 12c (12.1.2) E48088-03 |
|
前 |
次 |
この章では、JDBCデータ・ソースの構成方法とチューニング方法について説明します。
WebLogic Serverでデータベース接続を構成するには、データ・ソースをWebLogicドメインに追加します。WebLogic JDBCデータ・ソースにより、データベースへのアクセスおよびデータベース接続管理が可能になります。各データ・ソースには、データ・ソースの作成時とサーバーの起動時に作成されるデータベース接続のプールが含まれています。アプリケーションは、JNDIツリーまたはローカル・アプリケーション・コンテキストでデータ・ソースをルックアップしてから、getConnection()
を呼び出してデータ・ソースからデータベース接続を確保します。接続の使用後に、アプリケーションは、できるだけ早くconnection.close()
を呼び出す必要があります。これにより、データベース接続をプールに戻して、他のアプリケーションが使用できるようにします。
WebLogic Serverは、次の3種類のデータ・ソースを提供します。
汎用データ・ソース: 汎用データ・ソースとその接続プールによって、効率的なシステム運用の維持を円滑にする接続管理プロセスが提供されます。アプリケーションや環境に適合するオプションをデータ・ソースで設定できます。
Active GridLink (AGL)データ・ソース: 1つ以上のOracle RACクラスタ内の1つ以上のノードに及ぶ接続プールを提供するデータ・ソース。これは、ノード全体にわたる接続の動的ロード・バランシングをサポートし、クラスタに対するノードの追加や削除を示すイベントを処理します。第5章「Active GridLinkデータ・ソースの使用方法」を参照してください。
マルチ・データ・ソース: マルチ・データ・ソースとは、汎用データ・ソースのグループに関する抽象化のことです。この抽象化により、ロード・バランシングやフェイルオーバー処理を実現します。「JDBCマルチ・データ・ソースの構成」を参照してください。
WebLogicドメインにJDBCデータ・ソースを作成するには、管理コンソールまたはWebLogic Scripting Tool (WLST)を使用します。
Oracle WebLogic Server管理コンソール・オンライン・ヘルプのJDBCデータ・ソースの作成に関する項。
サンプルのWLSTスクリプトEXAMPLES_HOME
\wl_server\examples\src\examples\wlst\online\jdbc_data_source_creation.py
。EXAMPLES_HOME
は、WebLogic Serverのコード・サンプルが構成されるディレクトリを表しています。『WebLogic Scripting Toolの理解』のWLSTオンライン・サンプル・スクリプトに関する項を参照してください。
次の各項では、管理コンソールからデータ・ソースの構成ウィザードを使用して、データ・ソースを作成するために使用する基本手順の概要について説明します。
「JDBCデータ・ソースのプロパティ」には、データ・ソースのアイデンティティを決定するオプションと、データベース接続でデータを処理する方法を決定するオプションがあります。
JDBCデータ・ソースの名前は、WebLogicドメイン内でデータ・ソースを識別するために使用されます。システム・リソース・データ・ソースの場合、そのリソース以外のすべてのJDBCシステム・リソース間で一意の名前を付ける必要があります。名前の競合を避けるために、データ・ソースの名前は、その他の構成オブジェクト(サーバー、アプリケーション、クラスタ、JMSキュー、JMSトピック、JMSサーバーなど)の名前の間でも一意にする必要があります。特定のアプリケーションにパッケージ化されたJDBCアプリケーション・モジュールの場合、データ・ソースの名前は、同様にスコープ設定されたJDBCデータ・ソース間で一意にする必要があります。
単一の名前または複数の名前でJNDIツリーにバインドされるように、データ・ソースを構成します。詳細は、『Oracle WebLogic Server JNDIアプリケーションの開発』を参照してください。
管理コンソールを使用してJDBCデータ・ソースを作成すると、JDBCドライバ・クラスの選択を求めるプロンプトが表示されます。管理コンソールには、一般的なドライバ・クラス名の大部分が表示され、ほとんどの場合、ドライバの必要に応じたURLの作成が支援されます。ただし、コンソールでURLをテストする前に、そのURLが適切であることを確認してください。選択するドライバは、データ・ソースのデプロイ先のすべてのサーバーのclasspath
に含まれている必要があります。管理コンソールに一覧表示されたすべてのJDBCドライバが、WebLogic Serverに付属している(または、classpath
にすでに含まれている)わけではありません。
Oracle Thinドライバ
Oracle ThinドライバXA
Oracle Thinドライバ非XA
MySQL (非XA)
サード・パーティ製のJDBCドライバ(第14章「WebLogic ServerでのJDBCドライバの使用方法」を参照):
次に示すデータベース管理システム用の、WebLogicブランドのDataDirectドライバ(「WebLogicブランドのDataDirectドライバの使用」を参照):
DB2
Informix
Microsoft SQL Server
Sybase
これらのすべてのドライバは、weblogic.jar
マニフェスト・ファイルで参照されるため、サーバーのclasspath
に明示的に定義されている必要はありません。
データベースへの接続に使用するJDBCドライバを決定する際には、目的の環境で様々なベンダーのドライバを試してみることが必要です。通常、JDBCドライバのパフォーマンスは、アプリケーションで使用するSQLコードやJDBCドライバの実装など、様々な要因に応じて変化します。
サポート対象のJDBCドライバの詳細は、『Oracle WebLogic Serverの新機能』のサポート対象の構成に関する項を参照してください。
注意: データ・ソースの作成時に、管理コンソールに一覧表示されるJDBCドライバには、WebLogic Serverでの使用が保証されていないものもあります。JDBCドライバの一覧は、多数の使用可能なデータベース管理システムへの接続を円滑に作成するための利便性を目的として示されます。 JDBCドライバを使用してデータ・ソースにデータベース接続を作成するには、データ・ソースをデプロイするサーバーごとにJDBCドライバをインストールする必要があります。管理コンソールに一覧されるドライバは、データ・ソースの構成に役立つ既知の必須構成オプションとともに示されます。この一覧には、インストールされていないJDBCドライバも表示されます。ドライバのインストールには、システムのPathやClasspathなどの環境変数の設定が含まれることがあります。「サードパーティJDBCドライバに対する環境設定」を参照してください。JDBCドライバの更新に伴って、構成要件が変更されることがあります。管理コンソールは、WebLogic Serverソフトウェアがリリースされた時点での既知の構成要件を使用します。JDBCドライバの構成オプションが変更されているときには、その構成オプションの手動でのオーバーライドが必要になる場合があります。その場合、データ・ソースの作成時またはデータ・ソースの作成後にプロパティのページでオプションをオーバーライドします。 |
管理コンソールを使用してJDBCデータ・ソースを構成すると、WebLogic ServerはJDBCドライバの種類に応じて特定のトランザクション・オプションを自動的に選択します。
XAドライバの場合、システムはグローバル・トランザクション処理のための「2フェーズ・コミット」プロトコルを自動的に選択します。
非XAドライバの場合、ローカル・トランザクションは定義によってサポートされ、WebLogic Serverは次のオプションを提示します。
グローバル・トランザクションのサポート: グローバル・トランザクションでデータ・ソースからの接続を使用する場合は、XAドライバを選択していないときにも、このオプションを選択します(デフォルトで選択済)。詳細は、「非XA JDBCドライバでのグローバル・トランザクションのサポートの有効化」を参照してください。
「グローバル・トランザクションのサポート」を選択する場合は、グローバル・トランザクションを処理するときに、トランザクション・ブランチに使用するWebLogic Serverのプロトコルも選択する必要があります。
ロギング・ラスト・リソース: このオプションを選択すると、接続を使用するトランザクション・ブランチは、トランザクションのラスト・リソースとして処理され、ローカル・トランザクションとして処理されます。2フェーズ・コミット(2PC)トランザクションのコミット・レコードは、リソース自体の表に挿入され、その結果によりグローバル・トランザクションの準備フェーズの成功または失敗が決定されます。このオプションは、「2フェーズ・コミットのエミュレート」と比べて、パフォーマンス上の利点があり、データの安全性も向上しますが、いくつかの制限があります。「「ロギング・ラスト・リソース」トランザクション・オプションの理解」を参照してください。
注意: ロギング・ラスト・リソースは、マルチ・データ・ソースで使用したデータ・ソースについてはサポートされていません。ただし、「LLRデータ・ソースに関する管理上の考慮事項と制限事項」で説明するように、Oracle RACバージョン10gリリース2 (10gR2)以降で使用していたデータ・ソースを除きます。 |
2フェーズ・コミットのエミュレート: このオプションを選択すると、接続を使用するトランザクション・ブランチは、トランザクションの準備フェーズの結果として常に成功を戻します。これは、パフォーマンス上の利点がありますが、障害の状況によってはデータに危険が及びます。このオプションは、ヒューリスティックな状況に耐えられるアプリケーションでのみ使用してください。「2フェーズ・コミットのエミュレート・トランザクション・オプションの理解」を参照してください。
1フェーズ・コミット: このオプションを選択すると(デフォルトで選択済)、データ・ソースからの接続のみがグローバル・トランザクションに関与するようになり、そのトランザクションは1フェーズ・コミット最適化を使用して完了します。トランザクションに複数のリソースが関与していると、トランザクション・マネージャが1PCリソースのXAResource.prepare
を呼び出したときに、例外がスローされます。
データ・ソースをサポートするようにトランザクションを構成する方法の詳細は、「JDBCデータ・ソース・トランザクション・オプション」を参照してください。
接続プロパティは、データ・ソースとDBMSとの間の接続を構成するために使用します。一般的な属性には、データベース名、ホスト名、ポート番号、ユーザー名とパスワードがあげられます。
注意: ホスト名を表すために、単一クライアント・アクセス名(SCAN)アドレスが使用できます。Oracle RAC 11.2以降を使用する場合は、次の点について考慮してください。
SCANアドレスの使用方法の詳細は、『Real Application Clusters管理およびデプロイメント・ガイド11gリリース2 (11.2)』の自動ワークロード管理の概要に関する項を参照してください。 |
DBMSとしてOracle BI Serverを選択した場合は、「接続プロパティ」ページで追加の接続プロパティを構成します。構成手順は、『Oracle Business Intelligence Publisher管理者および開発者ガイド』の接続文字列に関する項を参照してください。
「データベース接続のテスト」を使用すると、データ・ソース構成をファイナライズする前に、表名またはSQL文を使用してデータベース接続をテストできます。必要に応じて、Properties
属性とSystem Properties
属性を使用すると、追加の構成情報をテストできます。
新しいJDBCデータ・ソースのデプロイ先に、1つ以上のターゲットを選択します。ターゲットを選択していない場合でもデータ・ソースは作成されますが、デプロイされません。そのデータ・ソースは、接続を取得する前にデプロイする必要があります。
各JDBCデータ・ソースは、そのデータ・ソースのデプロイ時またはサーバーの起動時に作成されるJDBC接続のプールを1つ保持します。アプリケーションは、プールからの接続を使用して、その接続を使用後にプールに返します。接続のプーリングにより、アプリケーション用のデータベース接続を作成するという負担のかかるタスクを排除して、パフォーマンスを向上できます。
注意: 特定のOracle JDBC拡張機能や、その他のドライバで使用できる他の非標準メソッドでは、プールされた接続の将来のユーザーが接続の動作を継承するという方法で、接続の動作を永続的に変更することが可能です。WebLogic Serverは、このようなタイプの呼出しに対して、可能な場合は接続の保護を試行します。 |
次の各項では、JDBCデータ・ソースの接続プール・オプションについて説明します。
次の項目を使用すると、さらに多くの情報を確認して、これらのオプションとその他の関連オプションを設定できます。
管理コンソールの「JDBCデータ・ソース: 構成: 接続プール」ページ。Oracle WebLogic Server管理コンソール・オンライン・ヘルプの「JDBCデータ ソース: 構成: 接続プール」を参照してください。
JDBCConnectionPoolParamsBean。これは、JDBCDataSourceBeanの子MBeanです。
WebLogic JDBCデータ・ソースは、JDBCドライバで実装されるjavax.sql.ConnectionPoolDataSource
インタフェースをサポートしています。ドライバ・レベルの機能は、JDBCデータ・ソースのProperties
属性にプロパティと値を追加することで有効化できます。Properties
属性のドライバ・レベルのプロパティは、ドライバのConnectionPoolDataSource
オブジェクトで設定します。
WebLogic JDBCデータ・ソースは、システム・プロパティの値を使用したドライバ・プロパティの設定をサポートしています。各プロパティの値は、指定されたシステム・プロパティから実行時に導出されます。接続ベースのシステム・プロパティを構成するには、管理コンソールを使用して、データ・ソース構成のSystem Properties
属性を編集します。
WebLogic Serverがデータ・ソース内にデータベース接続を作成したときに、サーバーがデータベース接続を初期化するSQLコードを自動的に実行するように設定できます。この機能を有効化するには、管理コンソールの「JDBCデータ・ソース: 構成: 接続プール」ページの「初期化SQL」属性で、SQL
と入力し、その後に実行するSQLコードを空白を挟んで入力します。この属性を空欄(デフォルト)のままにしておくと、WebLogic Serverは、データベース接続を初期化するコードを実行しなくなります。
WebLogic Serverは、データベース接続をデータ・ソースに作成するたびに、このコードを実行します。また、サーバー起動時、接続プールの拡張時および接続のリフレッシュ時にも、このコードを実行します。
この機能を使用して、DBMS固有の操作設定値(接続固有)を設定することも、必要な操作を実行するためのメモリーや権限を接続に用意することもできます。
コードの先頭には、SQL
と、それに続けて空白を入力します。次に例を示します。
SQL alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
または
SQL SET LOCK MODE TO WAIT
InitSQL
を使用して設定できるオプションは、DBMSに応じて異なります。
次の各項では、詳細な接続プロパティのうち重要なプロパティについて重点的に説明します。
データ・ソースと通信するデータベース・サーバーに、接続でアクセスできなくなったことを示す致命的エラー・コードを定義できます。その接続は無効のマークが付けられて、プールから取り除かれますが、データ・ソースが中断されることはありません。これらのエラーには、サーバーがブートできなくなるデプロイメント・エラーおよび接続を接続プールに戻せなくなる接続エラーが含まれます。
SQLExceptionの範囲内の例外コード(sqlException.getErrorCode()
によって取得される)として指定されているコードは、致命的エラーが発生して接続が機能しなくなったために、その接続が接続プールから削除されることを意味します。Oracleデータベースでは、次の致命的エラー・コードがWLSに事前定義されており、構成ファイルに配置する必要はありません:
エラー・コード | 説明 |
---|---|
3113 |
通信チャネルでend-of-fileが検出されました |
3114 |
Oracleに接続されていません |
1033 |
Oracleの初期化またはシャットダウン中です |
1034 |
Oracleは使用できません |
1089 |
即時シャットダウン処理中 - 操作はできません |
1090 |
シャットダウン処理中 - 接続はできません |
17002 |
I/O例外 |
DB2の場合は、次の致命的エラー・コードは事前定義されています: -4498、-4499、-1776、-30108、-30081、-30080、-6036、-1229、-1224、-1035、-1034、-1015、-924、-923、-906、-518、-514、58004。
Informixの場合、次の致命的エラー・コードは事前定義されています: -79735、-79716、-43207、-27002、-25580、-4499、-908、-710、43012。
管理コンソールで致命的エラー・コードを定義する場合は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプの致命的エラー・コードの定義に関する項を参照してください。
エディションベースの再定義は、Oracleデータベースの機能です。この機能を使用すると、アプリケーションのデータベース・コンポーネントを使用中にアップグレードできるようになるため、停止時間を最小化または排除できるようになります。この機能を使用するには、次のようにデータ・ソースを構成する必要があります。
SQL ALTER SESSION SET EDITION = name
データソース構成の「接続プール」タブにある、「初期化SQL」パラメータで設定します。WLSTを使用して、InitSQL
属性を更新することもできます。Oracle WebLogic Server MBeanリファレンスを参照してください。
このSQL文は、物理データベース接続が新しく作成されるたびに実行されます。『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』のエディションベースの再定義に関する項を参照してください。
WebLogic Serverには、Oracleドライバの使用時にデータ・ソースのパフォーマンスを向上できる、いくつかの属性が用意されています。詳細は、「Oracleドライバおよびデータベースの詳細な構成」を参照してください。
ONSクライアントを構成して、汎用データ・ソースをAGLデータ・ソースに変更します。構成情報と追加の環境要件の詳細は、「Active GridLinkデータ・ソースの使用方法」を参照してください。
WebLogic Serverドメイン内のJDBCデータ・ソースで、接続プールの属性を適切に構成すると、アプリケーションとシステムのパフォーマンスを向上できます。詳細は、「データ・ソース接続プールのチューニング」を参照してください。