ヘッダーをスキップ
Oracle Coherenceリリース・ノート
リリース3.4.1
B52975-01
  目次
目次

戻る
戻る
 
 

2 ドキュメントの記載内容の誤り

この章では、既存のOracle Coherenceドキュメント・ライブラリ(『Oracle Coherenceスタート・ガイド』、『Oracle Coherence開発者ガイド』および『Oracle Coherenceユーザーズ・ガイド』)への変更、追加および修正の内容について説明します。Oracle Coherenceの最新ドキュメント・ライブラリは、次のURLで入手できます。

http://download.oracle.com/docs/cd/E13924_01/index.htm

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

2.1 Coherence Webセッション管理モジュール(3.4.1)のインストール

2.1.1 Coherence*Webセッション管理モジュール: サポート対象のWebコンテナ

表2-1は、Coherence*Webセッション管理モジュールでサポートされているWebコンテナと、それぞれのWebコンテナに固有のインストール情報をまとめたものです。

表 2-1 Coherence*WebでサポートされているWebコンテナ

アプリケーション・サーバー サーバー・タイプの別名* インストール手順の参照先

Apache Tomcat 4.1.x

Generic

「Coherence*Webセッション管理モジュールのインストールの一般的な手順」


Apache Tomcat 5.0.x

Generic

「Coherence*Webセッション管理モジュールのインストールの一般的な手順」


Apache Tomcat 5.5.x

Generic

「Coherence*Webセッション管理モジュールのインストールの一般的な手順」


Apache Tomcat 6.0.x

Generic

「Coherence*Webセッション管理モジュールのインストールの一般的な手順」


Caucho Resin 3.0.x

Resin/3.0.x

「Caucho Resin 3.0.xへのCoherence*Webセッション管理モジュールのインストール」


Caucho Resin 3.1.x

Resin/3.1.x

「Caucho Resin 3.1.xへのCoherence*Webセッション管理モジュールのインストール」


IronFlare Orion 2.0.x

Orion/2.0.x

「Coherence*Webセッション管理モジュールのインストールの一般的な手順」


IBM WebSphere 5.x

WebSphere/5.x

「Coherence*Webセッション管理モジュールのインストールの一般的な手順」


IBM WebSphere 6.x

WebSphere/6.x

「Coherence*Webセッション管理モジュールのインストールの一般的な手順」


JBoss Application Server

Jetty/4.2.x、Jetty/5.1.xまたはGeneric

「Coherence*Webセッション管理モジュールのインストールの一般的な手順」


Jetty 4.2.x

Jetty/4.2.x

「Coherence*Webセッション管理モジュールのインストールの一般的な手順」


Jetty 5.1.x

Jetty/5.1.x

「Coherence*Webセッション管理モジュールのインストールの一般的な手順」


Jetty 6.1.x

Generic

「Coherence*Webセッション管理モジュールのインストールの一般的な手順」


New Atlanta ServletExec 5.0

ServletExec/5.x

「Coherence*Webセッション管理モジュールのインストールの一般的な手順」


Oracle OC4J 10.1.2.x

Oracle/10.1.2.x

「Coherence*Webセッション管理モジュールのインストールの一般的な手順」


Oracle OC4J 10.1.3.x

Oracle/10.1.3.x

「Coherence*Webセッション管理モジュールのインストールの一般的な手順」


Oracle WebLogic 8.x

WebLogic/8.x

「Coherence*Webセッション管理モジュールのインストールの一般的な手順」


Oracle WebLogic 9.x

WebLogic/9.x

「Coherence*Webセッション管理モジュールのインストールの一般的な手順」


Oracle WebLogic 10.x

WebLogic/10.x

「Oracle WebLogic 10.xへのCoherence*Webセッション管理モジュールのインストール」


Sun ONE 6.x

Generic

「Coherence*Webセッション管理モジュールのインストールの一般的な手順」


Sun ONE 7.x

Generic

「Coherence*Webセッション管理モジュールのインストールの一般的な手順」


Sun ONE 8.x

Generic

「Coherence*Webセッション管理モジュールのインストールの一般的な手順」



注意:

* -serverコマンドライン・オプションを使用してCoherence*Webインストーラに渡されるサーバー・タイプの別名

2.1.2 Coherence*Webセッション管理モジュールのインストールの一般的な手順

Java EEアプリケーションでCoherence*Webを有効にするには、デプロイ前に、デプロイ準備ができているアプリケーション(推奨)を、自動インストーラを使用して実行する必要があります。自動インストーラで、アプリケーションをデプロイする準備が行われます。

