Oracle® Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの構成と管理 11g リリース1 (10.3.5) B60997-03 |
|
前 |
次 |
この項は、次の情報を含みます。
1つのGridLinkデータ・ソースは、WebLogic ServerとOracle RACクラスタをターゲットとするOracle Databaseサービス間の接続を提供します。それは、Oracle RACインスタンス内の状態変更に対して適応的に応答するためにOracle Notification Service (ONS)を使用します。Oracle Databaseサービスは、共通属性を持つ作業負荷を表します。これにより、管理者は単一のエンティティとして作業負荷を管理できます。クラスタ内のノード数に関係なく、データベース内のサービス数が増加するに従い、GridLinkデータ・ソース数をスケールします。
GridLinkデータ・ソースには、汎用データソースと次に示すOracle RACサポートの機能が含まれます。
GridLinkデータ・ソースは、高速接続フェイルオーバーを使用して、ONSでOracle RACイベントに応答します。これにより、GridLinkデータ・ソースの接続プールには、接続をポーリングまたはテストする必要がない、有効な接続(予約済接続を含む)が含まれることになります。
GridLinkデータ・ソースは高速接続フェイルオーバーを次の処理に使用します。
高速障害検出の実現
接続プールから無効な接続の中断・削除
予定内外のOracle RACノード停止時の正常終了。「Oracle RAC停止時の正常操作」を参照してください。
ノードの追加・削除など、トポロジ変更への適応
クラスタに再参加するインスタンスを含めて、すべてのアクティブなOracle RACインスタンスへのランタイム・ワーク・リクエストの分配
『OracleデータベースJDBC開発者ガイドおよびリファレンス』の高速接続フェイルオーバーに関する項を参照してください。
GridLinkデータ・ソースで、XAや非XA環境でロード・バランシングが可能になります。GridLinkデータ・ソースは、ランタイム接続ロード・バランシングを使用して、データベースで発行されたOracle FANイベントを基に、Oracle RACインスタンスに接続を分配します。これにより、データ・ソースの構成が簡素化し、データ・ベースが、データベース・トポロジと独立して、GridLinkデータ・ソースを通じて接続のロード・バランシングを行うため、性能が向上します。
ランタイム接続ロード・バランシングにより、WebLogic Serverで次の処理が可能になります。
CPU、可用性、およびレスポンス時間など、バックエンドのノード・キャパシティによる作業分配の調整
Oracle RACトポロジの変更への対応
高度な性能および拡張性のプール接続の管理
FANが無効の場合、GridLinkデータ・ソースは、ラウンドロビン・ロード・バランシング・アルゴリズムで、Oracle RACノードに接続を割り当てます。
GridLinkデータ・ソースは、Oracle RACサービスの予定内外のシャットダウン時に正常な処置を行います。
予定内のシャットダウンでは、データ・ソースは、切断前に処理中のトランザクションを終了させます。新しいリクエストが、アクティブなOracle RACインスタンスにロードバランスされます。
予定外のシャットダウンでは、データ・ソースは、処理中のトランザクションを戻し、接続を切断します。新しいリクエストが、アクティブなOracle RACインスタンスにロードバランスされます。
グローバル・トランザクションのXAアフィニティでは、Oracle RACクラスタで実行するグローバル・トランザクションのデータベース操作は、同じOracle RACインスタンスが対象となります。XAトランザクションの最初の接続リクエストは、RCLBでロード・バランスされ、アフィニティ・コンテクストに割り当てられます。後続の接続はすべて、最初の接続のアフィニティ・コンテクストを使用して同じOracle RACインスタンスに転送されます。
単一クライアント・アクセス名(SCAN)アドレスで、WebLogicコンソールのTNSリスナーおよびONSリスナー双方のホストとポートを指定します。Oracle RACノードを追加・削除する場合、SCANアドレスを含むGridLinkデータ・ソースは変更する必要はありません。それぞれの環境に適して構成したSCANのURLについては、ネットワーク管理者にお問い合せください。詳細は、http://www.oracle.com/technetwork/database/clustering/overview/scan-129069.pdf
を参照してください。
Oracle Walletを使用してONSリスナーとセキュアな通信を構成することが可能です。「セキュアなONSクライアント通信」を参照してください。
WebLogicドメインにGridLinkデータ・ソースを作成するには、管理コンソールまたはWebLogic Scripting Tool (WLST)を使用できます。
詳細は、次を参照してください。
『Oracle WebLogicサーバー管理コンソールのヘルプ』のJDBC GridLinkデータ・ソースの作成に関する項。
サンプルWLSTスクリプトSAMPLES_HOME
\server\examples\src\examples\wlst\online\jdbc_data_source_creation.py
(SAMPLES_HOME
はWebLogic Serverインストールの主要なサンプル・ディレクトリを示します)。この例では、汎用データ・ソースが作成されます。『Oracle WebLogic Scripting Tool』のWLSTオンライン・サンプル・スクリプトに関する項を参照してください。
次の項では、管理コンソールでデータ・ソースを作成するためのデータ・ソース構成ウィザードで実行する基本手順の概要を示します。
JDBCデータ・ソース・プロパティには、データ・ソースのアイデンティティを定義するオプション、およびデータベース接続でのデータ処理方法が含まれます。
JDBCデータ・ソース名は、WebLogicドメイン内でデータ・ソースを識別するために使用されます。システム・リソース・データ・ソースの場合、名前はデータ・ソースやマルチ・データ・ソースを含む他のすべてのJDBCシステム・リソースを通じて一意であることが必要です。名前の競合を避けるため、データ・ソース名はサーバー、クラスタ、JMSキュー、JMSトピック、JMSサーバーなど、他の構成オブジェクト名の間でも一意であることが必要です。アプリケーションをスコープとするJDBCアプリケーション・モジュールの場合、データ・ソース名は同様のスコープを持つJDBCデータ・ソースとマルチ・データ・ソースを通じて一意であることが必要です。
単一または複数の名前でJNDIツリーにバインドされるように、データ・ソースを構成できます。1つのJDBC接続プールを指す複数のデータ・ソースを含む従来の構成のかわりに、複数のJNDI名を持つデータ・ソースを使用できます。詳細は、rssを参照してください。
管理コンソールを使用してJDBCデータ・ソースを構成すると、WebLogic ServerはJDBCドライバの種類に基づき、自動的に特定のトランザクション・オプションを選択します。
XAドライバの場合、システムは自動的に、グローバル・トランザクション処理のための2フェーズ・コミット・プロトコルを選択します。
非XAドライバの場合、ローカル・トランザクションは定義によってサポートされており、WebLogic Serverは以下のオプションを提供します。
「グローバル・トランザクションのサポート」 : (デフォルトで選択) XAドライバを選択していなくても、グローバル・トランザクションでデータ・ソースからの接続を使用する場合には、このオプションを選択します。詳細については、「非XA JDBCドライバでのグローバル・トランザクションのサポートの有効化」を参照してください。
「グローバル・トランザクションのサポート」を選択した場合は、グローバル・トランザクションを処理するときに、WebLogic Serverがトランザクション・ブランチに使用するプロトコルも選択する必要があります。
「ロギング・ラスト・リソース」 :このオプションを使用すると、接続が使用されているトランザクション・ブランチが、トランザクションの最後のリソースとして処理され、ローカル・トランザクションとして処理されます。2フェーズ・コミット(2PC)トランザクションのコミット・レコードは、リソース自体の表に挿入され、その結果によって、グローバル・トランザクションの準備段階が正常に終了したか失敗したかが決まります。このオプションでは、「2フェーズ・コミットのエミュレート」よりもパフォーマンス上のメリットとデータの安全性が得られますが、いくつかの制限事項もあります。「ロギング・ラスト・リソース・トランザクション・オプションについて」を参照してください。
2フェーズ・コミットのエミュレート: このオプションを使用すると、接続が使用されているトランザクション・ブランチは、トランザクションの準備フェーズに対して常に成功を戻します。パフォーマンス上のメリットはありますが、いくつかの失敗の状況ではデータにリスクがあります。このオプションは、アプリケーションがヒューリスティックな状況を許容できる場合にのみ選択します。「2フェーズ・コミットのエミュレート・トランザクション・オプションについて」を参照してください。
1フェーズ・コミット: (デフォルトで選択済み)このオプションを使用すると、データ・ソースからの接続がグローバル・トランザクションの唯一の参加者となることができ、トランザクションは1フェーズ・コミットの最適化を使用して完了します。トランザクションに複数のリソースが参加している場合、トランザクション・マネージャが1PCリソースに対してXAResource.prepare
を呼び出すと、例外がスローされます。
データ・ソースのトランザクション・サポートの構成の詳細は、「JDBCデータ・ソース・トランザクション・オプション」を参照してください。
接続プロパティは、データ・ソースおよびDBMS間の接続の構成に使用されます。通常属性には、サービス名、データベース名、ホスト名、ポート番号、ユーザー名、およびパスワードがあります。コンソールを使用することで、次のいずれかの方法で接続プロパティを入力できます。
「GridLinkデータ・ソース接続プロパティのオプション」のページで、「個別のリスナー情報の入力」を選択し、「次へ」をクリックします。接続プロパティを入力します。例:
「サービス名」
にmyServiceを入力します。
「ホストとポート」
に、left:1234、center:1234、right:1234を入力します。各リスナーのホストとポートをコロンで区別します。
「データベース・ユーザー名」
にmyDataBaseを入力します。
「パスワード」
にmyPassword1を入力します。
コンソールは自動的に完全なJDBC URLを生成します。例:
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=left)(PORT=1234))(ADDRESS=(PROTOCOL=TCP)(HOST=right)(PORT=1234))(ADDRESS=(PROTOCOL=TCP)(HOST=center)(PORT=1234)))(CONNECT_DATA=(SERVICE_NAME=myService)))
「GridLinkデータ・ソース接続プロパティのオプション」のページで、「完全なJDBC URLの入力」を選択し、「次へ」をクリックします。接続プロパティを入力します。例:
「完全なJDBC URL」に、JDBCのURLを入力します。例:
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=left)(PORT=1234))(ADDRESS=(PROTOCOL=TCP)(HOST=right)(PORT=1234))(ADDRESS=(PROTOCOL=TCP)(HOST=center)(PORT=1234)))(CONNECT_DATA=(SERVICE_NAME=myService)))
SCANアドレスも使用可能です。たとえば: jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyScanAddr-scn.myCompany.com)(PORT=1234)))(CONNECT_DATA=(SERVICE_NAME=myService)))
「データベース・ユーザー名」
にmyDataBaseを入力します。
「パスワード」
にmyPassword1を入力します。
「データベース接続のテスト」で、データ・ソースの構成を終了する前に、表名またはSQL文を使用してデータベース接続をテストすることができます。必要であれば、「プロパティ」
および「システム・プロパティ」
属性を使用して追加構成情報をテストできます。
「ONSクライアント構成」で、データ・ソースはOracle FANイベントに登録し、イベントを処理できるようにします。ONSクライアントを設定するには:
「FANの有効化」
を選択します。
「ONSホストとポート」では、ONSベースのFANイベントを受信するためのONSデーモン・リスニング・アドレスおよびポートのカンマ区切りのリストを入力します。FAN通知へのアクセスには、単一クライアント・アクセス名(SCAN)アドレスを使用できます。
オプションで、SSLを使用してセキュアなONSクライアント通信を構成します。「セキュアなONSクライアント通信」を参照してください。
WebLogic ServerでOracle Walletファイルを使用するには、次の処理が必要です。
WebLogic Serverのクラスパスに次のファイルを追加します。
$MW_HOME
/modules/com.oracle.osdt_cert_1.0.0.0.jar
$MW_HOME
/modules/com.oracle.osdt_core_1.0.0.0.jar
$MW_HOME
/modules/com.oracle.oraclepki_1.0.0.0.jar
GridLinkデータ・ソースの構成を更新し、SSL証明書とONS Walletパスワードが格納されるOracle Walletファイルのディレクトリを含めます。『Oracle WebLogicサーバー管理コンソールのヘルプ』のOracle WalletによるセキュアなONSリスナーに関する項を参照してください。
Oracle Walletの詳細は、『Database Advanced Security管理者ガイド』を参照してください。
「ONSクライアント構成のテスト」で、データ・ソースの構成が決定される前にデーベース接続をテストできます。
1つ以上のターゲットを選択して新規JDBC GridLinkデータ・ソースをデプロイできます。ターゲットを選択しない場合、データ・ソースは作成されますがデプロイされません。後でデータ・ソースをデプロイする必要があります。
注意: ソケット・ダイレクト・プロトコル(SDP)を使用するためには、データベース・ネットワークをInfinibandを使用できるように構成する必要があります。『Oracle Database Net Services管理者ガイド』のInfiniBand接続のためのSDPサポートの構成に関する項を参照してください。 |
既存のグリッド・リンク・データ・ソースのSDPを有効にするには、次の手順を実行します。
システム・プロパティ-Djava.net.preferIPv4Stack=true
をサーバー起動コマンド・ラインに追加します。
管理コンソールを使用してグリッド・リンク・データ・ソースのSPDを有効にするには、
まだ行っていない場合、管理コンソールのチェンジ・センターで「ロックして編集」をクリックします。
「ドメイン構造」ツリーで「サービス」を展開し、「データ・ソース」を選択します。
「データ・ソースのサマリー」ページでデータ・ソース名をクリックします。
構成: 接続プールタブを選択します。
「URL」で、URLを編集して、PROTOCOL=SDP
でPROTOCOL=TCP
のインスタンスを置き換えます。
「保存」をクリックします。
管理コンソールのチェンジ・センターで「変更のアクティブ化」をクリックしてこれらの変更をアクティブ化します。
この変更はすぐには反映されません。データ・ソースの再デプロイ(ターゲット設定解除、ターゲット再指定)やサーバーの再起動が必要です。
例:
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=SDP)(HOST=left)(PORT=1234))(ADDRESS=(PROTOCOL=SDP)(HOST=right)(PORT=1234))(ADDRESS=(PROTOCOL=SDP)(HOST=center)(PORT=1234)))(CONNECT_DATA=(SERVICE_NAME=myService)))
各JDBCデータ・ソースには、データ・ソースのデプロイ時またはサーバー起動時に作成される、JDBC接続のプールが含まれています。アプリケーションは、プールから接続を使用し、使用し終わると、プールに戻します。接続のプールにより、アプリケーション用にデータベース接続を作成するという費用のかかるタスクがなくなるため、パフォーマンスが向上します。
以下の節では、JDBCデータ・ソースの接続プールのオプションについて説明します。
これらのオプションおよびその他の関連オプションの詳細は、次で参照し、設定できます。
管理コンソールの「JDBCデータ・ソース: 構成: 接続プール」ページ。Oracle WebLogic Server管理コンソール・ヘルプの「JDBCデータ・ソース: 構成: 接続プール」を参照してください。
JDBCDataSourceBeanの子MBeanである、JDBCConnectionPoolParamsBean
WebLogic JDBCデータ・ソースは、JDBCドライバで実装されるjavax.sql.ConnectionPoolDataSource
インタフェースをサポートしています。JDBCデータ・ソース内のProperties
属性にプロパティおよびその値を追加して、ドライバ・レベルの機能を有効化できます。Properties
属性におけるドライバ・レベルのプロパティは、ドライバのConnectionPoolDataSource
オブジェクトで設定されます。
WebLogic JDBCデータ・ソースは、システム・プロパティの値によるドライバ・プロパティの設定をサポートします。各プロパティの値は、指定されたシステム・プロパティから実行時に取得されます。データ・ソース構成の「システム・プロパティ」
属性を編集することで管理コンソールを使用して、接続ベースのシステム・プロパティを構成できます。
WebLogic Serverでは、データ・ソースにおけるデータベース接続の作成時に、自動的にSQLコードを実行して、データベース接続を初期化できます。この機能を有効にするには、管理コンソールの「JDBCデータ・ソース:構成:接続プール」ページの「初期化SQL」属性に「SQL」
と入力し、その直後にスペース、次に実行するSQLコードを入力します。この属性を空白のままにしておくと(デフォルト)、データベース接続を初期化するコードは実行されません。
サーバーの起動時、接続プールの拡張時、接続のリフレッシュ時など、データ・ソースにおけるデータベース接続の作成時には常にここで指定したコードが実行されます。
この機能を使用して、接続ごとのDBMS固有の動作を設定したり、必要なアクションを実行できるメモリーや権限を接続が備えるを確認したりできます。
コードは、「SQL」
で開始し、その後にスペースを入れます。例:
SQL alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
または
SQL SET LOCK MODE TO WAIT
InitSQL
によって設定できるオプションは、DBMSごとに異なります。
注意: 初期化SQLは、動的な属性ではありません。初期化SQLの値を変更する際には、データ・ソースをアンデプロイしてから再デプロイするか、またはサーバーを再起動する必要があります。 |
WebLogic Serverは、Oracleドライバ使用時にデータ・ソース・パフォーマンスを向上させるいくつかの属性を提供します。詳細は「Oracleドライバの詳細構成」を参照してください。
次の項では、ONSクライアントの構成方法について説明します。
Oracle高速アプリケーション通知(FAN)イベントに登録し、イベントを処理するためにデータソースを有効にします。
「FANの有効化」
を選択します
ONSベースのFANイベントを受信するためのONSデーモン・リスニング・アドレスおよびポートのカンマ区切りのリストを指定します。FAN通知へのアクセスには、単一クライアント・アクセス名(SCAN)アドレスを使用できます。
『Oracle WebLogic Server管理コンソールのヘルプ』のONSクライアント・パラメータの構成に関する項を参照してください。
FANイベントの有効化により、汎用データ・ソース接続のテストが自動的に無効になります。しかし、ONSサーバーが停止したり、異常な状態の場合、「FANの有効化」
を無効にし、汎用データ・ソース接続テストを使用して、データベース接続の正常な状態を維持できます。詳細は、「データ・ソースの接続テスト・オプション」を参照してください。
SSLでONSデーモンと通信するためには、walletファイルを使用する必要があります。「セキュアなONSクライアント通信」を参照してください。
WebLogic Serverは、Oracleドライバ使用時にデータ・ソース・パフォーマンスを向上させるいくつかの属性を提供します。詳細は「Oracleドライバの詳細構成」を参照してください。
WebLogic ServerドメインのJDBCデータ・ソース内の接続プール属性を正しく構成することで、アプリケーションおよびシステムのパフォーマンスを向上できます。詳細は、「データ・ソースの接続プールのチューニング」を参照してください。
以下の節では、セキュリティ資格証明をDBMSに渡す方法についての情報を提供します。
注意: GridLinkデータ・ソースは、識別ベースの接続プールをサポートしません。 |
資格証明の最も簡単なタイプの認証情報は、接続プールにDBMSのユーザー・アカウント名およびパスワードを提供することです。そうすると、プール内のすべての接続は、同じ認証情報を使用してDBMSにアクセスします。Oracle WebLogic Server管理コンソール・ヘルプのJDBCデータ・ソースの作成に関する項を参照してください。
注意: パスワードは「プロパティ」フィールドに名前と値の組み合わせとして入力すること(本番環境では許可されません)も、「パスワード」フィールドに入力することも可能です。「パスワード」フィールドの値は、物理的なデータベース接続を作成するときにJDBCドライバに渡されるPropertiesで定義されている、いかなるpassword値をもオーバーライドします。プロパティ文字列でパスワード・プロパティのかわりにPassword属性を使用することをお勧めします。なぜなら、Password値は構成ファイル内で暗号化(モジュール・ファイルのjdbc-driver-params タグでpassword-encrypted属性として保存)され、管理コンソールでは表示されなくなるからです。 |
データ・ソースで「接続時にクライアントIDを設定」
属性が有効になっている場合は、アプリケーションによってデータ・ソースのデータベース接続がリクエストされたときに、WebLogic Serverインスタンスが現在のWebLogicユーザーIDを判別し、マップされているデータベースIDを軽量なクライアントIDとして設定します。この場合も、プール内のすべての接続で同じ資格証明を使用してDBMSにアクセスします。基本的な構成手順は次のとおりです。
「接続時にクライアントIDを設定」
を選択し、Oracle WebLogic Server管理コンソール・ヘルプのJDBCデータ・ソースに対する接続時に「クライアントIDの設定」の有効化に関する項を参照してください。
注意: WebLogicユーザーIDおよびデータベースIDをマッピングするための資格証明マッピングは、Oracle Thinドライバを使用するOracleデータベースでのみサポートされます。この機能は、Oracle DMSドライバではサポートされません。 |
WebLogicユーザーIDおよびデータベースIDをマップします。Oracle WebLogic Server管理コンソール・ヘルプのJDBCデータ・ソースの資格証明マッピングの構成に関する項を参照してください。
この機能は、JDBCドライバおよびDBMSの機能に依存します。OracleおよびDB2データベースで、ベンダー提供の拡張メソッドを使用する場合にのみサポートされます。
oracle.jdbc.OracleConnection.setClientIdentifier(String id)
com.ibm.db2.jcc.DB2Connection.setDB2ClientUser(String user)
注意: 「接続時にクライアントIDを設定」と「IDベースの接続プールを有効化」は相互に排他的です。アプリケーション環境でセキュリティ資格証明を渡すために両方のメカニズムが必要な場合は、別々のデータ・ソースを作成して、一方は「接続時にクライアントIDを設定」を指定し、もう一方は「IDベースの接続プールを有効化」を指定してください。 |
次の項では、GridLink JDBCオブジェクトのモニターについて詳細に説明します。
JDBC監視の詳細は、「WebLogic JDBCリソースのモニター」を参照してください。
管理コンソールまたは関連するランタイムMBeansを通じてGridLinkデータ・ソースのランタイム統計を参照できます。
JDBCOracleDataSourceInstanceRuntimeMBean
は、データ・ソース・インスタンスの現在の状態を得る方法を提供します。詳細は、『Oracle WebLogic Server MBeanリファレンス』のJDBCOracleDataSourceInstanceRuntimeMBeanに関する項を参照してください。
JDBCDataSourceRuntimeMBean
は、データ・ソース・インスタンスの現在の状態を得る方法を提供します。JDBCDataSourceRuntimeMBean
は、データ・ソースの現在の状態およびアクティブな平均接続数、現在のアクティブな接続数および最大アクティブ接続数など、データ・ソースの統計データの取得方法を提供します。詳細は、『Oracle WebLogic Server MBeanリファレンス』のJDBCDataSourceRuntimeMBeanに関する項を参照してください。
ONSDaemonRuntimeMBean
は、GridLinkデータ・ソースと関連付けられたONSクライアント構成を監視する方法を提供します。詳細は、『Oracle WebLogic Server MBeanリファレンス』のONSDaemonRuntimeMBeanに関する項を参照してください。
WebLogic Serverのデバッグ機能をアクティブにして、アプリケーション内の特定の問題を追跡できます。
次に、JDBCの登録されたデバッグ・スコープを示します。
DebugJDBCRAC (スコープweblogic.jdbc.racl): GridLinkデータ・ソースのライフ・サイクル、UCPコールバックおよび接続情報を印刷します。
DebugJDBCONS (スコープweblogic.jdbc.connection): LBAイベント本体を含むONSクライアント情報を追跡します。
http://download.oracle.com/docs/cd/B28359_01/java.111/e10788/get_started.htm#sthref67
の指示に従って、UPC JDKロギングを有効にできます。