このOBEチュートリアルでは、サンプルのJava EE Webアプリケーションを使用して、Oracle
WebLogic ServerのHTTPセッション・レプリケーション機能をテストします。
はじめに、管理コンソールを使用してレプリケーション・グループを定義します。
次に、アプリケーションのXMLデプロイメント・ディスクリプタを更新して、インメモリ・レプリケーションとJDBCレプリケーションの両方をテストしま
す。 JDBCレプリケーションを使用するには、アクティブなJDBCデータソースが必要です。
現在のユーザー・セッションをホスティングしているサーバーを停止したあと、HTTPセッション・フェイルオーバーが成功したことを確認します。
約45分
このOBEチュートリアルでは、以下のトピックについて説明します。
| 概要 | ||
| システム要件 | ||
| 優先レプリケーション境界の割当て |
||
| Webアプリケーションのインメモリ・レプリケーション設定 |
||
| インメモリ・レプリケーションのテスト |
||
| JDBCレプリケーションをサポートするためのデータベースの初期化 |
||
| JDBCデータソースからクラスタへのターゲット設定 |
||
| WebアプリケーションのJDBCレプリケーション設定 |
||
| JDBCレプリケーションのテスト |
||
| まとめ | ||
| 関連情報 | ||
このアイコンの上にカーソルを置くと、すべてのスクリーンショットがロードし、表示されます。
(警告:すべてのスクリーンショットが同時にロードされるため、ご使用のインターネット接続によってはレスポンス・タイムが遅くなる場合があります。)
各手順に関連したスクリーンショットのみを表示する場合
は、それぞれの手順にある各アイコンの上にカーソルを置いてください。
WebLogic
Serverは、インメモリ・レプリケーションを使用することで、あるサーバー・インスタンスから別のサーバー・インスタンスへセッション・ステートをコ
ピーします。
プライマリ・サーバーは、クライアントからの最初の接続先となるサーバー上にプライマリ・セッションを作成してから、クラスタ内の別のWebLogic
Serverインスタンス上にセカンダリ・レプリカを作成します。
Webアプリケーションをホスティングするサーバーに障害が発生した場合に使用できるように、レプリカは常に最新の状態に保たれます。
クライアントがクラスタ内のサーバーに接続してプライマリ・セッション・ステートが作成されると、プライマリ・
ステートをホスティングしているサーバーは、セカンダリをホスティングするサーバーを決定するために、クラスタ内の他のサーバーに対して順位付けを行いま
す。
サーバーの順位は、サーバー・ロケーション(プライマリ・サーバーと同じマシン上にあるかどうか)と、プライマリ・サーバーの優先レプリケーション・グ
ループへの加入状況を組み合わせて割り当てられます。
永続JDBCレプリケーションでは、データベースはセッション・オブジェクトを保存するように設定されます。こ
の設定が行われると、クラスタ内の各サーバー・インスタンスは同じJDBCデータソースを使用して、データベース・アクセスを共有します。
このテクニックを使用すると、クラスタ内のすべてのサーバーがクライアント・リクエストを解決できるようになるため、フェイルオーバー機能は向上します
が、パフォーマンスは大きく低下します。
システム環境が次の要件を満たしていることを確認してください。
ソフトウェア要件
このチュートリアルを始める前に、次のチュートリアルをあらかじめ完了しておく必要があります。
Oracle
WebLogic Serverのインストールとドメインの作成
Oracle
WebLogic Serverの管理対象サーバーの構成
基
本的なクラスタの作成
プ
ロキシ・サーバーの構成
Configure
JDBC Data Sources
チュートリアルを完了するには、実行中のデータベースが必要になります。
最小限のハードウェア要件
| 項目 | 仕様 |
| プロセッサ速度 | 1GHz |
| メモリ | 2GB |
| ハードディスク空き容量 | 1GB |
以下の手順を実行します。
|
1. |
ApacheおよびWebLogic管理サーバーが実行されていない場合、これらを起動します。
|
||||||
|
2. |
管理コンソールを起動します。 Change Centerパネルで、「Lock & Edit」をクリックします。 Domain
Structureパネルで、「Environment」→「Servers」を選択します。 |
||||||
| 3. | クラスタ化された管理対象サーバーのうちの1台を選択します。
|
||||||
| 4. | 「Configuration」→「Cluster」タブをクリッ
クします。
|
||||||
| 5. | 次の値を入力します。
|
||||||
| 6. | 前の手順を繰り返して、クラスタ内の2台目の管理対象サーバーに対しても、同じReplication
GroupとPreferred Secondary Groupを設定します。 |
||||||
| 7. | 前の手順を繰り返して、クラスタ内の最後の管理対象サーバーに対しては、Replication
GroupとPreferred Secondary Groupを逆に設定します。
|
||||||
| 8. | Change Centerパネルで、「Activate Changes」をク
リックします。 クラスタ化された管理対象サーバーを起動します。 |
以下の手順を実行します。
|
1. |
サンプルのWebアプリケーションshoppingcart.warを ダウンロードします。
|
|
2. |
jarなどのアーカイブ・ユーティリティを使用して、shoppingcartという名前を付けたフォル ダにshoppingcart.warを解凍します。
|
| 3. |
shoppingcart/WEB-INF/weblogic.xmlファイルを編集します。 |
|
4. |
コメントのあとに、次を追加します。
|
|
5. |
任意のアーカイブ・ユーティリティを使用して、shoppingcart.warを
再作成します。 以下に例をあげます。 > cd shoppingcart
|
|
6. |
管理コンソールを使用して、shoppingcart.warをイン
ストールしてから開始します。 使用するクラスタに対して、アプリケーションのターゲット設定を行います。
|
以下の手順を実行します。
|
1. |
Webブラウザで、Apache Webサーバーを使用してshopping cartア
プリケーションを表示します。 たとえば、Apacheが80番のポートで実行される場合、http://localhost/shoppingcartを
使用します。
|
|
2. |
「Go Shopping」リンクをクリックします。 「Add to Shopping Cart」リ
ンクを使用して、カートにアイテムを追加します。 「Back to Home Page」をクリックします。 |
| 3. |
前の手順を繰り返して、カートに2番目のアイテムを追加します。 次に、「View Shopping Cart」リン クをクリックします。
|
| 4. |
管理対象サーバーを起動した際に使用したコマンド・シェルを確認します。 ユーザー・セッションがどのサーバーにホスティングされているかを割り出します。
"Your shopping cart includes: |
| 5. |
ユーザー・セッションをホスティングしているサーバーを停止します。
|
| 6. |
アプリケーションを使用して、再度ショッピング・カートを表示して、中身が変わっていないことを確認します。
|
| 7. |
再度、サーバー・シェルを使用して、ユーザーがフェイルオーバーされた(セカンダリ)サーバーを特定します。 選択したセカンダリは、使用しているマシンとレプリケーション・グループの定義に一致しているでしょうか。
|
| 8. |
停止したサーバーを再起動します。 Webブラウザを閉じます。
|
以下の手順を実行します。
|
1. |
SQLスクリプトjdbc_replication_oracle.sqlを ダウンロードします。 データベースがOracleでない場合は、WebLogic Server オ ンライン・ドキュメントから必要なSQLを取得します。
|
|
2. |
お使いのデータベースのユーティリティを使用して、jdbc_replication_oracle.sqlを実行しま す。
|
| 3. |
お使いのデータベースのユーティリティを使用して、WL_SERVLET_SESSIONSという名前の新規表が含まれ ていることを確認します。
|
以下の手順を実行します。
|
1. |
管理コンソールへ戻り、Change Centerパネルで、「Lock & Edit」をクリックします。 次に、Domain Structureパネルで、「Services」→「JDBC」→「Data Sources」を選択しま す。
|
|
2. |
「New」ボタンをクリックします。
|
|
3. |
NameフィールドとJNDI Nameフィールドに、SessionDSと いう値を入力します。 お使いのデータベース・タイプと適切なドライバを選択します。 この際、非XAドライバを選択 します。
|
|
4. |
トランザクション設定はデフォルトのままにし、「Next」をクリックします。
|
|
5. |
データベース接続に必要なプロパティを入力して、「Next」をクリックします。 次に、「Finish」 をクリックします。
|
|
6. |
新規データソースを選択します。
|
|
7. |
「Targets」タブをクリックします。
|
|
8. |
クラスタ全体に対して、データソースのターゲット設定を行います。
「Save」をクリックします。
|
| 9. |
Change Centerパネルで、「Activate Changes」をクリックします。
|
以下の手順を実行します。
|
1. |
再度、shoppingcart/WEB-INF/weblogic.xmlファイ
ルを編集します。
|
|
2. |
JDBCレプリケーションをサポートするために、<session-descriptor>要素を変更しま
す。 |
| 3. |
任意のアーカイブ・ユーティリティを使用してshoppingcart.warを
再作成し、 既存ファイルを上書きします。 以下に例をあげます。 > jar cf ../shoppingcart.war * |
| 4. |
管理コンソールを使用して、shoppingcart.warを更新(クラスタに再配置)します。
|
以下の手順を実行します。
|
1. |
再度、ショッピング・カート・アプリケーションをテストします。 カートに数個のアイテムを追加してから、その中身を表示します。
|
|
2. |
お使いのデータベースのユーティリティを使用して、WL_SERVLET_SESSIONS表の内容を確認します。 WL_CONTEXT_PATHと
いう名前の列の値が"shoppingcart.war"になっている行が含まれます。 |
| 3. | ユーザー・セッションをホスティングしているサーバーを停止します。 |
| 4. |
アプリケーションを使用して、再度ショッピング・カートを表示し、中身が変わっていないことを確認します。
|
| 5. |
ユーザーがフェイルオーバーされたサーバーを確認します。
|
このレッスンで学習した内容は次のとおりです。
| クラスタのレプリケーション・グループ設定 |
||
| インメモリ・レプリケーションまたはJDBC
レプリケーションを使用するためのWebアプリケーションの更新 |
||
| JDBCレプリケーションをサポートするため
に必要なデータベース構造の作成 |
||
| このOBEチュートリアルについての質問は、OBE Discussion Forumに投稿してください。 |
このアイコンの上にカーソルを置くと、すべてのスクリーンショットが
非表示になります。