2 このリリースでの新機能

Oracle Coherenceの機能、拡張機能および変更を学習します。オラクル社では、ソフトウェアのリリース後、リリース・ノートを定期的に更新しています。このドキュメントには、発行時点において正確な情報が記載されています。

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

新機能

この項では、リリースで提供されるOracle Coherenceの新機能について説明します。

14c (14.1.2.0.0)での新機能と改良点

  • Javaモジュールのサポート
  • コアの改良点
    • NamedMap API - java.util.Mapインタフェースの分散実装。『Oracle Coherenceでのアプリケーションの開発』基本的なキャッシュ操作の実行に関する項を参照してください。
    • ブートストラップAPI - 新しいブートストラップAPIでは、com.tangosol.net.Coherenceインスタンスを構築し、このインスタンスを起動することにより、Coherenceアプリケーションを構成して起動できます。『Oracle Coherenceでのアプリケーションの開発』ブートストラップAPIの使用に関する項を参照してください。
    • リポジトリAPI - CoherenceリポジトリAPIは、Coherenceで管理されるデータにアクセスするための、より高レベルのDDDフレンドリな方法を提供します。『Oracle Coherenceでのアプリケーションの開発』リポジトリAPIの使用に関する項を参照してください。
    • Caffeine - CoherenceでCaffeineバッキング・マップ実装が追加され、標準のCoherenceローカル・キャッシュを使用できる場所であればどこでもCaffeineを使用できるようになりました。『Oracle Coherenceでのアプリケーションの開発』Caffeineの統合に関する項を参照してください。
    • パーティション・イベントのロギング - この機能により、パーティション・イベントの発生時にパーティションが使用できない期間のロギングが可能になります。たとえば、メンバー間でのパーティションの移動中などです。『Oracle Coherenceでのアプリケーションの開発』パーティション・イベントのロギングに関する項を参照してください。
    • 非ブロック・データ・ソース - 新しいNonBlockingEntryStoreを使用すると、エントリに変更が加えられたときにキャッシュ・ストアが非同期に応答できます。『Oracle Coherenceでのアプリケーションの開発』非ブロック・データ・ソース関する項を参照してください。
    • Coherenceライフサイクル・リスナー - Coherence APIを介して、またはJava ServiceLoaderを使用した検出を介して、ライフサイクル・リスナーをCoherenceインスタンスに登録する機能が追加されました。『Oracle Coherenceでのアプリケーションの開発』キャッシュ・サーバーの起動に関する項を参照してください。
    • リモート・クライアントMEMBER_JOINEDおよびMEMBER_LEFT MemberEvents - リモート・クライアントが参加および退出したときに、プロキシ上のすべてのアクティブ・サービスにMEMBER_JOINEDおよびMEMBER_LEFT MemberEventsが送信されるようになりました。このイベントにより、リモート・クライアントごとに保持されるサービスのサーバー側リソースを管理できます。MemberListenerがサービスに登録されており、環境にサービスへのリモートとクラスタ・メンバーの両方のアクセスがある場合、MemberListenerがリモート・クライアントMemberEvent(s)に対応する必要がある場合があります。たとえば、『Oracle Coherenceでのアプリケーションの開発』メンバー・イベントへのリスニングに関する項の例8-3を参照してください。
    • スケジュール済バックアップ - 非同期バックアップの書込みが拡張され、プライマリの書込み後、一定の間隔でこれらのバックアップをスケジューリングできるようになりました。『Oracle Coherenceでのアプリケーションの開発』バックアップのスケジュールに関する項を参照してください。
    • 読取りロケータ - Coherenceでは、リクエストの負荷の均衡化またはレイテンシの低減のために、データに対する特定のリクエストをプライマリ以外のパーティション所有者(バックアップ)に向けることができるようになりました。『Oracle Coherenceでのアプリケーションの開発』読取りロケータの使用に関する項を参照してください。
    • キャッシュ構成オーバーライド - Coherenceクラスタ・オーバーライドと同様に、キャッシュ構成オーバーライドを指定して、実行時に既存のキャッシュ構成の要素を新しい要素でオーバーライドできるようになりました。『Oracle Coherenceでのアプリケーションの開発』キャッシュ構成オーバーライドの使用に関する項を参照してください。
    • オペレーション構成ファイルの拡張 - Coherenceオペレーション構成ファイルのカスタム・ネームスペース・ハンドラのサポートが追加されます。『Oracle Coherenceでのアプリケーションの開発』構成ファイルの拡張の概要に関する項を参照してください。
    • BigDecimal関連のアグリゲータ - これらのアグリゲータは、最終結果に対してscalerounding modestripTrailingZerosMathContext(該当する場合)などのBigDecimalプロパティを設定する機能をサポートするようになりました。Oracle Coherence Java APIリファレンスを参照してください。
    • CohQLのJSONオブジェクト - Coherenceの問合せ言語(CohQL)で、JSONオブジェクトをキーまたは値として挿入する機能、およびJSON属性による問合せおよび選択機能がサポートされるようになりました。『Oracle Coherenceでのアプリケーションの開発』JSONオブジェクトの使用に関する項を参照してください。
    • デュラブル・イベント(試験的) - Coherenceは、クライアントの切断時に欠落したMapEventsをリプレイできる実験的な機能をサポートするようになりました。『Oracle Coherenceでのアプリケーションの開発』デュラブル・イベント(試験的)の使用に関する項を参照してください。
  • トピックの改良点
    • フェイルオーバー中のトピックの安定性を高めるために、多くの耐久性と安定性の改善が適用されました。
    • トピックは、少なくとも1回の配信を保証するようになりました(以前のリリースではそうではありませんでした)。グループに属するサブスクライバは、処理が完了していることを示す処理済メッセージをコミットでき、フェイルオーバー時に再配信されないようにします。
    • トピック・チャネルは、サブスクライバ・グループ内のサブスクライバに公平に割り当てられるようになりました。割り当てられたチャネルからメッセージを受信するのは1つのサブスクライバのみです。
    • サブスクライバは、構成可能な非アクティブな期間が経過すると(またはハートビートが失敗すると)タイムアウトし、同じグループの残りのサブスクライバにチャネルが再割当てされます。
    • NamedTopicサブスクライバまたはサブスクライバ・グループの未受信要素の数を決定するAPIメソッドを追加しました。
    『Oracle Coherenceでのアプリケーションの開発』トピックの使用に関する項を参照してください。
  • 永続性
    • 永続バックアップ - 永続プライマリ・バックアップの追加コピーとして、ディスクにバックアップ・パーティションを格納する永続バックアップを有効化および構成できるようになりました。『Oracle Coherenceでのアプリケーションの開発』永続バックアップの使用に関する項を参照してください。
    • パラレル・リカバリ - パラレル・リカバリ機能を使用すると、Coherenceはメンバー/プロセス内およびクラスタ全体でパラレルにデータをリカバリできます。『Oracle Coherenceの管理』パラレル・リカバリに関する項を参照してください。
  • 分散同時実行性 - Coherence同時実行モジュールは、エグゼキュータ、アトミック、ロック、セマフォおよびラッチなどのjava.util.concurrentパッケージから同時実行性プリミティブの分散実装を提供します。『Oracle Coherenceでのアプリケーションの開発』分散ネットワークでの同時実行の実装に関する項を参照してください。
  • キュー - Coherenceにデータ構造としてのキューの実装が含まれるようになりました。『Oracle Coherenceでのアプリケーションの開発』ブロッキング・キューの使用に関する項を参照してください。
  • シリアル化/POF
    • Portable TypesおよびPOF Mavenプラグイン - このリリースではPortable Typesが導入されました。Portable Typesは、注釈を使用して、シリアライズ・コードを手動で実装する必要なく、クラスにPOFシリアライズのサポートを追加する方法を提供します。『Oracle Coherenceでのアプリケーションの開発』「Portable Object Formatの使用」を参照してください。
    • POF構成検出 - POF構成ファイルを<include>要素内に配置するのではなく、ConfigurablePofContextクラスによって実行時に検出可能にできるようになりました。『Oracle Coherenceでのアプリケーションの開発』POF構成ファイルの実行時の検出に関する項を参照してください。
  • 統合
    • 内部
      • CDIサポート - Coherenceは、Coherenceクラスタ・メンバー内のコンテキストおよび依存関係注入(CDI)をサポートして、NamedMap、NamedCache、SessionインスタンスなどのCoherence管理リソースをCDIマネージドBeanに注入します。『Oracle Coherenceでのアプリケーションの開発』コンテキストおよび依存関係注入の使用に関する項を参照してください。
      • MicroProfile構成 - Coherence MicroProfile (MP)構成は、Coherenceクラスタ・メンバー内のEclipse MicroProfile構成をサポートします。『Oracle Coherenceの統合』Coherence MicroProfile構成の使用に関する項を参照してください。
      • MicroProfileメトリック - CoherenceのMicroProfileメトリックは、Coherenceクラスタ・メンバー内のEclipseのMicroProfileメトリックをサポートします。『Oracle Coherenceの統合』Coherence MicroProfileメトリックの使用に関する項を参照してください。
    • 外部
      • Helidon - Coherenceは、コンテキストおよび依存関係注入(CDI)を介してHelidonと統合できます。『Helidon』を参照してください。
      • Helidonを介したGraphQLサポート - Helidon統合を使用して、GraphQLからCoherenceデータへのアクセスを有効にできます。GraphQLを参照してください。
      • Kafka - Coherenceは、Kafka Entry StoreおよびKafka Sink Connectorを使用してKafkaと統合できるようになりました。Kafkaを参照してください。
      • Micronaut - CoherenceがMicronautと統合できるようになりました。Micronaut Coherenceを参照してください。
      • Hibernate - HibernateとのCoherence統合のサポートを更新しました。『Oracle Coherenceの統合』HibernateとCoherenceの統合に関する項を参照してください。
      • Spring - Coherenceは、Javaベースのエンタープライズ・アプリケーションを構築および実行するためのプラットフォームであるSpringと統合できます。『Oracle Coherenceの統合』CoherenceとのSpringの統合に関する項を参照してください。
  • gRPC - Coherenceは、gRPCを使用してCoherenceキャッシュにアクセスする機能を導入します。『Introduction to gRPC』を参照してください。
    • gRPCプロキシ - Coherence gRPCモジュール内に定義されたサービスの新しいCoherence gRPCプロキシ実装。『Oracle Coherenceリモート・クライアントの開発』Coherence gRPCサーバーの使用に関する項を参照してください。
    • gRPC Javaクライアント - Coherence Java gRPCクライアントは、JavaアプリケーションがCoherence gRPCプロキシ・サーバーに接続できるようにするライブラリです。『Oracle Coherenceリモート・クライアントの開発』Coherence Java gRPCクライアントの使用に関する項を参照してください。
  • Coherence*Web - Apache Tomcat 9のサポート - Tomcat 9でCoherence*Webがサポートされるようになりました。
  • クライアント
    • JavaScriptクライアント - Coherence JavaScriptクライアントは、gRPCフレームワークをネットワーク・トランスポートとして使用し、NodeアプリケーションがCoherenceクラスタのキャッシュ・クライアントとして動作することを可能にします。Coherence JavaScriptクライアントを参照してください。
    • Goクライアント - Coherence Goクライアントは、gRPCをネットワーク・トランスポートに使用し、ネイティブGoアプリケーションがCoherenceクラスタのキャッシュ・クライアントとして動作することを可能にします。Coherence Goクライアントを参照してください。
    • Pythonクライアント - Coherence Pythonクライアントは、gRPCをネットワーク・トランスポートとして使用し、PythonアプリケーションがOracle Coherenceクラスタのキャッシュ・クライアントとして動作することを可能にします。Coherence Pythonクライアントを参照してください。
    • .NET用クライアント - Coherence for .NET 14.1.2では、.NET 6および.NET 8がサポートされています。Coherence for .NET 14.1.2には、ASP.NET 6および8のセッション・サポートが含まれています。以前のバージョンのCoherence for .NETでは、app.configファイルが使用されていました。Coherence for .NET 14.1.2では、標準の.NETのプラクティスに従ったappsettings.jsonが使用されるようになりました。Coherence 14.1.2サーバーASP.NETセッションのサポートは、古いバージョンのCoherence for .NETと互換性がありません。詳細は、Oracle Coherence for .NETを参照してください。
  • セキュリティ
  • 管理
  • フェデレーション - エラーおよびレプリケーション見積りを表示する追加属性がOriginおよびDestination MBeanに追加されました。『Oracle Coherenceのマネージメント』OriginMBeanに関する項およびDestinationMBeanに関する項を参照してください。
  • サンプル - CoherenceのガイドおよびチュートリアルがCoherence GitHubリポジトリでホストされるようになり、サンプル - ガイドおよびチュートリアルの概要に文書化されています。

