ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Coherenceチュートリアル
12c (12.1.2)
B70747-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
 

12 管理対象WebLogic Serverを使用したセッションのキャッシュ

この演習では、WebLogic Serverインスタンス間でデプロイされたWebアプリケーション・インスタンスのセッション情報をキャッシュする方法を説明します。ここでは、Coherenceデータ・キャッシュを使用し、セッション管理のためのCoherence*Webをシームレスに組み込むことができる管理対象サーバーの使用について取り上げます。

最新のWebLogic Serverリリースをまだ導入していない場合は、次のURLで入手できます。

http://www.oracle.com/technology/software/products/middleware/index.html

この章の内容は、次のとおりです。

12.1 概要

WebLogic Serverには、デプロイされたアプリケーションでCoherenceデータ・キャッシュを使用し、セッション管理のためのCoherence*Webおよびオブジェクト・ツー・リレーショナル永続フレームワークのためのTopLink Gridをシームレスに統合する機能が組み込まれています。これらの機能はまとめてCoherenceコンテナと呼ばれます。

Coherenceコンテナについて

Coherenceコンテナは、WebLogic Serverで実行されるアプリケーションによって利用され、Coherenceデータ・クラスタ内のすべてのサーバーでアプリケーションのデータを利用できるようにするレプリケーション・キャッシュ・サービスと分散キャッシュ・サービスを提供します。アプリケーションでは、リソース・インジェクション、またはコンポーネントベースのJNDIルックアップを介して、データ・キャッシュへの直接アクセスを取得できます。WebLogic Server管理コンソールおよびWLSTを使用して、Coherenceクラスタを表示、モニター、作成および構成できます。

WebLogic ServerインスタンスでCoherenceコンテナを使用すると、アプリケーション・データのキャッシュとレプリケートされたセッション状態の格納専用のデータ層を作成できます。これは、WebLogic Serverインスタンスがアプリケーションの実行専用に使用するアプリケーション層とは分離されます。

Coherence*WebをCoherenceコンテナとともに使用することによって、アプリケーションにCoherenceベースのHTTPセッション状態の永続性を提供できます。Coherence*Webは、異なる複数のWebアプリケーション、ドメインおよび異機種のアプリケーション・サーバー間におけるHTTPセッション共有および管理を実現します。セッション・データは、アプリケーション・サーバー外のデータ・キャッシュに格納できるため、アプリケーション・サーバーのヒープ・スペースを解放し、セッション・データを消失させずにサーバーを再起動できます。

CoherenceおよびCoherence*Webは、WebLogic Serverのデフォルト・インストールに含まれています。CoherenceおよびCoherence*Webライブラリ(coherence.jarおよびcoherence-web.jar)は、WebLogic Serverのシステム・クラスパスに含まれます。これらのライブラリは、適切なクラスローダーを使用してアプリケーション・クラスをWebLogic Serverにロードします。つまり、coherence.jarまたはcoherence-web.jarファイルをWebアプリケーションのクラスパスに含める必要はありません。

Oracle WebLogic Server、CoherenceおよびCoherence*Webの統合の詳細は、『Oracle Fusion Middleware Oracle Coherence*WebでのHTTPセッション・マネージメントの管理』を参照してください。Coherenceコンテナの詳細は、『Oracle Fusion Middleware Oracle WebLogic Server Oracle Coherenceアプリケーションの開発』を参照してください。

Coherenceクラスタについて

Coherenceクラスタは、WebLogic Serverクラスタとは異なります。これらは、異なるクラスタ・プロトコルを使用して、別々に構成されます。複数のWebLogic Serverクラスタを1つのCoherenceクラスタに関連付けることができ、WebLogic Serverドメインには1つのCoherenceクラスタのみを含めることができます。Coherenceクラスタ・メンバーとして構成される管理対象サーバーは、管理対象Coherenceサーバーとして参照されます。管理対象Coherenceサーバーは、1つのCoherenceクラスタに明示的に関連付けたり、Coherenceクラスタに関連付けられている1つのWebLogic Serverクラスタに関連付けることができます。管理対象Coherenceサーバーは通常、それぞれのタイプに基づいてデータを格納するデータ層、アプリケーションをホストするアプリケーション層および外部クライアントへのアクセスを許可するプロキシ層の各層に設定されます。

WebLogicサーバー環境のCoherenceクラスタの詳細は、Oracle WebLogic Serverのクラスタの管理のCoherenceクラスタの構成および管理に関する項を参照してください。

