Oracle WebLogic ServerにおけるOracle RACアクセス用マルチ・データソースの作成

<このテキストを削除しないでください。これは、"主要" なトピックの生成リストに対応するプレースホルダです。>

目的

このチュートリアルでは、Oracle WebLogic Server 11g Release 1(10.3.4)において、Oracle Real Application Clusters(Oracle RAC)にアクセスするためのマルチ・データソースを作成する方法について説明します。

所要時間

約30分

概要

このチュートリアルでは、Oracle WebLogic Server(Oracle WLS)において、マルチ・データソースをOracle Real Application Clustersと連携するように設定する方法について説明します。

ソフトウェア要件は、以下のとおりです。

前提条件

このチュートリアルを始める前に次のことを確認してください。

.

Oracle WebLogic Server 11g Release 1(10.3.4)をインストールしていること

.

Oracle Real Application Clusters 11g Release 2をデータベースとともに複数ノードにインストールしていること

.

各Oracle RACノードでデータベースを起動していること

.

Oracle RACと統合する管理対象サーバー(複数可)にOracle WebLogic Serverドメインを作成していること

.

このWebLogicドメインのAdministration Serverを起動していること

.

データソースのターゲット先とする管理対象サーバーを起動していること

データベース・サービスの作成


データベース・サービスはワークロード管理用に作成されます。 データベース・サービスを作成するには、以下の手順を実行します。

Oracle Enterprise Managerへのアクセス

次の手順を実行します。

.

Webブラウザを開いて、次のOracle Enterprise ManagerのURLを入力します。 URLの形式は、https://<hostname>:1158/emで す。 この例では、https://host01.example.com:1158/emです。

 

.

sysというUser Nameでログインし、Passwordを入力し、Connect Asで「SYSDBA」を選択します。 次に、「Login」をクリックします。

 

データベース・サービスの作成

次の手順を実行します。

.

Availability」リンクをクリックします。

 

.

Servicesで、「Cluster Managed Database Services」をクリッ クします。

 

.

Cluster Credentialsで、クラスタのUsernamePasswordを 入力します。 Database Credentialsで、データベースのUsernamePasswordを 入力します。 次に、「Continue」をクリックします。

 

.

Create Service」ボタンをクリックします。

 

.

Service Nameを入力します。 「Start service after creation」 と「Update local naming parameter file」を選択します。 すべてのデータベース・インスタンスがPreferredに なっていることを確認します。 Service PropertiesConnection Load Balancing Goalで、「Long」を選択します。 Notification Propertiesで、「Enable Load Balancing Advisory」を選択し、さらに「Throughput」オプションを選択します。 残りのフィールドはすべてデフォルトのままにします。 「OK」をクリックします。

 

.

Create Service: Successfulというメッセージが表示されるまで待ちます。 サービスが表に記載されていて、ステータスが"起動中"(上矢印)であり、すべてのデータベース・インスタンスで実行中であることを確認します。

 

.

Enterprise Managerからログアウトします。

 

Oracle RACノードごとのデータソースの作成


Oracle RACノードごとにデータソースを作成します。 各データソースは、そのノード上で実行しているデータベース・サービスにアクセスします。 データソースを作成するには、以下の手順を実行します。

WebLogic Server管理コンソールへのアクセス

次の手順を実行します。

.

Webブラウザを開き、WebLogic Server管理コンソールのURLを入力します。 URLの形式は、http://<host>:<port>/consoleで す。 この例では、http://localhost:7001/consoleです。

 

.

管理レベルのユーザー名とパスワードを使用してログインします。 この例の管理レベルのユーザー名はweblogicで す。 「Login」をクリックします。


.

Domain Structure領域で、Servicesの横の「+」をクリックし、展 開します。

 

.

Data Sources」をクリックします。

 

.

Change Centerで、「Lock & Edit」をクリックし、設定をロックします。

 

.

設定がロックされ、変更できるようになります。

 

Oracle RACノードごとのデータソースの作成

次の手順を実行します。

.

Data Sources領域で、「New」ボタンをクリックします。 ドロップダウン・リストから、「Generic Data Source」を選択します。

 

.

Create a New JDBC Data Source領域で、データソースのNameJNDI Nameを入力し、Database Typeで「Oracle」を選択して、「Next」をクリッ クします。

 

.

Database Driverドロップダウン・リストで、「Oracle's Driver (Thin) for RAC Service-Instance connections; Versions:10 and later」を選択し、「Next」 をクリックします。

注:このドライバには、代わりに使用できるXAバージョンもあります。

 

