2 このリリースでの新機能
Oracle Coherenceの機能、拡張機能および変更を学習します。オラクル社では、ソフトウェアのリリース後、リリース・ノートを定期的に更新しています。このドキュメントには、発行時点において正確な情報が記載されています。
この章の内容は次のとおりです。
新機能
この項では、リリースで提供されるOracle Coherenceの新機能について説明します。
14c (14.1.2.0.0)での新機能と改良点
- Javaモジュールのサポート
- Javaモジュールを使用してCoherenceを実行できるようになりました。『Oracle Coherenceでのアプリケーションの開発』のJavaモジュールを使用したCoherenceアプリケーションの構築に関する項を参照してください。
- Coherenceでは、次のモジュールを明示的に開いたりエクスポートしたりする必要がなくなりました:
java.base/java.lang.invoke=com.oracle.coherence
、java.base/java.lang=org.eclipse.persistence.core
、java.management/sun.management=com.oracle.coherence
、java.base/java.util=com.oracle.coherence
。『Oracle Coherenceでのアプリケーションの開発』のJavaモジュールを使用したCoherenceアプリケーションの構築に関する項を参照してください。
- コアの改良点
- 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関連のアグリゲータ - これらのアグリゲータは、最終結果に対して
scale
、rounding mode
、stripTrailingZeros
、MathContext
(該当する場合)などのBigDecimalプロパティを設定する機能をサポートするようになりました。Oracle Coherence Java APIリファレンスを参照してください。 - CohQLのJSONオブジェクト - Coherenceの問合せ言語(CohQL)で、JSONオブジェクトをキーまたは値として挿入する機能、およびJSON属性による問合せおよび選択機能がサポートされるようになりました。『Oracle Coherenceでのアプリケーションの開発』のJSONオブジェクトの使用に関する項を参照してください。
- デュラブル・イベント(試験的) - Coherenceは、クライアントの切断時に欠落した
MapEvents
をリプレイできる実験的な機能をサポートするようになりました。『Oracle Coherenceでのアプリケーションの開発』のデュラブル・イベント(試験的)の使用に関する項を参照してください。
- NamedMap API -
- トピックの改良点
- フェイルオーバー中のトピックの安定性を高めるために、多くの耐久性と安定性の改善が適用されました。
- トピックは、少なくとも1回の配信を保証するようになりました(以前のリリースではそうではありませんでした)。グループに属するサブスクライバは、処理が完了していることを示す処理済メッセージをコミットでき、フェイルオーバー時に再配信されないようにします。
- トピック・チャネルは、サブスクライバ・グループ内のサブスクライバに公平に割り当てられるようになりました。割り当てられたチャネルからメッセージを受信するのは1つのサブスクライバのみです。
- サブスクライバは、構成可能な非アクティブな期間が経過すると(またはハートビートが失敗すると)タイムアウトし、同じグループの残りのサブスクライバにチャネルが再割当てされます。
NamedTopic
サブスクライバまたはサブスクライバ・グループの未受信要素の数を決定するAPIメソッドを追加しました。
- 永続性
- 永続バックアップ - 永続プライマリ・バックアップの追加コピーとして、ディスクにバックアップ・パーティションを格納する永続バックアップを有効化および構成できるようになりました。『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を参照してください。
- セキュリティ
- SSLの改善 - より柔軟な構成を可能にし、拡張によるカスタマイズを可能にする様々なSSLの改善。『Oracle Coherenceの保護』の秘密キーおよび証明書ファイルの使用に関する項およびカスタム・キーストア、秘密キーおよび証明書ローダーの使用に関する項を参照してください。
- 新しいTLS/SSLソケット・プロバイダ構成要素 -
client-auth
要素によって、ソケット・プロバイダが一方向TLS/SSL認証と双方向TLS/SSL認証のどちらを使用するかが制御されます。『Oracle Coherenceの保護』のTLS/SSL認証の構成を参照してください - DefaultControllerキーストアの新しいパスワード・プロバイダ - このパスワード・プロバイダを使用して、DefaultControllerキーストアからパスワードを取得できます。『Oracle Coherenceの保護』のカスタム・パスワード・プロバイダの使用を参照してください
- 管理
- OpenTelemetry API - OpenTelemetry APIにより、クラスタ内でのキャッシュの処理を開発者が把握できるようになります。『Oracle Coherenceでのアプリケーションの開発』の分散トレースに関する項を参照してください。
- Coherenceメトリック - coherence-metricsモジュールを使用する場合、追加の依存関係が必要なくなりました。また、WebLogic管理対象Coherenceサーバーの新しいCoherenceメトリック・エンドポイントでは、Prometheusなどのメトリック収集システムを使用してメトリックをスクレイピングできます。『Oracle Coherenceのマネージメント』のOracle Coherenceメトリックの使用に関する項を参照してください。
- メトリック・コンテキストのルート・パスを指定する、新しいシステム・プロパティ
coherence.metrics.http.path
。『Oracle Coherenceのマネージメント』のメトリック・システム・プロパティの使用を参照してください。 - RESTを介したCoherence管理 - RESTを介した管理を有効にするために必要な依存関係が大幅に削減されました。RESTを介した管理を有効にするために必要な追加の依存関係は、
coherence-json.jar
のみです。Oracle Coherenceを管理するためのREST APIに関する項を参照してください。 - ヘルス・チェックAPI - アプリケーション・コードでローカルCoherenceメンバーのヘルスを判断できるようにする新しいヘルス・チェックAPI。『Oracle Coherenceのマネージメント』のヘルス・チェックAPIの使用に関する項を参照してください。
- Micrometerメトリック - coherence-micrometerモジュールは、CoherenceメトリックとMicrometerの統合を提供し、Coherenceメトリックを任意のMicrometerレジストリから公開できるようにします。『Oracle Coherenceのマネージメント』のCoherence Micrometerメトリックの使用に関する項を参照してください。
- リモートMBeansへのアクセス - 新しい
jmxserviceurl
スクリプトが、JConsoleユーティリティと連携してMBeansにリモートでアクセスします。『Oracle Coherenceのマネージメント』のJConsoleユーティリティを使用した実行中のCoherenceクラスタのMBeansへのアクセスを参照してください。 - 新しいレポート - エグゼキュータ、ビュー、ストレージおよびプロキシ接続 - 『Oracle Coherenceのマネージメント』のエグゼキュータ・レポートの理解に関する項、ビュー・レポートの理解に関する項、キャッシュ・ストレージ・レポートの理解に関する項およびプロキシ接続レポートの理解に関する項を参照してください。
- 新しいトピック・レポート - 『Oracle Coherenceのマネージメント』のトピック・レポートの理解に関する項、トピック・サブスクライバ・レポートの理解に関する項、トピック・サブスクライバ・グループ・レポートの理解に関する項を参照してください。
- 永続性および永続性詳細レポート - これらのレポートに追加の列が追加されました。『Oracle Coherenceのマネージメント』の永続性詳細レポートの理解に関する項および永続性レポートの理解に関する項を参照してください。
- 新しいExecutorMBean - クラスタで実行されるエグゼキュータ・サービスの統計を提供します。『Oracle Coherenceのマネージメント』のExecutorMBeanに関する項を参照してください。
- 新しいViewMBean - クラスタで実行されるビュー・キャッシュの統計を提供します。『Oracle Coherenceのマネージメント』のViewMBeanに関する項を参照してください。
- 新しいHealthMBean - クラスタで構成されたヘルス・チェックに関する情報を提供します。『Oracle Coherenceのマネージメント』のHealthMBeanに関する項を参照してください。
- ServiceMBean - ServiceMBeanに追加された追加属性は、永続バックアップのストレージ使用率を追跡します。『Oracle Coherenceのマネージメント』のServiceMBeanに関する項を参照してください。
- StorageManagerMBean - 索引付け合計ミリ秒および索引合計単位を表示する追加属性がStorageManagerMBeanに追加されました。Oracle Coherenceの管理のStorageManagerMBeanを参照してください。
- 新しいPagedTopic MBean - クラスタで実行されているトピック・サービスの統計を提供します。『Oracle Coherenceのマネージメント』のPagedTopic MBeanを参照してください。
- 新しいPagedTopicSubscriber MBean - クラスタで実行されているトピック・サブスクライバの統計を提供します。『Oracle Coherenceのマネージメント』のPagedTopicSubscriber MBeanを参照してください。
- 新しいPagedTopicSubscriberGroup MBean - クラスタで実行されているトピック・サブスクライバ・グループの統計を提供します。『Oracle Coherenceのマネージメント』のPagedTopicSubscriberGroup MBeanを参照してください。
- WKAの改善 - ウェル・ノウン・アドレス(WKA)を指定するときに、アドレスのカンマ区切りリストを提供する機能が追加されました。Well Knownアドレスの使用を参照してください。
- Coherenceオペレータ - Coherenceオペレータに対して多数の主要な機能拡張が行われました。Coherenceオペレータを参照してください。
- Coherence VisualVMプラグイン - 14.1.2で追加された新しい機能をサポートするための更新が行われました。Coherence VisualVMプラグイン・リリースを参照してください。
- Coherence CLI - 14.1.2で追加された新しい機能をサポートするための更新が行われました。Coherence CLIリリースを参照してください。
- フェデレーション - エラーおよびレプリケーション見積りを表示する追加属性がOriginおよびDestination MBeanに追加されました。『Oracle Coherenceのマネージメント』のOriginMBeanに関する項およびDestinationMBeanに関する項を参照してください。
- サンプル - CoherenceのガイドおよびチュートリアルがCoherence GitHubリポジトリでホストされるようになり、サンプル - ガイドおよびチュートリアルの概要に文書化されています。
親トピック: このリリースでの新機能
重大な変更
Coherenceリリース間で互換性のない変更が発生する可能性があるCoherence 14c (14.1.2.0.0)の更新について学習します。
- PortableType注釈にはtype-id属性が必要
- Prometheusの生成されたメトリックから削除された"vendor:"接頭辞
- Coherence.start()メソッドの変更された戻り型
- MapViewBuilderおよびViewBuilder
- .NET用クライアント
親トピック: このリリースでの新機能
PortableType注釈にはtype-id属性が必要
Coherence 14.1.2.0.0では、@PortableType
注釈が更新され、type-id
属性が必要になりました。
以前のリリースでは、type-id
はオプションであり、自動生成されていました。これにより、type-id
が各クラスの各ビルド間で一貫性が保証されていなかったため、シリアライズおよびスキーマの進化に関する問題が発生する可能性がありました。
この問題を修正するために、@PortableType
注釈およびcoherence-pof-config.xsd
でtype-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から削除されました:BinarySerializer
、OptimizedBinarySerializer
、BinaryPofSerializer
およびSafeConfigurablePofContext
。
親トピック: 重大な変更
非推奨となった機能
Oracle Coherenceの非推奨になった機能およびサポート対象外になった機能について学習します。
この項には次のトピックが含まれます:
親トピック: このリリースでの新機能
14.1.2.0.0の非推奨になった機能
14.1.2.0.0で非推奨となった機能の簡単な説明。
この項には次のトピックが含まれます:
- Oracle Solarisのサポート
- SafeSortedMap
- ImmutableArrayList.getSortedSet
- Coherence .NETクライアント
- memcachedアダプタ
親トピック: 非推奨となった機能
Oracle Solarisのサポート
Coherenceで、Coherence for C++クライアントに対するOracle Solarisプラットフォームがサポートされなくなりました。
親トピック: 14.1.2.0.0の非推奨となった機能
ImmutableArrayList.getSortedSet
非推奨のImmutableArrayList.getSortedSet
は削除されます。このメソッドおよびSortedSet
インタフェースの実装は、将来のリリースでImmutableArrayList
から削除されます。
親トピック: 14.1.2.0.0の非推奨となった機能
Coherence .NETクライアント
Coherence .NETクライアント14.1.2.0.0では、PortableException
、RequestIncompleteException
およびHashDictionary
クラスの、HashDictionary(SerializationInfo info, StreamingContext context)
コンストラクタとPortableException(SerializationInfo info, StreamingContext context)
コンストラクタ、およびGetObjectData
メソッドが非推奨になりました。これらは、従来のシリアライズ・メソッドをオーバーライドするものです。
親トピック: 14.1.2.0.0の非推奨となった機能