12.2 Webアプリケーション・インスタンスのセッション情報のキャッシュ

次の例は、WebLogic Serverインスタンス間にデプロイされるWebアプリケーション・インスタンスのセッション情報をCoherenceコンテナおよびCoherence*Webがキャッシュする方法を示しています。これを行うには、Webアプリケーションを作成して、Coherenceクラスタに属する2つのWebLogic Serverインスタンスにデプロイします。このアプリケーションは、現在のカウントをセッション属性として格納する簡単なカウンタです。Coherence*Webによって、両方のサーバー・インスタンス間の属性のシリアライズとレプリケートが自動実行されます。各アプリケーション・インスタンスへのアクセスにはブラウザが使用され、インスタンス間で同じセッション属性が使用されていることが示されます。

  1. WebLogic Serverの構成および起動

  2. WebLogic Serverの作成

  3. Coherenceクラスタ構成の作成

  4. Coherence*Webローカル記憶域に対するサーバーの有効化

  5. カウンタWebアプリケーションの作成

  6. WebLogic Serverの起動

  7. アプリケーションのデプロイ

  8. サンプルの検証

12.2.1 WebLogic Serverの構成および起動

次の手順では、WebLogic Serverがデフォルトの場所であるC:\Oracle\Middleware\Oracle_Homeにインストールされていることを想定しています。

WebLogic Serverを構成および起動するには:

  1. Oracle WebLogic構成ウィザードを実行して、新しいWebLogic Serverドメインを作成します。

  2. 「ドメインの作成」ページで、「新規拡張ドメインの作成(E)」オプションを選択します。「ドメインの場所」フィールドに、ドメイン名および場所としてC:\Oracle\Middleware\Oracle_Home\user_projects\domains\test_domainと入力します。

  3. 「テンプレート」ページで、デフォルトの基本のWebLogic Serverドメインが選択されていることを確認します。

  4. 「管理者アカウント」ページで、ドメインのパスワードを入力します。

  5. 「ドメイン・モードおよびJDK」および「オプションの構成」ページで、各デフォルトを受け入れます。

  6. 「構成サマリー」 ページで、「作成」をクリックします。

  7. 最後の「構成に成功しました」ページで、「管理サーバーの起動」チェック・ボックスを選択して「完了」をクリックします。構成ウィザードによって、管理サーバーが自動的に起動します。

  8. WebLogic Server 管理コンソールを起動します。

    ブラウザから、次のURLを使用して、Oracle WebLogic Server管理コンソールにログインします: http://hostname:7001/console。コンソールが起動し、ドメインのホーム・ページが表示されます。

12.2.2 マシンの作成

WebLogic Serverインスタンスをホストするマシンを作成するには:

「ドメイン構造」ウィンドウから、「環境」「マシン」を選択します。「新規」をクリックします。「新しいマシンの作成」ページが表示されます。マシンの名前(この例ではTest)を入力して、「次」をクリックします。次のページで「終了」をクリックします。図12-1は、「新しいマシンの作成」ページを示しています。

図12-1 新しいマシンの作成

新しいマシンの作成
「図12-1 新しいマシンの作成」の説明

「マシンのサマリー」ページは、図12-2のようになります。

図12-2 マシンのサマリー

マシンのサマリー
「図12-2 マシンのサマリー」の説明

12.2.3 WebLogic Serverの作成

マシンに関連付ける2つのWebLogic Serverインスタンスを作成します。1つは、Coherence*Web記憶域を有効にし、もう1つはCoherence*Web記憶域を無効にします。これらのサーバーには後の手順でアプリケーションがデプロイされます。

サーバー・インスタンスを作成するには:

  1. 「マシンのサマリー」ページで、マシンの名前をクリックし、「マシンの設定」ページを開きます。「サーバー」タブ→「追加」をクリックして、サーバーを作成します。

  2. 「マシンにサーバーを追加」ページで「新しいサーバーを作成してこのマシンに関連付けます。」を選択し、「次」をクリックします。

  3. 「新しいサーバーの作成」ページでサーバーの詳細を指定します。

    「サーバー名」ServerAを、「サーバー・リスニング・ポート」8081を入力します。図12-3に示すように、「いいえ、これはスタンドアロン・サーバーです。」が選択されていることを確認します。「終了」をクリックします。

    図12-3 マシンへのサーバーの追加

    マシンへのサーバーの追加
    「図12-3 マシンへのサーバーの追加」の説明

  4. 「マシンの設定」ページに戻ったら、「追加」をクリックして、前述の手順を繰り返し、2番目のサーバーを作成します。

    「サーバー名」ServerBを、「サーバー・リスニング・ポート」8082を入力します。「いいえ、これはスタンドアロン・サーバーです。」が選択されていることを確認します。「終了」をクリックします。

