このチュートリアルでは、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を起動していること |
|
. |
データソースのターゲット先とする管理対象サーバーを起動していること |
次の手順を実行します。
|
. |
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で、クラスタのUsernameとPasswordを 入力します。 Database Credentialsで、データベースのUsernameとPasswordを 入力します。 次に、「Continue」をクリックします。
|
|
. |
「Create Service」ボタンをクリックします。
|
|
. |
Service Nameを入力します。 「Start service after creation」 と「Update local naming parameter file」を選択します。 すべてのデータベース・インスタンスがPreferredに なっていることを確認します。 Service PropertiesのConnection Load Balancing Goalで、「Long」を選択します。 Notification Propertiesで、「Enable Load Balancing Advisory」を選択し、さらに「Throughput」オプションを選択します。 残りのフィールドはすべてデフォルトのままにします。 「OK」をクリックします。
|
|
. |
Create Service: Successfulというメッセージが表示されるまで待ちます。 サービスが表に記載されていて、ステータスが"起動中"(上矢印)であり、すべてのデータベース・インスタンスで実行中であることを確認します。
|
|
. |
Enterprise Managerからログアウトします。
|
次の手順を実行します。
|
. |
Webブラウザを開き、WebLogic Server管理コンソールのURLを入力します。 URLの形式は、http://<host>:<port>/consoleで す。 この例では、http://localhost:7001/consoleです。
|
|---|---|
|
. |
管理レベルのユーザー名とパスワードを使用してログインします。 この例の管理レベルのユーザー名はweblogicで す。 「Login」をクリックします。
|
|
. |
Domain Structure領域で、Servicesの横の「+」をクリックし、展 開します。
|
|
. |
「Data Sources」をクリックします。
|
|
. |
Change Centerで、「Lock & Edit」をクリックし、設定をロックします。
|
|
. |
設定がロックされ、変更できるようになります。
|
次の手順を実行します。
|
. |
Data Sources領域で、「New」ボタンをクリックします。 ドロップダウン・リストから、「Generic Data Source」を選択します。
|
|---|---|
|
. |
Create a New JDBC Data Source領域で、データソースのNameとJNDI 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 CapacityとCapacity Incrementを任意の値に設定します。
|
|
. |
詳細設定に移動する前に、「Save」ボタンをクリックしてこれまでの変更を保存します。
|
|
. |
さらに下にスクロールして、「Advanced」リンクを表示します。 クリックして詳細設定を開きます。
|
|
. |
「Test Connections On Reserve」を選択します。 Test Frequencyを300に 設定します。
|
|
. |
Seconds to Trust an Idle Pool Connectionが10に設定されて いることを確認します。 Connection Creation Retry Frequencyを30に設定します。
|
|
. |
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ノードごとのデータソースを作成します。 各データソースには固有のNameとJNDI Nameを設定します。 また、各データソースには固有のDatabase NameとHost Nameを設定します。 ただし、各データソースには同じservice nameを設定する必要があることに注 意してください。 この例では、これらの要素の名前は次のとおりです。
新しいデータソースを作成するたびに、前述のデータソース接続プールの設定の変更の手順に 従って、各データソースの接続プールの設定を変更します。 完了したら、管理コンソールですべてのデータソースを表示します。
注:各データソースは同じドライバのタイプ(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領域で、マルチ・データソースのNameとJNDI 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を
設定します。 この設定によって、javacとjavaの実行可能ファイルにアクセスして、Javaクラスのコンパイルと実
行を行うことができます。 WebLogic Serverインストール環境に含まれるJDKを使用できます。 この例のシステムでは、Sun JDKのbinディ
レクトリは次の場所にあります。
注:このPATHは、現在のPATHにJDKのbinディレクトリを付加し たパスに設定されます。
|
|
. |
同じターミナル・ウィンドウで、現在のディレクトリとweblogic.jarを含むようにJavaのCLASSPATHを
設定します。 この例のシステムでは、weblogic.jarは次の場所にあります。
|
|
. |
ソース・コードのファイル名を指定してJavaコンパイラを呼び出し、このクラスをコンパイルします (javac MultiDSTest.java)。
注:コンパイル済みのクラスであるMultiDSTest.classが作成されている場合は、注 意や警告は無視してください。
|
|
. |
クラス名を指定してJava仮想マシンを呼び出し、コンパイル済みクラスを実行します (java MultiDSTest)。 テスト・コードによって、接続したデータベースから取得したデータベース名、ホスト名、データベース・サービス名が出力されます。 テスト・コードを複数回実行し、マルチ・データソースが異なるデータベースへの接続を返すかどうかを確認します。 注:マルチ・データソースのFailoverアルゴリズムを選択した場合は、毎回同じデータベースが 選択されます。 一方、この例のようにLoad-balancingアルゴリズムを選択すると、データベースはラウンドロビン方式で選択さ れます。
|
このチュートリアルでは、JDBCデータソースによってアクセスされるデータベース・サービスを設定する方法を説明しました。 Oracle Real Application Clustersデータベースのいずれかのノードに対応する各データソースをWebLogic Serverに作成しました。 次に、各データソースを含むマルチ・データソースをWebLogic Serverに作成しました。 開発者がデータベース接続を必要とする場合に、コードを使用してマルチ・データソースを検索すると、データソースのいずれかが選択されて、データベース接 続が返されます。
このチュートリアルでは、以下の作成方法について学習しました。
![]()
|
会
社情報 |オラクルとサン | |