重大な変更

Coherenceリリース間で互換性のない変更が発生する可能性があるCoherence 14c (14.1.2.0.0)の更新について学習します。

PortableType注釈にはtype-id属性が必要

Coherence 14.1.2.0.0では、@PortableType注釈が更新され、type-id属性が必要になりました。

以前のリリースでは、type-idはオプションであり、自動生成されていました。これにより、type-idが各クラスの各ビルド間で一貫性が保証されていなかったため、シリアライズおよびスキーマの進化に関する問題が発生する可能性がありました。

この問題を修正するために、@PortableType注釈およびcoherence-pof-config.xsdtype-idが必須になりました。したがって、idを指定せずに@PortableTypeを使用した注釈はコンパイルに失敗します。注釈を使用する場合は、一意のtype-idを指定する必要があります。次に例を示します。

@PortableType(id = 1000)
public class Customer {

Prometheusの生成されたメトリックから削除された"vendor:"接頭辞

このリリースでは、システム・プロパティ"coherence.metrics.legacy.names"のデフォルト値がtrueからfalseに変更され、Prometheusの生成されたメトリックから"vendor:"接頭辞が削除されるようになりました。

この接頭辞は、数リリース前に非推奨になりました。

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

Coherence.start()メソッドの変更された戻り型

CompletableFuture<Void>のかわりにCompletableFuture<Coherence>を返すようにCoherence.start()メソッドを拡張しました。これにより、静的ファクトリ・メソッドを使用してCoherenceインスタンスを作成および起動する際にFluent APIが実現します。これは、Coherence.start()へのコールの結果をCompletableFuture<Void>変数に明示的に割り当てるアプリケーションにおける重大な変更です。

MapViewBuilderおよびViewBuilder

map()関数の適切な使用を妨げるMapViewBuilderおよびViewBuilderのジェネリックの問題を修正しました。MapViewBuilderおよびViewBuilderでは、クラス・レベルのジェネリックが<K, V_BACK, V_FRONT>から<K, V>に簡略化されています。map()関数がpublic <U> ViewBuilder<K, U> map(ValueExtractor<? super V, ? extends U> mapper)に変更されました。Uは、抽出された値のタイプを表します。この変更により、NamedMap.view()およびNamedCache.view()のジェネリックに対しても同様の変更が必要になりました。これらのメソッドも<K, V> from <K, V_BACK, V_FRONT>に簡略化されています。

ノート:

これは下位互換性のない変更ですが、コンパイル時にのみ影響があります。

.NET用クライアント