デプロイするJava EEアプリケーション用にCoherence*Webをインストールするには:

  • アプリケーション・ディレクトリ、.earファイルまたは.warファイルが、別のプロセスで使用またはアクセスされていないことを確認します。

  • 現在のディレクトリをCoherenceライブラリ・ディレクトリに変更します(Windowsの場合は%COHERENCE_HOME%\lib、UNIXの場合は$COHERENCE_HOME/lib)。

  • Javaコマンドが実行されるようにパスを構成します。

  • アプリケーションのフルパスおよび前述の表にあるサーバー名を指定して次のコマンドを実行し(コマンドラインで<app-path>および<server-type>を置き換える)、アプリケーションの検査手順を完了します。

    java -jar webInstaller.jar <app-path> -inspect -server:<server-type>
    

    アプリケーションが配置されているディレクトリで、Java EEアプリケーション用のコンフィギュレーション・ディスクリプタ・ファイルcoherence-web.xmlが作成または更新されます(すでに存在する場合)。このコンフィギュレーション・ディスクリプタには、インストーラが推奨するCoherence*Webのデフォルト設定が含まれています。このままインストール手順に進むか、設定を確認し、必要に応じて変更してからインストール手順に進むことができます。たとえば、coherence-web.xmlコンフィギュレーション・ディスクリプタでcontext-paramオプションを設定すると、特定の機能を有効化できます。

    • 表2-2に示す設定では、すべてのServletContext(グローバル)属性がクラスタ化され、クラスタ内のサーバーがこれらの属性に同じ値を共有し、これらの属性が変更されたときにサーブレット仕様で指定したイベントを受信します。

      表2-2 ServletContext属性をクラスタ化する設定

      パラメータ

      param-name

      coherence-servletcontext-clustered

      param-value

      true


    • 表2-3の設定により、アプリケーション内に存在するすべてのセッションを列挙するか、任意の1つのセッションを取得して、調査または操作できます。

      表2-3 アプリケーション内のすべてのセッションを列挙する設定

      パラメータ

      param-name

      coherence-enable-sessioncontext

      param-value

      true


    • 表2-4の設定により、(SecureRandomアルゴリズムを使用して生成される)HttpSession IDの長さを拡大できます。長さの値に制限はありませんが、実際には(セッションIDの維持方法に応じて)CookieまたはURLに収まるように短くする必要があります。このIDを長くすると、セッションが意図的にハイジャックされる可能性が低くなります。

      表2-4 HTTPSession IDの長さを拡大する設定

      パラメータ

      param-name

      coherence-session-id-length

      param-value

      32


    • デフォルトでは、HttpSession IDはCookie内で管理されます。アプリケーションでURLエンコーディングがサポートされている場合は、表2-5のオプションを設定して有効にします。

      表2-5 URLエンコーディングをサポートする設定

      パラメータ

      param-name

      coherence-session-urlencode-enabled

      param-value

      true


      これらの変更が行われていることを二重にチェックした後で、ファイルを保存してエディタを終了します。シェルまたはコマンドラインから作業している場合は、必ずCoherenceのライブラリ・ディレクトリに戻ってください。

  • アプリケーションのフルパスを指定して次のコマンドを実行し(コマンドラインで<app-path>を置き換える)、Coherence*Webアプリケーションのインストールを実行します。

    java -jar webInstaller.jar <app-path> -install
    

    インストーラで使用する有効なcoherence-web.xmlコンフィギュレーション・ディスクリプタが、アプリケーションと同じディレクトリ内に存在する必要があります。

  • 更新済のアプリケーションをデプロイし、必要に応じてロード・バランサを使用して、すべてが予想どおりに機能することを確認します。ロード・バランサはテストのみを目的としているため、本番環境では使用しないでください。

2.1.3 Caucho Resin 3.0.xへのCoherence*Webセッション管理モジュールのインストール

Coherence*Webセッション管理モジュールをCaucho Resin 3.0.xサーバーにインストールする場合の追加手順は次のとおりです。

  1. Coherenceのlibraryディレクトリ内で、webInstaller.jarからcoherence-web.jarを抽出します。

    jar -xvf webInstaller.jar web-install/coherence-web.jar
    

    これにより、coherence-web.jarファイルがweb-installというサブディレクトリに抽出されます。次のコマンドを使用して、coherence-web.jarファイルをlibraryディレクトリ内の1つ上のレベルに移動します。

    Windowsの場合:

    move web-install\coherence-web.jar .
    rmdir web-install
    

    UNIXの場合:

    mv web-install/coherence-web.jar .
    rmdir web-install
    
  2. サーバー・クラスタで実行するResinのインストールごとに、次のコマンドを使用してライブラリを更新します(ここでは形式上複数行に分けて表示してありますが、実際は単一のコマンドとして1行に入力します)。

    java -cp coherence.jar;coherence-web.jar
    com.tangosol.coherence.servlet.WebPluginInstaller <resin-home-path> -install
    

    たとえば、Windowsでは次のようになります。

    java -cp coherence.jar;coherence-web.jar
    com.tangosol.coherence.servlet.WebPluginInstaller C:\opt\resin30 -install
    
  3. Coherence*Webセッション管理モジュールの一般的なインストール手順に従って、サーバー・タイプにResin/3.0.xを指定します。

2.1.4 Caucho Resin 3.1.xへのCoherence*Webセッション管理モジュールのインストール

