ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの構成と管理
11g リリース1 (10.3.5)
B60997-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

4 GridLinkデータ・ソースの使用

この項は、次の情報を含みます。

GridLinkデータ・ソースとは

1つのGridLinkデータ・ソースは、WebLogic ServerとOracle RACクラスタをターゲットとするOracle Databaseサービス間の接続を提供します。それは、Oracle RACインスタンス内の状態変更に対して適応的に応答するためにOracle Notification Service (ONS)を使用します。Oracle Databaseサービスは、共通属性を持つ作業負荷を表します。これにより、管理者は単一のエンティティとして作業負荷を管理できます。クラスタ内のノード数に関係なく、データベース内のサービス数が増加するに従い、GridLinkデータ・ソース数をスケールします。

図4-1 GridLinkデータ・ソースの接続性

図4-1については周囲のテキストで説明しています

GridLinkデータ・ソースには、汎用データソースと次に示すOracle RACサポートの機能が含まれます。

高速接続フェイルオーバー

GridLinkデータ・ソースは、高速接続フェイルオーバーを使用して、ONSでOracle RACイベントに応答します。これにより、GridLinkデータ・ソースの接続プールには、接続をポーリングまたはテストする必要がない、有効な接続(予約済接続を含む)が含まれることになります。

図4-2 高速接続フェイルオーバー

図4-2については周囲のテキストで説明しています

GridLinkデータ・ソースは高速接続フェイルオーバーを次の処理に使用します。

  • 高速障害検出の実現

  • 接続プールから無効な接続の中断・削除

  • 予定内外のOracle RACノード停止時の正常終了。「Oracle RAC停止時の正常操作」を参照してください。

  • ノードの追加・削除など、トポロジ変更への適応

  • クラスタに再参加するインスタンスを含めて、すべてのアクティブなOracle RACインスタンスへのランタイム・ワーク・リクエストの分配

『OracleデータベースJDBC開発者ガイドおよびリファレンス』高速接続フェイルオーバーに関する項を参照してください。

実行時接続ロード・バランシング

GridLinkデータ・ソースで、XAや非XA環境でロード・バランシングが可能になります。GridLinkデータ・ソースは、ランタイム接続ロード・バランシングを使用して、データベースで発行されたOracle FANイベントを基に、Oracle RACインスタンスに接続を分配します。これにより、データ・ソースの構成が簡素化し、データ・ベースが、データベース・トポロジと独立して、GridLinkデータ・ソースを通じて接続のロード・バランシングを行うため、性能が向上します。

ランタイム接続ロード・バランシングにより、WebLogic Serverで次の処理が可能になります。

  • CPU、可用性、およびレスポンス時間など、バックエンドのノード・キャパシティによる作業分配の調整

  • Oracle RACトポロジの変更への対応

  • 高度な性能および拡張性のプール接続の管理

図4-3 実行時接続ロード・バランシング

図4-3については周囲のテキストで説明しています

FANが無効の場合、GridLinkデータ・ソースは、ラウンドロビン・ロード・バランシング・アルゴリズムで、Oracle RACノードに接続を割り当てます。

Oracle RAC停止時の正常操作

GridLinkデータ・ソースは、Oracle RACサービスの予定内外のシャットダウン時に正常な処置を行います。

  • 予定内のシャットダウンでは、データ・ソースは、切断前に処理中のトランザクションを終了させます。新しいリクエストが、アクティブなOracle RACインスタンスにロードバランスされます。

  • 予定外のシャットダウンでは、データ・ソースは、処理中のトランザクションを戻し、接続を切断します。新しいリクエストが、アクティブなOracle RACインスタンスにロードバランスされます。

Oracle RAC 11.2以前のOracle RAC停止の対処方法

Oracle RAC 11.2以前のリリースでは、最初に対応するサービスを停止せずに、Oracle RACインスタンスを手動で停止すると、予定外のシャットダウンにつながります。

XAアフィニティ