「サーバーのサマリー」ページは、図12-4のようになります。

図12-4 「サーバーのサマリー」ページ

「サーバーのサマリー」ページ
「図12-4 「サーバーのサマリー」ページ」の説明

12.2.4 Coherenceクラスタ構成の作成

1つのCoherenceクラスタは、通信を可能にするグループ・アドレスを共有するCoherenceノードのグループです。Coherenceクラスタは、アプリケーション、モジュール、またはアプリケーション・サーバー(WebLogic Serverインスタンスまたはキャッシュ・サーバー)によって形成されるノードで構成されます。この手順では、Coherenceクラスタを作成して2つのWebLogic Serverインスタンスに割り当てます。

Coherenceクラスタを作成するには:

  1. ドメインの「構造ウィンドウ」「環境」をクリックして、「Coherenceクラスタ」をクリックします。「Coherenceクラスタのサマリー」ページで、「新規」をクリックします。「Coherenceクラスタ構成の作成」ウィザードの「Coherenceクラスタのプロパティ」ページで、「名前」フィールドにCoherenceClusterを入力して、「次」をクリックします。

    図12-5は、「Coherenceクラスタ構成の作成」ページを示しています。

    図12-5 Coherenceクラスタの作成

    Coherenceクラスタの作成
    「図12-5 Coherenceクラスタの作成」の説明

  2. 「ユニキャスト・リスニング・ポート」フィールドに、8085などの値を入力します。他の値は変更しないで、「次」をクリックします。

    図12-6 Coherenceクラスタのユニキャスト・リスニング・ポートの指定

    Coherenceクラスタのユニキャスト・リスニング・ポートの指定
    「図12-6 Coherenceクラスタのユニキャスト・リスニング・ポートの指定」の説明

  3. 「Coherenceクラスタ構成の作成」ウィザードの「Coherenceクラスタ・ターゲット」ページで、ターゲットとしてServerAServerBを選択します。「終了」をクリックします。

    図12-7 Coherenceクラスタ・ターゲットの選択

    Coherenceクラスタ・ターゲットの選択
    「図12-7 Coherenceクラスタ・ターゲットの選択」の説明

    「Coherenceクラスタのサマリー」ページは、図12-8のようになります。

    図12-8 Coherenceクラスタのサマリー

    Coherenceクラスタのサマリー
    「図12-8 Coherenceクラスタのサマリー」の説明

12.2.5 Coherence*Webローカル記憶域に対するサーバーの有効化

WebLogic Serverの1つをCoherence*Webローカル記憶域に対して有効にする必要があります。この手順では、ServerBをCoherence*Web記憶域に対して有効にします。

  1. 「ドメイン構造」ツリーで「サーバー」をクリックし、「サーバーのサマリー」を開きます。

  2. 「ServerB」をクリックします。

  3. 「ServerBの設定」で、「構成」タブをクリックし、次に「Coherence」タブをクリックします。

  4. 図12-9に示すように、Coherence*Webローカル記憶域有効チェック・ボックスを選択します。

  5. 「保存」をクリックします。

    図12-9 Coherence*Webローカル記憶域に対するサーバーの有効化

    Coherence*Webローカル記憶域に対するサーバーの有効化
    「図12-9 Coherence*Webローカル記憶域に対するサーバーの有効化」の説明

12.2.6 カウンタWebアプリケーションの作成

カウンタWebアプリケーションは、JSPとして実装される簡単なカウンタです。このカウンタはHTTPセッション属性として格納され、ページへのアクセスごとにカウントが増えます。