.

この例ではXA以外のドライバを選択したので、次の画面が表示されます。 この画面で、グローバル・トランザクションのサポートの可否、およびその処理方法を入力します。 トランザクション・オプションを選択したら、「Next」 をクリックします。

注:XAドライバを選択した場合は、この画面は表示されません。

 

.

Connection Properties画面で、Service Nameフィールドに、 Enterprise Managerで前に作成したデータベース・サービスの名前を入力します。

また、Database Name、データベースのHost Name(またはホストのIPアドレス)、データベース・サー バーのPortを入力します。

Database User Nameフィールドにデータベース・ユーザーの名前を入力し、Passwordフィー ルドとConfirm Passwordフィールドのそれぞれにパスワードを入力します。

Next」をクリックします。

 

.

次の画面で、「Test Configuration」ボタンをクリックし、入力した設定が有効であるかどうかをテスト します。

 

.

設定が有効であり、データベースに接続できた場合は、"Connection test succeeded"という緑のメッセージが表示されます。 "Connection test failed"という赤のメッセージが表示された場合は、「Back」ボタンをクリックして、設定の問題を解決します。 テストが成功したら、「Next」をクリックします。

 

.

Select Targetsで、このデータソースを使用するサーバー(複数可)を選択します。 次に、「Finish」 をクリックします。

 

.

Change Centerで、「Activate Changes」をクリックします。

 

.

Messages領域で、変更がアクティブ化されたことが表示されます。 また、サーバーを再起動する必要があるかどうかも示されます(この例の場合は必要ありません)。

 

データソース接続プールの設定の変更

次の手順を実行します。

.

もう一度Change Centerを開き、「Lock & Edit」をクリックします。

 

.

Data Sourcesのリストで、作成したデータソースの名前をクリックします。 この例では、Node1DSで す。

 

.

データソースの設定で、Configurationタブが選択されていることを確認し、「Connection Pool」サブタブをクリックします。

 

.

下にスクロールしてInitial Capacityフィールドを表示します。 0に設定します。 Maximum CapacityCapacity Incrementを任意の値に設定します。

 

.

詳細設定に移動する前に、「Save」ボタンをクリックしてこれまでの変更を保存します。

 

.

さらに下にスクロールして、「Advanced」リンクを表示します。 クリックして詳細設定を開きます。

 

.

Test Connections On Reserve」を選択します。 Test Frequency300に 設定します。

 

.

Seconds to Trust an Idle Pool Connection10に設定されて いることを確認します。 Connection Creation Retry Frequency30に設定します。

 

.

Test Table Nameがデータベース内の有効な表に設定されていることを確認します。 このフィールドに表名が入力されている場合のみ、テストに"select count(*) from test-table-name" というSQLが使用されます。 Test Table Nameフィールドが"SQL"で始まり、その後が空白の場合は、残りの文字列は テストとして実行するSQLと見なされます。

 

.

DBAの指示に従って、設定に対してその他の変更を行います。 「Save」をクリックします。

 

.

Change Centerで、「Activate Changes」をクリックします。

 

その他の各Oracle RACノード用のデータソースの作成

次の手順を実行します。

.

前述のOracle RACノードごとのデータソースの作成の手順に従って、Oracle RACノードごとのデータソースを作成します。 各データソースには固有のNameJNDI Nameを設定します。 また、各データソースには固有のDatabase NameHost Nameを設定します。

ただし、各データソースには同じservice nameを設定する必要があることに注 意してください。

この例では、これらの要素の名前は次のとおりです。

名前 JNDI名 データベース名 ホスト名 サービス名
Node2DS jdbc/Node2DS orcl2 host02.example.com MYHASERVICE
Node3DS jdbc/Node3DS orcl3 host03.example.com MYHASERVICE

新しいデータソースを作成するたびに、前述のデータソース接続プールの設定の変更の手順に 従って、各データソースの接続プールの設定を変更します。

完了したら、管理コンソールですべてのデータソースを表示します。

注:各データソースは同じドライバのタイプ(XAまたはXA以外)を使用して設定するようにしてください。 また、各データソースには同じWebLogic Serverのインスタンスをターゲット先として設定する必要があります。

 

データソースを含むマルチ・データソースの作成


マルチ・データソースは、事前に作成した各データソースを含むものです。 マルチ・データソースを作成するには、以下の手順を実行します。

マルチ・データソースの作成


.

これまで通り、WebLogic Server管理コンソールで、「Lock & Edit」をクリックして設 定をロックします。 次に、Domain Structure領域で、Servicesの下の「Data Sources」をクリックします。

 

