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

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

目的

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

所要時間

約30分

概要

このチュートリアルでは、Oracle WebLogic Server(Oracle WLS)を、単一のGridLink JDBCデータソース経由で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 RAC Clusterの検証


このチュートリアルでOracle RACクラスタが動作することを確認するには、以下の手順を実行します。

有効なサービスの確認

次の手順を実行します。

.

Oracle RACのいずれかのノードで、<ORACLE_HOME>/network/admin内 のtnsnames.oraファイルを確認します。 この例のシステムのノード1では、<ORACLE_HOME>/u01/app/oracle/product/11.2.0/dbhome_1で す。

 

.

このファイルで、サービスが記載されていることを確認します。 この例のサービス名はMYHASERVICEです。

 

.

サービスが記載されていない場合は、次の手順に進む前に、『Creating a Multi Data Source in WebLogic Server 11g R1 to Access Oracle RAC 11g R2』というOracle by Example(OBE)を参照し、Creating a Database Serviceの手順を実行してください。

 

Oracle RACインスタンスへの接続の確認

次の手順を実行します。

.

test.shファイルとtest.sqlファイルをダウンロードし、Oracle RACデータベース・インスタンスが実行中のいずれかのマシンに保存します。

 

.

test.sqlを確認します。 このスクリプトは、データベース・インスタンス名、データベース・ホスト名、データベース・サービス名を出力します。 このファイルを変更する必要はありません。

 

.

test.shを編集し、修正が完了したら保存します。 このスクリプトではループが5回発生しています。 それぞれのループで、SQL*Plusにログインし、test.sqlスクリプトを実行します。 SQL*Plusへ のログイン時に有効なユーザー名とパスワードを使用してログインするよう、test.shを編集する必要があります。この例では、ユーザー 名はsystem、パスワードはoracle_4Uです。 また、お使いのサービス名(この例ではMYHASERVICE) と一致するよう、サービス名を変更する必要もあります。

 

.

修正が完了したら、test.shを実行します。 出力結果から、Oracle RACノードへのアクセスを確認します。

 

Single Client Access Name(SCAN)リスナーの実行の確認

次の手順を実行します。

.

Oracle RACのいずれかのノードのターミナル・ウィンドウで、srvctl config scan_listenerコ マンドを入力します。 出力結果が次のようになっていることを確認します。

出力結果の"Port: TCP:"の後にあるSCANリスナー・ポートをメモします。 この例では、1521で す。

 

.

次に、srvctl status scan_listenerコマンドを入力します。 出力結果が次のようになっていることを確認します。

 

.

最後に、srvctl config scanコマンドを入力します。 出力結果が次のようになっていることを確認します。

出力結果の"SCAN name:"の後にあるURLの最初の部分のSCANリスナー名をメモします。 この例では、cluster01-scanです。

SCAN設定:SCANリスナーが実行中の場合も、企業のドメイン・ネーム・サービス(DNS)でSCANを定義する か、Oracleグリッド・ネーミング・サービス(Oracle GNS)を使用してSCANを定義する必要があります。 詳しくは、『Single Client Access Name』のドキュメントをダウンロードして確認し てください。

SCANを使用していない場合:SCANを使用していない場合や設定していない場合でも、このチュートリアルを実行でき ます。 GridLinkデータソースではSCANを使用せず、個々のノードに対して設定することが可能です。 "SCANを使用していない場合"の説明をすぐに参照する場合は、GridLinkデータソースの作成を 確認してください。

 

GridLinkデータソースの作成


Oracle RACデータベースのすべてのノードに対応する、単一のGridLinkデータソースを作成します。 GridLinkデータソースを作成するには、以下の手順を実行します。

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」をクリックし、設定をロックします。

 

.

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

 

GridLinkデータソースの作成

次の手順を実行します。

.

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

 

.

Create a New JDBC GridLink Data Source領域で、データソースのNameJNDI Nameを入力し、XA Driverを使用するかどうかを選択します。 「Next」をクリックします。

 

.

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

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

 

.

SCANを使用している場合は、GridLink data source connection Properties Optionsで、この例のように「Enter complete JDBC URL」を選択します。 「Next」 をクリックします。

注:SCANを使用していない場合は、この手順を実行しないでください。 代わりに、SCANを使用していない場合という代替の手順を参照してください。 代替の手順の中で、通常の手順に戻るタイミングが示されています。

 

.

ここでComplete JDBC URLを入力します。 形式は、jdbc:oracle:thin:@<scan-listener-name>:<scan-listener-port>/<service-name>で す。

<scan-listener-name>は、先にsrvctl config scanコマンドを実行した際に表示された内容です。 SCANリスナー名は、コマンドの出力結果の"SCAN name:"の後ろにあるURLの最初の部分です。 この例では、cluster01-scanです。

<scan-listener-port>は、先にsrvctl config scan_listenerコマンドを実行した際に表示された内容です。 SCANリスナー・ポートは、コマンドの出力結果の"Port: TCP:"の後にあります。 この例では、1521です。

<service-name>は、設定したデータベース・サービスの名前です。 この例のサービス名はMYHASERVICEです。

このため、この例のURL全体は、次のようになります。
jdbc:oracle:thin:@cluster01-scan:1521/MYHASERVICE

また、この画面で、Database User Nameを入力し、さらにPasswordフィールド とConfirm Passwordフィールドのそれぞれにパスワードを入力します。

Next」をクリックします。

 

.

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

 

.

設定が有効な場合は、緑の"成功"メッセージが表示されます。 赤の"失敗"メッセージが表示された場合は、「Back」 ボタンをクリックして、設定の問題を解決します。 テストが成功したら、「Next」をクリックします。

 