Coherence*Webセッション管理モジュールをCaucho Resin 3.1.xサーバーにインストールする場合の追加手順は次のとおりです。

  1. Coherenceのlibraryディレクトリ内で、webInstaller.jarからcoherence-web.jarを抽出します。

    jar -xvf webInstaller.jar web-install/coherence-web.jar
    

    これにより、coherence-web.jarファイルがweb-installというサブディレクトリに抽出されます。次のコマンドを使用して、coherence-web.jarファイルをlibraryディレクトリ内の1つ上のレベルに移動します。

    Windowsの場合:

    move web-install\coherence-web.jar .
    rmdir web-install
    

    UNIXの場合:

    mv web-install/coherence-web.jar .
    rmdir web-install
    
  2. サーバー・クラスタで実行するResinのインストールごとに、次のコマンドを使用してライブラリを更新します(ここでは形式上複数行に分けて表示してありますが、実際は単一のコマンドとして1行に入力します)。

    java -cp coherence.jar;coherence-web.jar
    com.tangosol.coherence.servlet.WebPluginInstaller <resin-home-path> -install
    

    たとえば、Windowsでは次のようになります。

    java -cp coherence.jar;coherence-web.jar
    com.tangosol.coherence.servlet.WebPluginInstaller C:\opt\resin31 -install
    
  3. Coherence*Webセッション管理モジュールの一般的なインストール手順に従って、サーバー・タイプにResin/3.1.xを指定します。

2.1.5 Oracle OC4J 10.1.2.xへのCoherence*Webセッション管理モジュールのインストール

Coherence*Webセッション管理モジュールをOracle OC4J 10.1.2.xサーバーにインストールする場合の追加手順は次のとおりです。

  1. Coherenceのlibraryディレクトリ内で、webInstaller.jarからcoherence-web.jarを抽出します。

    jar -xvf webInstaller.jar web-install/coherence-web.jar
    

    これにより、coherence-web.jarファイルがweb-installというサブディレクトリに抽出されます。次のコマンドを使用して、coherence-web.jarファイルをlibraryディレクトリ内の1つ上のレベルに移動します。

    Windowsの場合:

    move web-install\coherence-web.jar .
    rmdir web-install
    

    UNIXの場合:

    mv web-install/coherence-web.jar .
    rmdir web-install
    
  2. サーバー・クラスタで実行するOC4Jのインストールごとに、次のコマンドを使用してライブラリを更新します(ここでは形式上複数行に分けて表示してありますが、実際は単一のコマンドとして1行に入力します)。

    java -cp coherence.jar;coherence-web.jar
    com.tangosol.coherence.servlet.WebPluginInstaller <oc4j-home-path> -install
    

    たとえば、Windowsでは次のようになります。

    java -cp coherence.jar;coherence-web.jar
    com.tangosol.coherence.servlet.WebPluginInstaller C:\opt\oracle1012\j2ee\home
    
  3. Coherence*Webセッション管理モジュールの一般的なインストール手順に従って、サーバー・タイプにOracle/10.1.2.xを指定します。

2.1.6 Oracle WebLogic 10.xへのCoherence*Webセッション管理モジュールのインストール

Coherence*Webセッション管理モジュールをOracle WebLogic 10.xサーバーにインストールする場合の追加手順は次のとおりです。

  1. Coherenceのlibraryディレクトリ内で、webInstaller.jarからcoherence-web.jarを抽出します。

    jar -xvf webInstaller.jar web-install/coherence-web.jar
    

    これにより、coherence-web.jarファイルがweb-installというサブディレクトリに抽出されます。次のコマンドを使用して、coherence-web.jarファイルをlibraryディレクトリ内の1つ上のレベルに移動します。

    Windowsの場合:

    move web-install\coherence-web.jar .
    rmdir web-install
    

    UNIXの場合:

    mv web-install/coherence-web.jar .
    rmdir web-install
    
  2. サーバー・クラスタで実行するWebLogic 10.xのインストールごとに、次のコマンドを使用してライブラリを更新します(ここでは形式上複数行に分けて表示してありますが、実際は単一のコマンドとして1行に入力します)。

    java -cp coherence.jar;coherence-web.jar
    com.tangosol.coherence.servlet.WebPluginInstaller <wls-home-path> -install
    

    たとえば、Windowsでは次のようになります。

    java -cp coherence.jar;coherence-web.jar
    com.tangosol.coherence.servlet.WebPluginInstaller C:\bea\weblogic\wlserver_10 -install
    
  3. Coherence*Webセッション管理モジュールの一般的なインストール手順に従って、サーバー・タイプにWebLogic/10.xを指定します。

2.1.7 Coherence*WebインストーラによるJava EEアプリケーションの設定方法

検査手順において、Coherence*Webインストーラでは次のタスクが実行されます。

  1. テンプレートのcoherence-web.xmlコンフィギュレーション・ファイルを生成します。このファイルには、アプリケーションおよびターゲットWebコンテナに関する基本的な情報と、ターゲットWebコンテナに該当する一連のデフォルトのCoherence*Webコンフィギュレーション・コンテキスト・パラメータが含まれます。既存のcoherence-web.xmlコンフィギュレーション・ファイルがある場合(Coherence*Webインストーラを前回実行したときのものなど)は、既存ファイル内のコンテキスト・パラメータが生成されたテンプレートにマージされます。

  2. ターゲットのJava EEアプリケーション内のWebアプリケーションごとにJSPを列挙して、各JSPに関する情報をcoherence-web.xmlコンフィギュレーション・ファイルに追加します。

  3. ターゲットのJava EEアプリケーション内のWebアプリケーションごとにTLDを列挙して、各TLDに関する情報をcoherence-web.xmlコンフィギュレーション・ファイルに追加します。