.

Data Sources領域で、「New」ボタンをクリックします。 ドロップダウン・リストから、「Multi Data Source」を選択します。


.

Create a New JDBC Multi Data Source領域で、マルチ・データソースのNameJNDI Nameを入力します。 Algorithm Typeで「Load-Balancing」(または「Failover」) を選択し、「Next」をクリックします。


.

Select Targetsで、事前に作成した汎用データソースのターゲット先のサーバー(複数可)を選択します。 「Next」をクリックします。

 

.

マルチ・データソースに対して、汎用データソースに設定したドライバと同じタイプのドライバを選択します。 この例では、データソースがXA以外のドライバを使用して設定されているので、Non-XA Driverが選択されています。 「Next」 をクリックします。

 

.

このマルチ・データソースに含めるデータソースを選択し、右矢印をクリックして、AvailableからChosenへ 移動します。 次に、「Finish」をクリックします。

 

.

Change Centerで、「Activate Changes」をクリックします。

 

.

Messages領域で、変更がアクティブ化されたことが表示されます。 また、サーバーを再起動する必要があるかどうかも示されます(この例の場合は必要ありません)。

 

マルチ・データソースのテスト


.

MultiDSTest.javaファイルをダウンロー ドし、システムに保存します。 このJavaクラスのmainメソッドでは、WebLogic Serverのインスタンスに接続し、マルチ・データソースからデータベース接続を取得します。 このメソッドは次に、データベースに接続し、データベース名、ホスト名、データベース・サービス名を取得し、標準出力にこれらの名前を表示します。

mainメソッドの上部にあるString変数の一部を、お使いの環境に合わせて編集する必要があります。 これらの変数には、WebLogic Serverのホストとポート、データベースのユーザー名とパスワード、マルチ・データソースのJNDI名が含まれます。

 

.

ターミナル・ウィンドウで、Java Developer's Kit(JDK)のbinディレクトリを含むようにPATHを 設定します。 この設定によって、javacjavaの実行可能ファイルにアクセスして、Javaクラスのコンパイルと実 行を行うことができます。 WebLogic Serverインストール環境に含まれるJDKを使用できます。 この例のシステムでは、Sun JDKのbinディ レクトリは次の場所にあります。
/home/vncuser/app/oracle/Middleware/11.1.1.4/jdk160:21/bin.

注:このPATHは、現在のPATHにJDKのbinディレクトリを付加し たパスに設定されます。

 

.

同じターミナル・ウィンドウで、現在のディレクトリとweblogic.jarを含むようにJavaのCLASSPATHを 設定します。 この例のシステムでは、weblogic.jarは次の場所にあります。
/home/vncuser/app/oracle/Middleware/11.1.1.4/wlserver_10.3/server/lib/.

 

.

ソース・コードのファイル名を指定してJavaコンパイラを呼び出し、このクラスをコンパイルします (javac MultiDSTest.java)。

注:コンパイル済みのクラスであるMultiDSTest.classが作成されている場合は、注 意警告は無視してください。

 

.

クラス名を指定してJava仮想マシンを呼び出し、コンパイル済みクラスを実行します (java MultiDSTest)。 テスト・コードによって、接続したデータベースから取得したデータベース名、ホスト名、データベース・サービス名が出力されます。

テスト・コードを複数回実行し、マルチ・データソースが異なるデータベースへの接続を返すかどうかを確認します。

注:マルチ・データソースのFailoverアルゴリズムを選択した場合は、毎回同じデータベースが 選択されます。 一方、この例のようにLoad-balancingアルゴリズムを選択すると、データベースはラウンドロビン方式で選択さ れます。

 

まとめ

このチュートリアルでは、JDBCデータソースによってアクセスされるデータベース・サービスを設定する方法を説明しました。 Oracle Real Application Clustersデータベースのいずれかのノードに対応する各データソースをWebLogic Serverに作成しました。 次に、各データソースを含むマルチ・データソースをWebLogic Serverに作成しました。 開発者がデータベース接続を必要とする場合に、コードを使用してマルチ・データソースを検索すると、データソースのいずれかが選択されて、データベース接 続が返されます。

このチュートリアルでは、以下の作成方法について学習しました。

参考資料

著者

Hardware and Software Engineered to Work Together 会 社情報 |オラクルとサン | Oracle RSS Feeds | 採用情報 | お問い合わせ | サイ トマップ | 情報保護基 本方針 | ウェ ブサイトのご使用条件 | 個人情報保護基本方針