グローバル・トランザクションのXAアフィニティでは、Oracle RACクラスタで実行するグローバル・トランザクションのデータベース操作は、同じOracle RACインスタンスが対象となります。XAトランザクションの最初の接続リクエストは、RCLBでロード・バランスされ、アフィニティ・コンテクストに割り当てられます。後続の接続はすべて、最初の接続のアフィニティ・コンテクストを使用して同じOracle RACインスタンスに転送されます。

図4-4 XAアフィニティ

図4-4については周囲のテキストで説明しています

SCANアドレス

単一クライアント・アクセス名(SCAN)アドレスで、WebLogicコンソールのTNSリスナーおよびONSリスナー双方のホストとポートを指定します。Oracle RACノードを追加・削除する場合、SCANアドレスを含むGridLinkデータ・ソースは変更する必要はありません。それぞれの環境に適して構成したSCANのURLについては、ネットワーク管理者にお問い合せください。詳細は、http://www.oracle.com/technetwork/database/clustering/overview/scan-129069.pdfを参照してください。

Oracle Walletを使用してセキュアな通信

Oracle Walletを使用してONSリスナーとセキュアな通信を構成することが可能です。「セキュアなONSクライアント通信」を参照してください。

GridLinkデータ・ソースの作成

WebLogicドメインにGridLinkデータ・ソースを作成するには、管理コンソールまたはWebLogic Scripting Tool (WLST)を使用できます。

詳細は、次を参照してください。

次の項では、管理コンソールでデータ・ソースを作成するためのデータ・ソース構成ウィザードで実行する基本手順の概要を示します。

JDBCデータ・ソース・プロパティ

JDBCデータ・ソース・プロパティには、データ・ソースのアイデンティティを定義するオプション、およびデータベース接続でのデータ処理方法が含まれます。

データ・ソース名

JDBCデータ・ソース名は、WebLogicドメイン内でデータ・ソースを識別するために使用されます。システム・リソース・データ・ソースの場合、名前はデータ・ソースやマルチ・データ・ソースを含む他のすべてのJDBCシステム・リソースを通じて一意であることが必要です。名前の競合を避けるため、データ・ソース名はサーバー、クラスタ、JMSキュー、JMSトピック、JMSサーバーなど、他の構成オブジェクト名の間でも一意であることが必要です。アプリケーションをスコープとするJDBCアプリケーション・モジュールの場合、データ・ソース名は同様のスコープを持つJDBCデータ・ソースとマルチ・データ・ソースを通じて一意であることが必要です。

JNDI名

単一または複数の名前でJNDIツリーにバインドされるように、データ・ソースを構成できます。1つのJDBC接続プールを指す複数のデータ・ソースを含む従来の構成のかわりに、複数のJNDI名を持つデータ・ソースを使用できます。詳細は、rssを参照してください。

XAまたは非XAドライバの選択

データ・ソースによるグローバル・トランザクションの対処方法を指定します。

トランザクション・オプションの構成

管理コンソールを使用して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:1234center:1234right: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)))

完全なURLの入力

「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クライアント構成の構成

「ONSクライアント構成」で、データ・ソースはOracle FANイベントに登録し、イベントを処理できるようにします。ONSクライアントを設定するには:

  • 「FANの有効化」を選択します。

  • 「ONSホストとポート」では、ONSベースのFANイベントを受信するためのONSデーモン・リスニング・アドレスおよびポートのカンマ区切りのリストを入力します。FAN通知へのアクセスには、単一クライアント・アクセス名(SCAN)アドレスを使用できます。

  • オプションで、SSLを使用してセキュアなONSクライアント通信を構成します。「セキュアな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

ONSクライアント構成のテスト

「ONSクライアント構成のテスト」で、データ・ソースの構成が決定される前にデーベース接続をテストできます。

データ・ソースのターゲット指定

1つ以上のターゲットを選択して新規JDBC GridLinkデータ・ソースをデプロイできます。ターゲットを選択しない場合、データ・ソースは作成されますがデプロイされません。後でデータ・ソースをデプロイする必要があります。

グリッド・リンク・データ・ソースのソケット・ダイレクト・プロトコルの有効化


注意:

ソケット・ダイレクト・プロトコル(SDP)を使用するためには、データベース・ネットワークをInfinibandを使用できるように構成する必要があります。『Oracle Database Net Services管理者ガイド』InfiniBand接続のためのSDPサポートの構成に関する項を参照してください。

既存のグリッド・リンク・データ・ソースのSDPを有効にするには、次の手順を実行します。

例:

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ドライバ・レベルの機能の有効化

WebLogic JDBCデータ・ソースは、JDBCドライバで実装されるjavax.sql.ConnectionPoolDataSourceインタフェースをサポートしています。JDBCデータ・ソース内のProperties属性にプロパティおよびその値を追加して、ドライバ・レベルの機能を有効化できます。Properties属性におけるドライバ・レベルのプロパティは、ドライバのConnectionPoolDataSourceオブジェクトで設定されます。

接続ベースのシステム・プロパティの有効化

WebLogic JDBCデータ・ソースは、システム・プロパティの値によるドライバ・プロパティの設定をサポートします。各プロパティの値は、指定されたシステム・プロパティから実行時に取得されます。データ・ソース構成の「システム・プロパティ」属性を編集することで管理コンソールを使用して、接続ベースのシステム・プロパティを構成できます。

SQLコードを使用したデータベース接続の初期化

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の値を変更する際には、データ・ソースをアンデプロイしてから再デプロイするか、またはサーバーを再起動する必要があります。

Oracleパラメータの構成

WebLogic Serverは、Oracleドライバ使用時にデータ・ソース・パフォーマンスを向上させるいくつかの属性を提供します。詳細は「Oracleドライバの詳細構成」を参照してください。

ONSクライアントの構成

次の項では、ONSクライアントの構成方法について説明します。

FANイベントの有効化

Oracle高速アプリケーション通知(FAN)イベントに登録し、イベントを処理するためにデータソースを有効にします。

  1. 「FANの有効化」を選択します

  2. ONSベースのFANイベントを受信するためのONSデーモン・リスニング・アドレスおよびポートのカンマ区切りのリストを指定します。FAN通知へのアクセスには、単一クライアント・アクセス名(SCAN)アドレスを使用できます。

『Oracle WebLogic Server管理コンソールのヘルプ』ONSクライアント・パラメータの構成に関する項を参照してください。

汎用データ・ソース接続テストの構成

FANイベントの有効化により、汎用データ・ソース接続のテストが自動的に無効になります。しかし、ONSサーバーが停止したり、異常な状態の場合、「FANの有効化」を無効にし、汎用データ・ソース接続テストを使用して、データベース接続の正常な状態を維持できます。詳細は、「データ・ソースの接続テスト・オプション」を参照してください。

Walletファイルの使用

SSLでONSデーモンと通信するためには、walletファイルを使用する必要があります。「セキュアなONSクライアント通信」を参照してください。

Oracleパラメータの構成

WebLogic Serverは、Oracleドライバ使用時にデータ・ソース・パフォーマンスを向上させるいくつかの属性を提供します。詳細は「Oracleドライバの詳細構成」を参照してください。

GridLinkデータ・ソース接続プールのチューニング

WebLogic ServerドメインのJDBCデータ・ソース内の接続プール属性を正しく構成することで、アプリケーションおよびシステムのパフォーマンスを向上できます。詳細は、「データ・ソースの接続プールのチューニング」を参照してください。

データベース・セキュリティ資格証明の設定

以下の節では、セキュリティ資格証明をDBMSに渡す方法についての情報を提供します。


注意:

GridLinkデータ・ソースは、識別ベースの接続プールをサポートしません。

ユーザー名/パスワードの使用

資格証明の最も簡単なタイプの認証情報は、接続プールにDBMSのユーザー・アカウント名およびパスワードを提供することです。そうすると、プール内のすべての接続は、同じ認証情報を使用してDBMSにアクセスします。Oracle WebLogic Server管理コンソール・ヘルプJDBCデータ・ソースの作成に関する項を参照してください。


注意:

パスワードは「プロパティ」フィールドに名前と値の組み合わせとして入力すること(本番環境では許可されません)も、「パスワード」フィールドに入力することも可能です。「パスワード」フィールドの値は、物理的なデータベース接続を作成するときにJDBCドライバに渡されるPropertiesで定義されている、いかなるpassword値をもオーバーライドします。プロパティ文字列でパスワード・プロパティのかわりにPassword属性を使用することをお勧めします。なぜなら、Password値は構成ファイル内で暗号化(モジュール・ファイルのjdbc-driver-paramsタグでpassword-encrypted属性として保存)され、管理コンソールでは表示されなくなるからです。

接続時にクライアントIDを設定

データ・ソースで「接続時にクライアントIDを設定」属性が有効になっている場合は、アプリケーションによってデータ・ソースのデータベース接続がリクエストされたときに、WebLogic Serverインスタンスが現在のWebLogicユーザーIDを判別し、マップされているデータベースIDを軽量なクライアントIDとして設定します。この場合も、プール内のすべての接続で同じ資格証明を使用してDBMSにアクセスします。基本的な構成手順は次のとおりです。

  1. 「接続時にクライアントIDを設定」を選択し、Oracle WebLogic Server管理コンソール・ヘルプJDBCデータ・ソースに対する接続時に「クライアントIDの設定」の有効化に関する項を参照してください。


    注意:

    WebLogicユーザーIDおよびデータベースIDをマッピングするための資格証明マッピングは、Oracle Thinドライバを使用するOracleデータベースでのみサポートされます。この機能は、Oracle DMSドライバではサポートされません。

  2. 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リソースのモニター

次の項では、GridLink JDBCオブジェクトのモニターについて詳細に説明します。

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

実行時の統計の表示

管理コンソールまたは関連するランタイムMBeansを通じてGridLinkデータ・ソースのランタイム統計を参照できます。

JDBCOracleDataSourceInstanceRuntimeMBean

JDBCOracleDataSourceInstanceRuntimeMBeanは、データ・ソース・インスタンスの現在の状態を得る方法を提供します。詳細は、『Oracle WebLogic Server MBeanリファレンス』JDBCOracleDataSourceInstanceRuntimeMBeanに関する項を参照してください。

JDBCDataSourceRuntimeMBean

JDBCDataSourceRuntimeMBeanは、データ・ソース・インスタンスの現在の状態を得る方法を提供します。JDBCDataSourceRuntimeMBeanは、データ・ソースの現在の状態およびアクティブな平均接続数、現在のアクティブな接続数および最大アクティブ接続数など、データ・ソースの統計データの取得方法を提供します。詳細は、『Oracle WebLogic Server MBeanリファレンス』JDBCDataSourceRuntimeMBeanに関する項を参照してください。

ONSDaemonRuntimeMBean

ONSDaemonRuntimeMBeanは、GridLinkデータ・ソースと関連付けられたONSクライアント構成を監視する方法を提供します。詳細は、『Oracle WebLogic Server MBeanリファレンス』ONSDaemonRuntimeMBeanに関する項を参照してください。

GridLinkデータ・ソースのデバッグ

WebLogic Serverのデバッグ機能をアクティブにして、アプリケーション内の特定の問題を追跡できます。

JDBCのデバッグ・スコープ

次に、JDBCの登録されたデバッグ・スコープを示します。

  • DebugJDBCRAC (スコープweblogic.jdbc.racl): GridLinkデータ・ソースのライフ・サイクル、UCPコールバックおよび接続情報を印刷します。

  • DebugJDBCONS (スコープweblogic.jdbc.connection): LBAイベント本体を含むONSクライアント情報を追跡します。

UCP JDKロギング

http://download.oracle.com/docs/cd/B28359_01/java.111/e10788/get_started.htm#sthref67の指示に従って、UPC JDKロギングを有効にできます。

コマンド・ラインを使用してデバッグを有効化する

コマンド・ラインで適切なGridLinkデータ・ソース・デバッギング・プロパティを指定します。例:

-Dweblogic.debug.DebugJDBCRAC=true 
-Dweblogic.debug.DebugJDBCONS=true
-Dweblogic.debug.DebugJDBCUCP=true

この方法は静的なものであり、サーバーの起動時にのみ使用できます。