インストール手順において、Coherence*Webインストーラでは次のタスクが実行されます。

  1. アンインストール手順でリストアできるよう、元のJava EEアプリケーションのバックアップを作成します。

  2. 検査手順の手順1で生成されたCoherence*Webコンフィギュレーション・コンテキスト・パラメータを、ターゲットのJava EEアプリケーションに含まれる各Webアプリケーションのweb.xmlディスクリプタに追加します。

  3. アプリケーション固有のServletContextListenerServletContextAttributeListenerServletRequestListenerServletRequestAttributeListenerHttpSessionListenerおよびHttpSessionAttributeListenerの各クラス(TLDで登録されたものを含む)を、各Webアプリケーションから登録解除します。

  4. web.xmlディスクリプタごとに、Coherence*Web ServletContextListenerを登録します。実行時、Coherence*Web ServletContextListenerは各ServletContextEventを、それぞれのアプリケーション固有のServletContextListenerに伝播します。

  5. web.xmlディスクリプタごとに、Coherence*Web ServletContextAttributeListenerを登録します。実行時、Coherence*Web ServletContextAttributeListenerは各ServletContextAttributeEventを、それぞれのアプリケーション固有のServletContextAttributeListenerに伝播します。

  6. web.xmlディスクリプタで宣言されているアプリケーション固有のサーブレットをCoherence*Web SessionServletでラップします。実行時、各Coherence*Web SessionServletはラップされたサーブレットに委任します。

  7. 次のディレクティブを、検査手順の手順2で列挙した各JSPに追加します。

    <%@ page extends="com.tangosol.coherence.servlet.api22.JspServlet" %>
    

アンインストール手順では、設定済のJava EEアプリケーションが、インストール手順の手順1で作成した元のバージョンのバックアップに置き換えられます。

2.1.8 HTTPセッション管理のテスト(専用のロード・バランサがない場合)

Coherenceには軽量のソフトウェア・ロード・バランサが付随しています。この用途はテストのみです。ロード・バランサは、セッション管理などの機能をテストする際に便利で、簡単に使用できます。

  1. 複数のアプリケーション・サーバー・プロセスを1つ以上のサーバー・マシンで開始し、それぞれ一意のIPアドレスとポートの組合せでアプリケーションを実行します。

  2. コマンド(またはシェル)ウィンドウを開きます。

  3. 現在のディレクトリをCoherenceライブラリ・ディレクトリに変更します(Windowsの場合は%COHERENCE_HOME%\lib、UNIXの場合は$COHERENCE_HOME/lib)。

  4. Javaコマンドが実行されるようにパスを構成します。

  5. 次のコマンドラインでソフトウェア・ロード・バランサを起動します。これらのコマンドラインをそれぞれ実行すると、デフォルトのHTTPポート(ポート80)でアプリケーションが使用可能になります。

    ポート70017002で2つのアプリケーション・サーバー・インスタンスを実行している1つのマシンでロード・バランシングをローカルにテストするコマンドは次のとおりです。

    java -jar coherence-loadbalancer.jar localhost:80 localhost:7001 localhost:7002
    

    server1というマシンでロード・バランサをローカルに実行し、server1server2およびserver3のポート7001にロード・バランシングするコマンドは次のとおりです。

    java -jar coherence-loadbalancer.jar server1:80 server1:7001 server2:7001 server3:7001
    

    前述のコマンドラインの場合、以前http://server1:7001/my.jspというURLでアクセスしていたアプリケーションは、http://server1:80/my.jspまたはhttp://server1/my.jspというURLのみでアクセスされます。

    表2-6に、サポートされているコマンドライン・オプションを示します。

    表2-6 HTTPセッション管理をテストするコマンドライン・オプション

    オプション 説明

    -backlog

    TCP/IP受入れバックログ・オプションを、指定した値に設定します(例: -backlog=64)。

    -random

    ランダム・ロード・バランシング・アルゴリズムを使用するよう指定します(デフォルト)。

    -roundrobin

    ラウンドロビン・ロード・バランシング・アルゴリズムを使用するよう指定します。

    -threads

    指定した数のリクエスト/レスポンスのスレッド・ペアを使用します(したがって、追加のデーモン・スレッドの合計数は、指定した値の2倍になります)(例: -threads=64)。


    アプリケーションで、相対リダイレクトのみ、またはロード・バランサ・アドレスが使用されていることを確認してください。

2.2 CoherenceおよびWebLogicポータル(3.4.1)の使用

Coherenceは、Oracle WebLogicポータルと緊密に統合して、ポータル・アプリケーション用のWAN対応クラスタ化キャッシュ機能を提供します。特に、次の統合ポイントを対象としています。

2.2.1 P13N CacheProvider SPIの実装

内部的には、WebLogicポータルは独自のキャッシュ・サービスを使用して、ポータル、パーソナライズおよびコマースの各データをキャッシュします。その説明は次を参照してください。