カウンタWebアプリケーションを作成するには:

  1. 次の手順で標準のWebアプリケーション・フォルダを作成します。

    /
    /WEB-INF
    
  2. 次のコードをテキスト・ファイルにコピーして、/WEB-INFフォルダにweb.xmlと名前を付けて保存します。

    <?xml version = '1.0' encoding = 'windows-1252'?>
    <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
       <description>Empty web.xml file for Web Application</description> 
    </web-app> 
    
  3. /WEB-INFフォルダにweblogic.xmlファイルを作成します。

    • セッション・ディスクリプタの永続ストア・タイプとしてcoherence-webを参照します。

    • coherence-cluster-refスタンザでCoherenceクラスタを参照します。

    例12-1は、サンプルのweblogic.xmlファイルを示しています。

    例12-1 サンプルweblogic.xmlファイル

    <weblogic-web-app>
      <session-descriptor> 
          <persistent-store-type>coherence-web</persistent-store-type>
      </session-descriptor> 
         <coherence-cluster-ref>
            <coherence-cluster-name>CoherenceCluster</coherence-cluster-name>
         </coherence-cluster-ref>
    </weblogic-web-app>
    
  4. WEB-INFフォルダにlibサブフォルダを作成します。空白のままにします。

  5. counter JSPの次のコードをテキスト・ファイルにコピーして、Webアプリケーション・フォルダのルートにcounter.jspと名前を付けて保存します。

    <html>
        <body>
          <h3>
           Counter :
          <%
             Integer counter = new Integer(1);
             HttpSession httpsession = request.getSession(true);
             if (httpsession.isNew()) {
                    httpsession.setAttribute("count", counter);
                    out.println(counter);
             } else {
                    int count = ((Integer) httpsession.getAttribute("count")).intValue();
                    httpsession.setAttribute("count", new Integer(++count));
                    out.println(count);
             }
          %>
          </h3>
        </body>
    </html>
    
  6. META-INFフォルダにMANIFEST.MFファイルを作成します。例12-2は、MANIFEST.MFファイルのサンプルを示しています。

    例12-2 サンプルMANIFEST.MFファイル

    Manifest-Version: 1.0
    Created-By: 1.7.0_03 (Oracle Corporation) 
    
  7. Webアプリケーション・フォルダの構成は、次のように表示されます。

    /
    /counter.jsp
    /META-INF/MANIFEST.MF
    /WEB-INF/lib/
    /WEB-INF/web.xml
    /WEB-INF/weblogic.xml
    
  8. Webアプリケーション・フォルダにZIPまたはJAR処理を行い、counter.warと名前を付けてファイルを保存します。

12.2.7 WebLogic Serverの起動

管理対象WebLogic ServerのServerAServerBを起動します。WebLogicとCoherenceは緊密に統合されているため、管理対象サーバーとともにキャッシュ・サーバーが起動します。管理対象サーバーは、コマンド行またはWebLogic Server管理コンソールから起動できます。

12.2.7.1 コマンド行からWebLogic Serverを起動するには

次に、コマンド行からサーバーを起動する手順を示します。

  1. ドメインのbinフォルダからコマンド・プロンプトを開きます。この例では、binフォルダがc:\Oracle\user_projects\domains\base_domain\binに配置されていることを想定しています。

  2. 次のコマンドを入力して、ServerAを起動します。

    startManagedWebLogic.cmd ServerA
    

    プロンプトが表示されたら、サーバーのユーザー名およびパスワードを入力します。

  3. ドメインのbinフォルダから2番目のコマンド・プロンプトを開きます。

  4. 次のコマンドを入力して、ServerBを起動します。

    startManagedWebLogic.cmd ServerB
    

    プロンプトが表示されたら、サーバーのユーザー名およびパスワードを入力します。

サーバーが実行中の場合は、WebLogic Server管理コンソールの「サーバーのサマリー」ページに図12-10に類似した応答が表示されます。

図12-10 管理対象WebLogic Serverの起動

管理対象WebLogic Serverの起動
「図12-10 管理対象WebLogic Serverの起動」の説明

12.2.7.2 WebLogic Server管理コンソールからWebLogic Serverを起動するには

ノード・マネージャを起動し、その後WebLogic Server管理コンソールからWebLogic Serverインスタンスを起動します。ノード・マネージャは、Oracle WebLogic Serverとは別のプロセスとして稼働するJavaユーティリティで、管理サーバーを基準とした場所に関係なく、管理対象サーバーに対する共通操作の実行を可能にします。

  1. ノード・マネージャを起動するには、「スタート」「すべてのプログラム」「Oracle」「WebLogic Server 12c」「ツール」「ノード・マネージャ」の順に移動します。

  2. WebLogic Server管理コンソールのドメインの「構造ウィンドウ」で、「環境」「サーバー」をクリックします。WebLogic Server管理コンソールの「サーバーのサマリー」ページから、「制御」タブをクリックして、ServerAおよびServerBを起動します。