.

ONS Client Configuration画面で情報を入力 する前に、Oracle Notification Service(ONS)のホストとポートを確認する必要があります。 ONSのホスト名は、ノードのDNS名となります。 ONSのポートは、ons.configファイルに記載されています。

いずれかのノードにログオンします。 Gridインストール領域に、gridディレクトリがあります。 その下に、opmnディ レクトリ(Oracle Process Manager and Notification Server)があります。 OPMN(Oracle Process Manager and Notification Server)のconfディレクトリの下に、ons.configファ イルがあります。 このファイルのremoteportの値をメモします。

この例のシステムでは、ons.configファイルのあるディレクトリは/u01/app/11.2.0/grid/opmn/conf/で あり、このファイルのremoteport6200です。

 

.

ONS Client Configuration画面で、「FAN Enabled」を選択します。

 

.

同じ画面で、すべてのONS host and portを入力し、「Add」ボタンをクリックします。 各ホストのDNS名、コロン、ons.configファイルに記載されていたONSポート番号の順に記述します。

 

.

ONSのホストとポートをすべて入力したら、「Next」をクリックします。

注:ONS Walletは使用していないので、このすべてのフィールド(画像には表示されていません) は空白になります。

 

.

次の画面で、「Test All ONS Nodes」ボタンをクリックします。

 

.

それぞれのONSノードについて緑の"成功"メッセージが表示されます。 表示されない場合は、「Back」ボタンをク リックし、設定を修正して、再度実行します。 成功したら、「Next」をクリックします。

 

.

ターゲット・サーバー(複数可)を選択し、「Finish」をクリックします。

 

.

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

 

.

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

 

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

次の手順を実行します。

.

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

 

.

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

 

.

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

 

.

下にスクロールし、Initial CapacityMaximum CapacityCapacity Incrementの各フィールドを表示します。 これらのフィールドを任意の値に設定します。 この例では、それぞれ5505に 設定しています。

 

.

DBAの指示に従って、接続プールの設定に対してその他の変更を行います。 完了したら、「Save」をクリックしま す。

 

.

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

 

GridLinkデータソースのテスト


GridLinkデータソースをテストするには、以下の手順を実行します。

GridLinkデータソースのテスト


.

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

mainメソッドの上部にあるString変数の一部を、お使いの環境に合わせて編集する必要があります。 これらの変数には、WebLogic Serverのホストとポート、データベースのユーザー名とパスワード、GridLinkデータソースの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 GridLinkDSTest.java)。

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

 

.

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

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

注:このターミナル・ウィンドウを閉じないでください。 次の項で使用します。

 

1つのノードがダウンした状態での GridLinkデータソースのテスト


.

実行したテスト・クライアントからの出力結果を確認し、使用中のデータベースを1つ選択します。 他のデータベースよりも多く使用されているデータベースがある場合は、そのノードを選択します。 この例では、host01上のorcl1デー タベースです。

 

.

そのデータベースが実行中のホストにログオンし、SQL*Plussysdbaとしてアクセスします。

 

.

shutdown immediateコマンドを入力します。

注:コマンドの最後に必ず";"を入力してください。

 

.

データベースが停止したら、使用していたターミナル・ウィンドウでjava GridLinkDSTestと入力して、 Javaテスト・クライアントを再度実行します。 GridLinkデータソースが停止しているデータベースを使用せず、他のノードにフェイルオーバーしていることがわかります。

 

.

SQL*Plusに戻り、startupコマンドを使用してデータベースを再起動します(ここでも、必ず ";"を入力してください)。 次に、exitコマンドを使用してSQL*Plusを終了します。

注:サービス経由で接続するテスト・クライアントがそのノードを再度使用できるようにするには、停止し再起動されたデー タベース・ノード上でサービスを再起動する必要があります。

 

SCANを使用していない場合


ここで説明する手順は、GridLinkデータソースの作成の項での一部の手順に置き換わるものです。 GridLinkデータソースの作成の項で、SCANを使用していないので代替の手順を参照するよう指示された場合は、次の手順を実行してください。

.

SCANを使用していない場合は、GridLink data source connection Properties Optionsで、この例のように「Enter individual listener information」を選択しま す。 「Next」をクリックします。

 

.

Connection Properties画面で、Service Nameを入力します。 この例では、MYHASERVICEです。

 

.

同じ画面で、すべてのデータベースのHost and portを入力し、「Add」ボタンをクリックし ます。 各Oracle RACデータベース・ノードのホスト名とポートを使用します。

 

.

この画面で、Database User Nameを入力し、さらにPasswordフィールドとConfirm Passwordフィールドのそれぞれにパスワードを入力します。 「Next」をクリックします。

 

.

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

 

.

設定が有効な場合は、緑の"成功"メッセージが表示されます。 赤の"失敗"メッセージが表示された場合は、「Back」 ボタンをクリックして、設定の問題を解決します。 テストが成功したら、「Next」をクリックします。

 

.

その他の手順は、SCANを使用している場合と同様です。 ここをクリックし て、一般的な手順に戻ってください。

 

まとめ

このチュートリアルでは、Oracle RACデータベースのすべてのノードにアクセスするように単一のGridLinkデータソースを設定する方法を説明しました。 開発者がデータベース接続を必要とする場合に、コードを使用してGridLinkデータソースを検索すると、Oracle RACデータベースのいずれかのノードに対するデータベース接続を取得できます。

このチュートリアルで学習した内容は、以下のとおりです。

参考資料

著者

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