http://download.oracle.com/docs/cd/E13155_01/wlp/docs103/javadoc/com/bea/p13n/cache/package-summary.html

WebLogicポータル8.1.6以降には、サ―ド・パーティ・キャッシュ・ベンダーが実装できるP13Nキャッシュ・サービス用のSPIが備わっています。Coherenceには、P13N CacheProvider SPIの実装が用意されています。これをWebLogicポータル・アプリケーションにインストールすると、コード変更せずに、キャッシュしたP13Nデータを透過的に管理できます。また、CoherenceとWebLogicポータルを組み合せることで、キャッシュ・トポロジをきわめて柔軟に選択できるようになります。

たとえば、ポータル・サーバーが4GBのヒープ限界(32ビットJVMの場合)に達している場合やGC時間が長くなっている場合は、キャッシュのクライアント/サーバー・トポロジを利用して、シリアライズ可能なP13Nの状態をポータルのJVMから1つ以上の専用Coherenceキャッシュ・サーバーに移動することで、ポータルのJVMのヒープ・サイズを削減し、GC時間を短縮できます。また、Coherenceの管理フレームワークを利用して統計を詳しく監視することで、より適切な状態にP13Nのキャッシュ設定を調整することができます。さらに、CoherenceのCacheProviderを使用すると、標準のP13NキャッシュAPIを使用して、ポートレットでCoherenceのキャッシュ・サービスを利用することもできます。

CoherenceのP13N CacheProviderをインストールするには、Coherenceインストールのlibディレクトリ内にあるcoherence-wlp.jarライブラリとcoherence.jarライブラリを、WebLogicポータル・アプリケーションのAPP-INF/libディレクトリにコピーします。さらに、各WLPアプリケーションのMETA-INFディレクトリにあるp13n-cache-config.xmlファイルで、Coherence P13N CacheProviderをデフォルトのプロバイダとして構成する必要があります。具体的には、最初の<cache>要素の直前に次の行を追加します。

<default-provider-id>com.tangosol.coherence.weblogic</default-provider-id>

プロバイダで使用するCoherence CacheProviderおよびCoherenceキャッシュの構成方法の詳細は、PortalCacheProviderクラスのJavadocを参照してください。また、WebLogicポータルで使用されているキャッシュの一覧は、次のドキュメントを参照してください。

http://download.oracle.com/docs/cd/E13155_01/wlp/docs103/caches/caches.html

2.2.2 Coherenceを使用したWSRPフェデレーテッド・ポータル間でのデータ共有

Web Services for Remote Portlets(WSRP)は、任意のポータル・サーバーとサーバー・クラスタでホストされているポータル・フェデレーションのサポート用に設計されたプロトコルです。開発者は、WSRPを使用して、他のリモート・ポータルでホストされている各種ポートレットからコンテンツとユーザー・インタフェース(UI)を集約します。WSRPのみでは、スケーラブルで高い信頼性とパフォーマンスを持ったフェデレーテッド・ポータルを実装して、分散ポートレットで共有されているデータのライフサイクルを作成、アクセスおよび管理することはできません。このような課題を解決するために、WebLogicポータルにはWSRP仕様の拡張が用意されています。この拡張をOracle Coherenceと組み合せると、スケーラブルで高い信頼性とパフォーマンスを備えた方法で、WSRPのコンシューマとプロデューサから、共有する有効範囲データを作成、表示、変更したり、同時アクセスを制御できるようになります。

詳細は、次のドキュメントを参照してください。

http://www.oracle.com/technology/pub/articles/dev2arch/2005/11/federated-portal-cache.html

2.3 Coherence開発のためのJDeveloperの使用

この項では、Coherenceソリューション開発用にJDeveloperを設定するための基本的な手順について説明します。

2.3.1 JDeveloperでのCoherenceの実行

JDeveloperを使用して、キャッシュ・サーバー(DefaultCacheServer)およびキャッシュ(CacheFactory)の各インスタンスを実行できます。それぞれのインスタンスは、独立したJavaプロセスとして開始され、そのプロセスのログに標準出力を生成します。キャッシュ・コマンドなどの入力は、コマンドラインから起動する場合と同じように、プロセスに直接入力できます。この構成によって、Coherenceソリューションの開発とテストが容易になります。