  • Coherence for .NET構成は、以前はapp.configにあり、現在はappsettings.jsonにあります。
  • Coherence 14.1.2 ASP.NETセッションのサポートは、古いバージョンのCoherence for .NETと互換性がありません。
  • 非推奨の.NET BinaryFormatterクラスに依存していた次のクラスは、Coherence for .NETから削除されました: BinarySerializerOptimizedBinarySerializerBinaryPofSerializerおよびSafeConfigurablePofContext

非推奨となった機能

Oracle Coherenceの非推奨になった機能およびサポート対象外になった機能について学習します。

この項には次のトピックが含まれます:

14.1.2.0.0の非推奨になった機能

14.1.2.0.0で非推奨となった機能の簡単な説明。

この項には次のトピックが含まれます:

Oracle Solarisのサポート

Coherenceで、Coherence for C++クライアントに対するOracle Solarisプラットフォームがサポートされなくなりました。

SafeSortedMap

SafeSortedMapクラスは非推奨になりました。

ImmutableArrayList.getSortedSet

非推奨のImmutableArrayList.getSortedSetは削除されます。このメソッドおよびSortedSetインタフェースの実装は、将来のリリースでImmutableArrayListから削除されます。

Coherence .NETクライアント

Coherence .NETクライアント14.1.2.0.0では、PortableExceptionRequestIncompleteExceptionおよびHashDictionaryクラスの、HashDictionary(SerializationInfo info, StreamingContext context)コンストラクタとPortableException(SerializationInfo info, StreamingContext context)コンストラクタ、およびGetObjectDataメソッドが非推奨になりました。これらは、従来のシリアライズ・メソッドをオーバーライドするものです。

memcachedアダプタ

memcachedアダプタは非推奨になりました。