ヘッダーをスキップ
Oracle Coherenceリリース・ノート
リリース3.6.1
B63026-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

1 技術的な変更と機能強化

この章では、Oracle Coherence製品でリリース3.6.1に導入された変更と機能強化について説明します。このドキュメントの内容は、その発行時点において正確です。オラクル社では、ソフトウェアのリリース後、リリース・ノートを定期的に更新しています。

1.1 最新ソフトウェア・パッチのダウンロードとインストール

My Oracle Supportにアクセスして、最新のソフトウェア・パッチをダウンロードします。

https://support.oracle.com

パッチで提供されるソフトウェア修正について最新情報を入手する方法は、パッチ配布のREADMEファイルを参照してください。

  1. My Oracle Supportにログインします。

  2. パッチと更新版」タブをクリックします。

  3. 「パッチ検索」タブの下で、「製品またはファミリ(拡張検索)」を選択し、「ファミリのすべての製品を含む」チェック・ボックスを選択します。

  4. 製品名をOracle Coherenceと入力して、プラットフォームとリリースを選択し、「検索」をクリックします。

Oracle Coherenceで現在使用できるパッチのリストが表示されます。

1.2 Oracle Coherence for Java 3.6.1

Oracle Coherence for Javaコンポーネントに新機能、機能向上および不具合修正が追加されました。

1.2.1 管理および監視の機能強化と修正

  • 管理Invocableの同時実行とCacheFactory.shutdown()が原因でデッドロックが発生するという問題を修正しました。

  • クラスタが異常停止したときにSafeClusterによって登録されたMBeanが登録解除されないという問題を修正しました。

1.2.2 パーティション・キャッシュの機能強化と修正

  • フィルタが例外をスローしたときにフィルタベースのinvoke()メソッドのコールをハングさせる可能性がある問題を修正しました。

  • destroyCache()メソッドを同時にコールしたときにRepeating *Request due to the re-distribution of PartitionSet{...}メッセージがエンドレスに発生する問題を修正しました。

  • IndexAwareExtractorメソッドによって構築された索引がフェイルバック中に正しく送信されなくなる問題を修正しました。

  • 大量のエビクションの発生時に索引(およびkeySetイテレータ)の破損またはエントリの欠落を引き起こす可能性のあるバグを修正しました。

  • キャッシュ・サーバーの停止時に集計結果を誤ってNULLにする可能性のあるバグを修正しました。

  • 記憶域が無効なクライアントが記憶域ノードと通信できなくなる可能性のある問題を修正しました。

  • フィルタベースの問合せ中に、ソート索引に関して、NullPointerExceptionを発生させる可能性のある問題を修正しました。

1.2.3 TCMPの機能強化と修正

  • ソケット・アドレスの再利用により既知のアドレス(WKA)のクラスタで結合またはパニックが発生する問題を修正しました。

  • 一部のWindows環境に適応するために、IPMonitorクラスによって使用されるpingのタイムアウトを増やしました。

  • 一部のWindows環境に適応するために、起動時にpingするIpMonitorシニア・メンバーが、同一の場所に配置されたメンバーをバイパスするようになりました。

  • マルチネットワーク・インタフェース・カード(NIC)環境でデフォルトのアドレス選択が決定されるように問題を修正しました。

1.2.4 Coherence*Webの機能強化と修正

  • キャッシュ・サービスの異常終了が原因でCoherence*Extendクライアントがイベントを喪失する可能性があるという問題を修正しました。

  • カスタム・プロキシ実装によってスローされる例外に対して、ProxyServiceクラスを強化しました。

  • 新しいTCMP/SSL接続によってBufferOverflowExceptionがトリガーされるという、断続的に発生ている問題を解決しました。

  • クライアントがプロキシ・サーバーによって拒否された後、透過的に再接続できなくなる問題を修正しました。

  • クライアントがプロキシ・サーバーへの接続に失敗した場合に、より詳細な例外メッセージが表示されるようになりました。

1.2.5 Coherence*Webの機能強化と修正

  • LimitFilterクラスによって一貫性のない結果セットが返される問題を修正しました。

  • Coherence WebでIBM WebSphere 7がサポートされるようになりました。

  • 各セッションのセッション情報がセッション・タブに表示されなくなる問題を修正しました。

  • Session.isNew()メソッドには、WebLogic Serverの他のセッション永続性タイプとの間に整合性がありません。

1.2.6 管理フレームワークの機能強化と修正

  • エントリを更新してから依存性のあるコンポーネントをリリースするまでの間にコミット/ロールバックが失敗すると、バージョンの依存性が孤立する可能性のある問題を修正しました。

1.2.7 シリアライズ・フレームワークの機能強化と修正

  • 年の範囲を1582から2199までに制限する、ポータブル・オブジェクト形式(POF)の日付のデシリアライズにおける検証ロジックを削除しました。

  • Serializableインタフェースを実装する際にAbstractInvocableの結果が不要だったという問題を修正しました。

  • coherence-pof-config.xmlファイル内のCompositeKeyにエントリが存在しないという問題を修正しました。