JDeveloperでCoherenceを実行する手順は次のとおりです。

  1. JDeveloperで、プロジェクトを1つだけ持った汎用アプリケーションを新規作成します。JDeveloperの操作に習熟しておられない場合は、オンライン・ヘルプで詳しい操作方法を確認してください。

  2. アプリケーション・ナビゲータで、新しいプロジェクトをダブルクリックします。「プロジェクト・プロパティ」ダイアログ・ボックスが表示されます。

  3. ライブラリとクラスパス」ノードを選択します。「ライブラリとクラスパス」ページが表示されます。

  4. 「ライブラリとクラスパス」ページで、「Jar/ディレクトリの追加(&A)」をクリックします。「アーカイブまたはディレクトリの追加」ダイアログ・ボックスが表示されます。

  5. ディレクトリ・ツリーでCOHERENCE_HOME\lib\coherence.jarを選択して、「選択」をクリックします。図2-1に示すように、「クラスパス・エントリ」リストにcoherence.jarライブラリが表示されます。


    注意:

    Coherenceリリース3.3.xを使用する場合は、クラスパスにtangosol.jarライブラリも必要です。

    図2-1 クラスパスでのCoherenceライブラリの設定

    「ライブラリとクラスパス」ページ
    「図2-1 クラスパスでのCoherenceライブラリの設定」の説明

  6. 「プロジェクト・プロパティ」ダイアログ・ボックスで、「実行/デバッグ/プロファイル」ノードを選択します。「実行/デバッグ/プロファイル」ページが表示されます。

  7. 「実行/デバッグ/プロファイル」ページで、「新規」をクリックします。「実行コンフィギュレーションの作成」ダイアログ・ボックスが表示されます。「名前」テキスト・ボックスに、新しい実行コンフィギュレーションの名前を入力します。「設定のコピー元(&C):」ドロップダウン・リストで、「デフォルト」を選択します。「OK」をクリックします。「実行コンフィギュレーション(&R):」リストに、新しい実行コンフィギュレーションが表示されます。

  8. 「実行コンフィギュレーション(&R):」リストで新しい実行コンフィギュレーションを選択して、「編集」をクリックします。「実行コンフィギュレーションの編集」ダイアログ・ボックスが表示され、「起動設定」ノードが選択されます。

  9. 「起動設定」ページで「参照」をクリックして、「デフォルトの実行ターゲット(&D):」を選択します。「デフォルトの実行ターゲットの選択」ダイアログ・ボックスが表示されます。

  10. ディレクトリ・ツリーでCOHERENCE_HOME\lib\coherence.jar\com\tangosol\net\DefaultCacheServer.classを選択して、「開く」をクリックします。図2-2に示すように、デフォルトの実行ターゲットとしてDefaultCacheServerクラスが入力されます。

    図2-2 DefaultCacheServerのデフォルトの実行ターゲットとしての設定

    DefaultCacheServerのデフォルトの実行ターゲットとしての設定
    「図2-2 DefaultCacheServerのデフォルトの実行ターゲットとしての設定」の説明


    ヒント:

    Coherenceのシステム・プロパティを設定するには、「Javaオプション(&J):」テキスト・ボックスを使用します。

  11. 「ツール設定」ノードを選択します。「ツール設定」ページが表示されます。

  12. 「追加実行オプション:」セクションで、「プログラムの入力を許可(&I)」チェック・ボックスを選択します。このボックスにチェック・マークが付いている場合は、オプションが選択されています。

  13. OK」をクリックします。

  14. 手順6〜14を繰り返し、図2-3に示すように、デフォルトの実行ターゲットとしてCOHERENCE_HOME\lib\coherence.jar\com\tangosol\net\CacheFactory.classを選択します。

    図2-3 CacheFactoryのデフォルトの実行ターゲットとしての設定

    CacheFactoryのデフォルトの実行ターゲットとしての設定
    「図2-3 CacheFactoryのデフォルトの実行ターゲットとしての設定」の説明

  15. OK」をクリックして、「プロジェクト・プロパティ」ダイアログ・ボックスを閉じます。

  16. 「実行」ボタンのドロップダウン・リストを使用して、キャッシュ・サーバーの実行コンフィギュレーションを選択および起動します。キャッシュ・サーバー・インスタンスが起動され、図2-4に示すようにプロセスのログ・タブに出力が表示されます。

    図2-4 キャッシュ・サーバー・インスタンスのログ出力

    キャッシュ・サーバー・インスタンスのログ出力
    「図2-4 キャッシュ・サーバー・インスタンスのログ出力」の説明

  17. 「実行」ボタンのドロップダウン・リストを使用して、キャッシュの実行コンフィギュレーションを選択および起動します。キャッシュ・インスタンスが起動され、図2-5に示すようにプロセスのログ・タブに出力が表示されます。

    図2-5 キャッシュ・クライアント・インスタンスのログ出力

    キャッシュ・クライアント・インスタンスのログ出力
    「図2-5 キャッシュ・クライアント・インスタンスのログ出力」の説明

  18. キャッシュ・ファクトリの実行ログ・タブの下部にある「入力(&I):」テキスト・ボックスを使用して、キャッシュ・インスタンスと対話します。たとえば、helpと入力して[Enter]を押すと、有効なコマンドのリストを表示できます。

2.3.2 JDeveloperでのスレッド・ダンプの表示

Javaでは、各スレッドとそのスレッドに保持されているすべてのロックのリストを標準出力にダンプできます。これは、Linux環境ではkillコマンド、Windows環境では[Ctrl]+[Break]で実行できます。スレッド・ダンプは、デッドロックの検出など、開発段階でのトラブルシューティングに役立ちます。

JDeveloperでCoherenceソリューションを開発する場合は、プロセスのログ・タブでスレッド・ダンプを直接確認できます。これは、JDeveloperで実行しているJavaプロセスに前述のシグナルを送信することで実行できます。