サーバーが実行中の場合は、WebLogic Server管理コンソールの「サーバーのサマリー」ページに図12-10に類似した応答が表示されます。

12.2.8 アプリケーションのデプロイ

実行中の管理対象サーバーにcounter.warアプリケーションをデプロイします。

counter.warアプリケーションをデプロイするには:

  1. Oracle WebLogic Server管理コンソールの「ドメイン構造」メニューで、「デプロイメント」をクリックして「デプロイメントのサマリー」ページを開きます。

  2. 「インストール」をクリックします。「アプリケーション・インストール・アシスタント」ウィザードが開きます。

  3. 図12-11に示すように、counter.warファイルの場所に移動します。「次」をクリックします。

    図12-11 デプロイ可能なアプリケーションの選択

    デプロイ可能なアプリケーションの選択
    「図12-11 デプロイ可能なアプリケーションの選択」の説明

  4. 図12-12に示すように、「このデプロイメントをアプリケーションとしてインストールする」を選択します。「次」をクリックします。

    図12-12 デプロイメントのアプリケーションとしてのインストール

    デプロイメントのアプリケーションとしてのインストール
    「図12-12 デプロイメントのアプリケーションとしてのインストール」の説明

  5. 図12-13に示すように、デプロイメントのターゲットをServerAおよびServerBに指定します。

    図12-13 デプロイメントのターゲット指定

    デプロイメントのターゲット指定
    「図12-13 デプロイメントのターゲット指定」の説明

  6. 図12-14に示すように、「オプション設定」ページで、デフォルトを受け入れます。「終了」をクリックします。

    図12-14 インストール・アシスタントの「オプション設定」ページ

    インストール・アシスタントの「オプション設定」ページ
    「図12-14 インストール・アシスタントの「オプション設定」ページ」の説明

「デプロイメントのサマリー」ページの表内にcounter.warファイルが表示されます。図12-15に示すように、この表は、アプリケーションがServerAおよびServerBでアクティブかつ実行中(サーバーが実行中のため)であることを示しています。

図12-15 デプロイされたアプリケーションが表示された「デプロイメント」ウィンドウ

アプリケーションがデプロイされた「デプロイメント」ウィンドウ
「図12-15 デプロイされたアプリケーションが表示された「デプロイメント」ウィンドウ」の説明

12.2.9 サンプルの検証

サンプルを検証するには:

  1. ブラウザを開き、次のURLを使用してServerAのカウンタ・インスタンスにアクセスします。

    http://host:8081/counter/counter.jsp

    図12-16に示されるように、カウンタ・ページが表示され、カウンタが1に設定されています。

    図12-16 カウンタが1に設定されたカウンタ・ページ

    カウンタが1に設定されたカウンタ・ページ
    「図12-16 カウンタが1に設定されたカウンタ・ページ」の説明

  2. 新しいブラウザ(または新しいブラウザのタブ)で、次のURLを使用してServerBのカウンタ・インスタンスにアクセスします。

    http://host:8082/counter/counter.jsp

    図12-17に示すように、カウンタ・ページが表示され、セッション・データに基づいてカウンタが2に増えています。

    図12-17 カウンタが2に設定されたカウンタ・ページ

    カウンタが4に設定されたカウンタ・ページ
    「図12-17 カウンタが2に設定されたカウンタ・ページ」の説明

  3. ページをリフレッシュすると、カウンタが3に増えます。元のブラウザ(またはブラウザ・タブ)に戻り、インスタンスをリフレッシュすると、カウンタに4が表示されます。

12.3 カスタム・セッション・キャッシュ構成ファイルの使用

カスタム・セッション・キャッシュ構成ファイルを使用する場合は、使用しているアプリケーションでパッケージ化する必要があります。また、グリッド・アーカイブ(GAR)ファイルに格納して、記憶域が有効なCoherenceクラスタ・メンバーとして機能するWebLogic ServerクラスタにGARファイルをデプロイする必要があります。カスタム・セッション・キャッシュ構成ファイルの使用の詳細な説明はこのドキュメントの対象範囲ではありません。カスタム・セッション・キャッシュ構成ファイルの作成およびデプロイの詳細は、『Oracle Fusion Middleware Oracle Coherence*WebでのHTTPセッション・マネージメントの管理』のカスタム・セッション・キャッシュ構成ファイルの使用に関する項を参照してください。