1.2.8 その他の機能強化と修正

  • ポータブル・オブジェクト形式(POF)のオブジェクトをサポートするように、Coherence Query Languageのbackupコマンドとrestoreコマンドの問題を修正しました。

  • ContinuousQueryCacheのコールで偽の誤った結果を表示する可能性のある競合状態を修正しました。

  • システム・パラメータport-auto-adjust=falseとユニキャスト・リスナー・ポートが使用できない場合に、クラスタの起動中にNPEが発生する問題を修正しました。

  • BackingMapManagerContext.getBackingMap()メソッドでの競合を軽減しました。

  • Guardianのリカバリまたは終了後にNullPointerExceptionが発生する可能性のある問題を修正しました。

  • ソート索引のメンテナンスが非常に遅くなる問題を修正しました。

  • サービスレベルのGuardianの構成が無視される問題を修正しました。

  • cache-config.dtdlistener要素の定義を修正しました。

  • 集中的な後書き処理でバッチごとにエントリが1つずつ欠落する問題を修正しました。

1.3 Oracle Coherence for .NET 3.6.1

Oracle Coherence for .NET 3.6.1で導入された新機能、機能向上および不具合修正を次に示します。

1.4 Oracle Coherence for C++ 3.6.1

Oracle Coherence for C++ 3.6.1で導入された新機能、機能向上および不具合修正を次に示します。

1.5 既知の問題とその回避策

この項では、リリース時点で既知のバグについて説明します。

1.5.1 WebLogic Serverとその他のアプリケーション・サーバー間でのCoherence*Webセッションの共有

WebLogic ServerノードまたはApache Tomcatサーバーなどの他のタイプのアプリケーション・サーバーを実行しているノードを含むクラスタがある場合、WebLogic Serverによって作成されたセッションCookieは、他のサーバー上のCoherence*Webでは正しくデコードされません。これは、WebLogic Serverによって、Coherence*Webに格納されているセッションIDには含まれていないセッション・アフィニティ接尾辞が追加されるためです。他のアプリケーション・サーバー・タイプがそのCookieに対するリクエストを受信した場合、そのCookieは見つからず、新しいセッションCookieが作成されます。

この問題を回避するには、他のアプリケーション・サーバーによって処理される際に、セッションIDからセッション・アフィニティ接尾辞を削除する必要があります。

たとえば、Tomcatサーバーでセッション・アフィニティ接尾辞を削除するには:

  1. com.tangosol.coherence.servlet.tomcat55.CookieHelperクラスのサブクラスを作成します。

    たとえば、そのサブクラスにCustomCookieHelperという名前を付けます。decodeCookieメソッドとdecodeUrlメソッドを実装して、セッションCookieからセッション・アフィニティ情報を削除します。例:

    package com.example;
     
    import javax.servlet.ServletContext;
    import javax.servlet.http.HttpServletRequest;
    import com.tangosol.coherence.servlet.SessionHelper;
     
    public class CustomCookieHelper extends SessionHelper {
         protected static final char WLS_JVM_ID_SUFFIX = '!';
     
       public CustomCookieHelper(Factory factory, ServletContext ctx){
           super(factory, ctx);
       }
     
       public String decodeCookie(HttpServletRequest req){
           String sSessionId = super.decodeCookie(req);
           if (sSessionId != null){
               int ofSeparator = sSessionId.indexOf(WLS_JVM_ID_SUFFIX);
               if (ofSeparator >= 0){
                   sSessionId = sSessionId.substring(0, ofSeparator);
               }
           }
           return sSessionId;
       }
    }
    
  2. com.tangosol.coherence.servlet.tomcat55.DefaultFactoryのサブクラスを作成します。例:そのサブクラスにCustomDefaultFactoryという名前を付けます。instantiateSessionHelperメソッドまたはsetSessionHelperメソッドをオーバーロードして、CustomDefaultFactoryクラスを使用します。例:

    package com.example;
     
    import javax.servlet.ServletContext;
     
    import com.tangosol.coherence.servlet.SessionHelper;
     
    public class CustomDefaultFactory extends com.tangosol.coherence.servlet.api25.DefaultFactory {
         public SessionHelper instantiateSessionHelper(ServletContext ctx){
           CustomCookieHelper helper = new CustomCookieHelper(this, ctx);
           setServletContext(ctx);
           setSessionHelper(helper);
           return helper;
       }
     
       public String toString() {
           return "CustomDefaultFactory (2.5)\n" + indentString(getDescription(), "  ");
       }   }
     
    
  3. CustomDefaultFactoryを使用するようにTomcatサーバー上のWebアプリケーションを構成します。Webアプリケーションの web.xmlファイルで、coherence-factory-classコンテキスト・パラメータをCustomDefaultFactoryに設定します。例:

    <context-param>
       <param-name>coherence-factory-class</param-name>
       <param-value>com.tangosol.coherence.servlet.tomcat55.CustomDefaultFactory</param-value>
    </context-param>
    
  4. アプリケーション間でデータを共有するようにセッションを構成するには、グローバル・スコープを使用するようにcoherence-scopecontroller-classコンテキスト・パラメータを構成する必要があります。例:

    <context-param>
       <param-name>coherence-scopecontroller-class</param-name>
       <param-value>com.tangosol.coherence.servlet.AbstractHttpSessionCollection$GlobalScopeController</param-value>
    </context-param>