JDeveloperでスレッド・ダンプを表示する手順は次のとおりです。

  1. シェルまたはコマンドプロンプトからJDK_HOME/bin/jpsを使用して、スレッド・ダンプに表示するスレッドを持つJavaプロセスのプロセスID(PID)を取得します。JDK1.4以前を使用している場合、Linuxではps -ef、Windowsではtlistをそれぞれ使用してPIDを取得します。

  2. Linuxの場合は、kill -3 PIDを使用して、QUITシグナルをプロセスに送信します。Windowsの場合、[Ctrl]+[Break]のシグナルをリモートJavaプロセスに送信するには、SendSignalなどのサード・パーティ・ツールを使用する必要があります。

    JDeveloperでは、プロセスのログでスレッド・ダンプを確認できます。

2.3.3 JDeveloperでのキャッシュ・コンフィギュレーションの作成

JDeveloperを使用して、Coherenceのキャッシュ・コンフィギュレーション・ファイルを作成できます。JDeveloperは、cache-config.dtdをロードして、このDTDのすべての要素をコンポーネント・パレットに出力します。さらに、このDTDとの照合によってキャッシュ・コンフィギュレーション・ファイルを検証し、XMLコード補完を提供します。

JDeveloperでキャッシュ・コンフィギュレーションを作成する手順は次のとおりです。

  1. COHERENCE_HOME\lib\coherence.jarライブラリからコンピュータ上の任意のディレクトリにcache-config.dtdを抽出します。

  2. JDeveloperのアプリケーション・ナビゲータで、目的のCoherenceプロジェクトをダブルクリックします。「プロジェクト・プロパティ」ダイアログ・ボックスが表示されます。

  3. プロジェクトのソースパス」ノードを開き、「リソース」をクリックします。「リソース」ページが表示されます。

  4. 「リソース」セクションで「追加」をクリックして、DTDファイルの抽出先ディレクトリを検索および選択します。

  5. 「対象」タブで「追加」をクリックして、cache-config.dtdファイルを選択します。

  6. OK」をクリックします。図2-6に示すように、このDTDが「対象」タブに表示されます。

    図2-6 「プロジェクト・プロパティ」ダイアログ・ボックスの「リソース」に表示されたプロジェクトのDTD

    プロジェクトのリソースに表示されたプロジェクトのDTD
    「図2-6 「プロジェクト・プロパティ」ダイアログ・ボックスの「リソース」に表示されたプロジェクトのDTD」の説明

  7. OK」をクリックして、「プロジェクト・プロパティ」ダイアログ・ボックスを閉じます。アプリケーション・ナビゲータで、プロジェクトの「リソース」フォルダにこのDTDが表示されます。

  8. 「ファイル(&F)」メニューで、「新規」をクリックします。「新規ギャラリ」ダイアログ・ボックスが表示されます。

  9. 「カテゴリ」セクションで「一般」ノードを開き、「XML」をクリックします。

  10. XMLドキュメント」を選択して、「OK」をクリックします。「新規XMLファイル」ダイアログ・ボックスが表示されます。

  11. ファイル名をcoherence-cache-config.xmlとして、DTDの保存先と同じディレクトリに保存します。

  12. OK」をクリックします。キャッシュ・コンフィギュレーション・ファイルが作成され、編集用に開かれます。また、アプリケーション・ナビゲータで、プロジェクトのリソース・フォルダにこのファイルが表示されます。

  13. このファイルの先頭に、次のDOCTYPEを追加します。

    <?xml version="1.0" encoding="windows-1252" ?>
    <!DOCTYPE cache-config SYSTEM "cache-config.dtd">
    

    コンポーネント・パレットが更新され、cache-config.dtdファイルにあるすべての要素が一覧表示されます。

  14. coherence-cache-config.xmlファイルを保存します。

2.4 C++オブジェクト・モデルに対する修正

この項では、『Oracle Coherenceユーザーズ・ガイド』の「C++オブジェクト・モデルについて」に対する修正について説明します。

スレッド処理に関する項ではcoherence::lang::ThreadLocalクラスを参照していますが、これは誤りです。このクラスの正しい名前は、coherence::lang::ThreadLocalReferenceです。

オブジェクトの不変性に関する項には、Handleという語とViewという語の位置が誤って入れ替わっている文があります。この誤っている文の記述は次のとおりです。

修正文は次のとおりです(修正箇所を「」で示します)。

スレッド・セーフなハンドルに関する項には、次の内容の段落があります。

この段落は、次のように修正する必要があります(修正箇所を「」で示します)。

同様に、次の内容の段落があります。

この段落は、次のように修正する必要があります(修正箇所を「」で示します)。

例2-18「非管理クラスとしてのスレッドセーフなハンドル」に記載されているコードを、次のコードに入れ替える必要があります。

class Employee
    {
    public:
        Employee(String::View vsName, int32_t nId)
            : m_vsName(System::common(), vsName), m_nId(nId)
            {
            }

    public:
        String::View getName() const
            {
            return m_vsName;
            }

        void setName(String::View vsName)
            {
            m_vsName = vsName;
            }

        int32_t getId() const
            {
            return m_nId;
            }

    private:
        MemberView<String>   m_vsName;
        const int32_t        m_nId;
    };

2.5 Reporter出力の日付書式に対する修正

「Reporterの内容の分析」の章で記述されている日付書式が変更されています。以前の日付書式では、レポートの実行年月日のみを記録していました(YYYYMMDD)。新しい書式では、時間も記録するようになっています(YYYYMMDDHH)。表2-7は、以前の書式から新しい書式への変更点をまとめたものです。

表2-7 Reporterで使用されている新旧の日付書式


古い値 新しい値

日付書式

YYYYMMDD

YYYYMMDD

ファイル名の例

20090131-network- health.txt

2009013113-network- health.txt

日付の例

January 31, 2009

January 31, 2009 at 1:00 PM


2.6 Coherenceのエディション別機能に対する修正

付録「Coherenceのエディション別機能」の「Coherenceクライアント・エディション」の表で、API言語のC++クライアントについての行が欠落しています。この行の正しい記述は次のとおりです。

表2-8 Coherenceクライアント・エディション



データ・クライアント(注意9を参照) リアルタイム・クライアント(注意10を参照)(Extend/TCPクライアントとして構成、注意11を参照) リアルタイム・クライアント(注意10を参照)(計算クライアントとして構成)

API言語

Java


.NET

×


C++

×


また、注意9、注意10および注意11が記述から欠落しています。これらの内容は次のとおりです。

9. データ・クライアントは、Coherence Serverのすべてのエディションで使用できます。

10. リアルタイム・クライアントはGrid Editionでのみ使用できます。

11. Extend/TCPは、TCP/IP経由のトランスポート用に構成されたCoherence*Extendの略称です。

2.7 JMXを使用したCoherenceの管理方法に対する修正

「JMXを使用したCoherenceの管理方法」の表22-4「tangosol.coherence.management.refresh.policyプロパティの値」では、refresh-expiredをデフォルト値としていますが、これは誤りです。このプロパティの正しいデフォルト値はrefresh-aheadです。

2.8 distributed-scheme要素の説明に対する修正

distributed-scheme要素のbackup-count属性の説明では、01または2を推奨値としていますが、これは誤りです。正しい推奨値は0または1です。

2.9 本番チェックリストに対する修正

この項では、付録「本番チェックリスト」の変更と機能強化について説明します。

「JVM」の項に、次の箇条書きがあります。

これは次のように修正する必要があります(訂正箇所を「」で示します)。

このリストには、次の箇条書きを追加する必要があります。

2.10 プラットフォーム固有のデプロイメント考慮事項に対する修正

この項では、付録「プラットフォーム固有のデプロイメント考慮事項」の変更と機能強化について説明します。

2.10.1 Sun JVM

Sun JVMへのデプロイメントに関する項に、次の記述を追加してください。

OutOfMemoryError

JVMでOutOfMemoryErrorエラーが発生すると、未解決のままエラーが残されることがあり、クラスタに悪い影響を与える可能性があります。OutOfMemoryErrorが発生した場合の処理として、JVMをリカバリするのではなく、JVMを終了するように構成することをお薦めします。Sun JVMでこの設定を構成するパラメータは次のとおりです。

UNIXの場合:

-XX:OnOutOfMemoryError="kill -9 %p"

Windowsの場合:

-XX:OnOutOfMemoryError="taskkill /F /PID %p"

注意:

2008年12月の時点では、1.4.2および1.6の新バージョンでこのフラグが使用できるようになっていますが、バージョン1.5は未対応です。

2.10.2 IBM JVM

IBM JVMへのデプロイメントに関する項に、次の記述を追加してください。

OutOfMemoryError

JVMでOutOfMemoryErrorエラーが発生すると、未解決のままエラーが残されることがあり、クラスタに悪い影響を与える可能性があります。OutOfMemoryErrorが発生した場合の処理として、JVMをリカバリするのではなく、JVMを終了するように構成することをお薦めします。IBM JVM(1.5以上)でこの設定を構成するパラメータは次のとおりです。

UNIXの場合:

-Xdump:tool:events=throw,filter=java/lang/OutOfMemoryError,exec="kill -9 %pid"

Windowsの場合:

-Xdump:tool:events=throw,filter=java/lang/OutOfMemoryError,exec="taskkill /F /PID %pid"

ヒープ・サイズの設定

IBM社は、JVMに固定サイズのヒープを割り当てることを推奨していません。ほとんどの場合は、-Xmsにデフォルト値を使用することをお薦めします(つまり、この設定を省略して-Xmxのみを設定します)。詳細は、次のリンクを参照してください。

http://www.ibm.com/developerworks/java/jdk/diagnosis/

2.10.3 Oracle JRocket JVM

Oracle JRocket JVMへのデプロイメントに関する項に、次の記述を追加してください。

OutOfMemoryError

JVMでOutOfMemoryErrorエラーが発生すると、未解決のままエラーが残されることがあり、クラスタに悪い影響を与える可能性があります。OutOfMemoryErrorが発生した場合の処理として、JVMをリカバリするのではなく、JVMを終了するように構成することをお薦めします。JRockit JVMでこの設定を構成するパラメータは次のとおりです。

-XXexitOnOutOfMemory