4 このリリースで修正された不具合および機能強化
このリリースで修正された不具合および機能強化について学習します。
この章の内容は次のとおりです。
Oracle Coherence for Java
Oracle Coherence for Javaコンポーネントに新機能、機能向上およびbug修正が追加されました。
14.1.2.0.0の機能強化と修正
- 永続性
- オンデマンド永続性モードのサービスが、システム・プロパティからのリカバリ・クォーラムによってブロックされる問題を修正しました。
- 競合するメンテナンス・タスクを延期することで、永続性からのリカバリを改善しました。
- 大規模なクラスタ(特に共有ディスク・ストレージを使用した永続性)でパーティション・リカバリに長時間かかる問題を修正しました。
- 永続性スナップショットからのリカバリ後、5分以内にパーティション分散がバランス状態に到達できない問題を修正しました。
- ブロックされた操作でガーディアン・タイムアウトに達したために、アクティブな永続性を使用するサービスが
PersistenceException
で終了する問題を修正しました。 - 永続ストアのオープンを段階的に行いました。基礎となるストア・ファイルは、パーティションごとに1つずつ、データが格納され始めてからのみ作成されます。
- パーティションの再分散中にデッドロックが発生する永続バックアップの問題を修正しました。
- 使用中の永続性モードを示す要素をサービス・リストに追加しました。
- データが削除された後にキャッシュ・アクティビティのない期間が続く場合に対応するために、永続性ファイルのクリーンアップ・プロセスを改善しました。
- 索引付け、パーティション移行または永続性のために個々のパーティションにアクセスできない場合に報告するログ・メッセージを追加し、
IndexingTotalMillis
属性をStorageManager
MBeanに追加しました。 - クラスタ全体でのパラレルに加え、メンバー/プロセス内でデータをパラレルにリカバリするよう永続性を改善しました。これにより、クラスタおよびより重要な関連データをできるだけ迅速に利用できるようになります。
- キャッシュ・マッピングを削除するためのローリング・アップグレードが正しく行われなかった場合に、永続性スナップショットが
NullPointerException
を生成するまれなケースを修正しました。 - 永続性モードに間違った値を指定しても暗黙的に無視され、デフォルトで
"on-demand"
になる問題を修正しました。 - 2つ以上のノードによって同時に実行された永続性を備えたローリング再起動によってキャッシュ・サービスが孤立状態になり、クラスタの再起動が必要になる問題を修正しました。
- バックアップ永続性が有効な場合に、複数のローリング再起動後にデータ損失が発生する問題を修正しました。
- リカバリ・プロトコルのまれで予期しない部分でエラーが確実に捕捉されるように、永続性の問題を修正しました。
- 永続性スナップショットに、リカバリ・エラーにつながる古いキャッシュ・データが含まれている問題を修正しました。
- 永続性スナップショットのリカバリ操作が無期限にハングする問題を修正しました。
- 永続バックアップを使用すると、ロード中およびローリング再起動の実行中に"IllegalArgumentException: 不明なエクステント識別子"エラーが発生する問題を修正しました。
- アクティブな永続性を持つ分散サービスが、古い永続ストアへの非同期書込みで終了する問題を修正しました。
- 永続性がローカル・ディスク・ストレージを使用している場合、サービスがパーティションのリカバリに繰り返し失敗する問題を修正しました。
- サービスがパーティションのリカバリに繰り返し失敗する問題を修正しました。
- 索引を使用してスナップショットをリカバリすると索引の内容が破損する問題を修正しました。
- エグゼキュータ・サービス
- XML構成を介したリモート・エグゼキュータ・サービスのカスタム・エグゼキュータを定義できるようにするサポートを追加しました。
RemoteExecutor
APIを介して、複数のJVMにわたる高度なタスク・オーケストレーションのサポートを追加しました。- 負荷が高い状況でエグゼキュータ・タスクが実行されない問題を修正しました。
- タスク・エグゼキュータごとのJDK 21のVirtualThreadのサポートをCoherenceエグゼキュータ・サービスに追加しました。
- エグゼキュータ・サービスCronTaskを更新して、ラップされたタスクが正常に実行されるたびにクローニングするかどうかをユーザーが構成できるようにしました。以前は常にクローンが実行されていたため、タスクが内部状態を維持できなくなっていました。
NamedOrchestration
を使用してタスクをエグゼキュータ・サービスにオーケストレーションするときに、追加のフィルタを使用できない問題を修正しました。RemoteExecutors
によってタスクが実行されない問題を修正しました。- 複数の長時間実行タスクによって、同時実行エグゼキュータによる他のタスクの実行が妨げられる問題を修正しました。
- 生成後に再実行すると、エグゼキュータ・サービスがフェイルオーバー・タスクを再作成する問題を修正しました。
- 生成されたタスクを再実行するときに、エグゼキュータ・サービスが進行中のタスク数を誤って増分する問題を修正しました。
- POFの使用時に名前付きエグゼキュータを検索すると
IllegalArgumentException
がスローされる問題を修正しました。 coherence.executor.trace.logging
システム・プロパティがtrueに設定され、coherence.log.level
が7以上でないかぎり、「デバッグ」オプションを使用して送信されたエグゼキュータ・サービス・タスクでタスク実行の詳細が記録されない問題を修正しました。- エグゼキュータ・サービスの進行中のカウントがタスクごとに2回増分される問題を修正しました。
- 動的に登録されたエグゼキュータによって処理中のタスクが完了しないという、エグゼキュータ・サービスのまれな問題を修正しました。
- 停止中にコンカレント・エグゼキュータ・サービスがサービス・スレッドで
ensureCache
をコールし、デッドロック警告メッセージが表示される可能性がある問題を修正しました。 - 登録済エグゼキュータの非同期停止を試行する際に、Coherenceキャッシュ・サーバーが誤って再起動される、まれな問題を修正しました。
- タスクの完了後にタスク・プロパティが設定されるエグゼキュータ・サービスの問題を修正しました。
- まれに、複数のメンバーにわたって実行されるタスクが正しく完了しないエグゼキュータ・サービスでの問題を修正しました。
- 構成サービスの永続性モードに関するシステム・プロパティを、コンカレント・エグゼキュータ・サービスのシステム・プロパティと一貫性を保つように更新しました。
- 2つのシステム・プロパティ
coherence.concurrent.distributed.threads.{min|max}
を使用して、コンカレント・キャッシュ・サービスのワーカー・スレッド数を構成する機能を追加しました。同時キャッシュ・サービスでは、グローバル・システム・プロパティcoherence.distributed.threads.{min|max}
が指定されていて、同時バージョンが設定されていない場合、このプロパティが使用されます。
- フェデレーション
- フェデレーションが、同じキャッシュ変更の再試行を繰り返しリクエストしてスタックする問題を修正しました。
- 大規模なクラスタのパーティション分散が目的の状態に達するのに長い時間がかかる問題を修正しました。
- まれに、
MISSING_RECORDS_IN_RANGE
トレース・メッセージが繰り返されてパーティションがスタックし、フェデレーションを停止してから開始した後に変更が宛先参加者に送信されない問題を修正しました。 DestinationMBean
のDestinationController
状態が正しくない問題を修正しました。- フェデレーション接続用にTCP KeepAliveを有効化しました。
- Coherenceメトリックにフェデレーション
ReplicateAllPercentComplete
を追加しました。 - フェデレーション
Origin
MBeanにcurrentConnectionCountおよびmapMembers属性を追加して、現在の接続数および接続が確立されるメンバーのリストを提供するようにしました。 - フェデレーション
Destination
MBeanを使用してフェデレーション・トレース・ロギングを有効または無効にする機能を追加しました。 - 複数の
FederatedCache
サービスがあり、フェデレーション接続の検索にNameService
を使用していない環境に対して、(参加者、サービス)のペアごとに個別のAddressProvider
を指定するためのサポートを追加しました。 - まれに、パーティションの変更がフェデレートされなくなる問題を修正しました。
- 未確認のフェデレーション・ジャーナル・レコードがガベージ・コレクションされる問題を修正しました。
- フェデレーション・トレース・レベルのログ・メッセージで間違った
TransferEvent
タイプが報告される問題を修正しました - フェデレーション
replicateAll
操作のモニタリングおよびエラー・レポートを改善するために、メトリックおよびMBean属性を追加しました。 StateCode
属性/メトリックをフェデレーションDestination
MBeanに追加して、ユーザーが状態名を数値コードにマップできるようにしました。- 接続の詳細および接続のライフサイクルの詳細が提供されるように、フェデレーション接続関連の情報レベルのロギングを拡張しました。
- 大きなエントリをフェデレートするときに
IllegalStateException
がスローされる問題を修正しました。 - キャッシュのローカル・ストレージがすでに解放された後、サービスの停止中にフェデレーションがフェデレーテッド変更を適用しようとする問題を修正しました。
KeyAssociator
またはKeyPartitioningStrategy
が定義されている場合、フェデレーション・サービスが機能しない問題を修正しました。PartitionAwareKey
タイプのキーを持つキャッシュ・エントリは、フェデレーション・サービスのKeyAssociators
およびKeyPartitioningStrategies
をバイパスするようになりました。- 受信フェデレーション・メッセージが原因でクラスタ・サービスが停止プロセスを完了できない問題を修正しました。
- フェデレーションがパーティション移行中に
ReplicateMessage
を準備しているときに、まれにNullPointerException
がスローされる問題を修正しました。 ERROR
状態へのフェデレーションの遷移がクラスタ全体で実行されない問題を修正しました。- エラスティック・データに収まらないほど大きい特定のタイプおよびサイズのフェデレーション・ジャーナル・エントリ が、分割が必要であると識別されない問題を修正しました。
Destination
とOrigin
の両方のフェデレーションMBeanにTotalRetryResponses
属性を追加して、ReplicateMessages
への再試行レスポンスの合計数を追跡するようにしました。- リモート参加者のエンドポイント・アドレスを作成できなかったことを示すフェデレーション・ログ・メッセージにサービス名を追加しました。
- フェデレーションの内部メタデータ・キャッシュのデフォルトのカリキュレータを
BINARY
に変更しました。 - フェデレーションが、解放または破棄されたキャッシュへの変更の適用に失敗する問題を修正しました。
- まれに、フェデレーションの内部メタデータ・キャッシュに対する不要で冗長な更新が発生する問題を修正しました。
- 非常にまれな状況で一部のキャッシュ更新がフェデレートされない問題を修正しました。
- まれに、フェデレーション宛先のMBean状態属性がnullになる問題を修正しました。
- ロード・バランサおよびファイアウォールによるアイドル接続の切断を防止するために、フェデレーション接続でハートビート・メッセージを有効化しました。
- レイテンシが高くなる可能性があるクラスタ間接続を許容するように、フェデレーションのMessageBus ACKタイムアウトを増やしました。
- まれに
EnvelopeAggregator
によってNullPointerException
がスローされるフェデレーションの問題を修正しました。 - フェデレーション接続でMessageBus接続の移行が試行される問題を修正しました。
UnsolicitedEntryAddProcessor
とFederatedCacheInterceptor
の間のフェデレーションでデッドロックが発生する問題を修正しました。
- クラスタリング/サービス
- 使用されるシリアライザを表示するように、パーティション化、呼出しおよびプロキシのサービスのサービス起動メッセージを拡張しました。
- 未処理の
UnsupportedOperationException
が原因で、非常にまれな状況でクラスタ・サービスが停止する問題を修正しました。 - 同じJVMインスタンス内でCoherenceを複数回起動および停止した結果、リーク・スレッドが発生する問題を修正しました。
- Coherenceシステム構成のシリアライザをデフォルトの
coherence.serializer
プロパティとは別に具体的に設定できない問題を修正しました。 - 特定のCoherenceバージョンについて、マスター・メンバー・セット内のメンバーの表示バージョンを修正しました。
- サービス停止中に
NullPointerException
がスローされる問題を修正しました。 - パケット配信の失敗による通信の問題の可能性をより明確かつ正確に説明するための警告ログを改善しました。
- JOININGメンバーのバージョンが、メンバーの実際のCoherenceバージョンではなく、トランスポート・プロトコルの互換性バージョンであることを明確にするために、起動されたクラスタのログ・メッセージを修正しました。
- パケット配信の失敗による通信の問題の可能性をより明確かつ正確に説明するための警告ログを改善しました。
DefaultServiceFailurePolicy.POLICY_EXIT_PROCESS
を、プロセスの停止から正常な終了に拡張し、登録済のシャットダウン・リスナーの実行が可能になりました。正常な終了がcoherence.shutdown.timeout
期間内に完了しない場合、プロセスは停止します。- クラスタに同時に参加するメンバーが多く、システム・リソースに負荷がかかっている場合に、メンバーが相互にブロックしないように、クラスタ・メンバー結合アルゴリズムを改善しました。
- 有効期限付きのエントリを含むパーティションを転送するときに
ClassCastException
がスローされる問題を修正しました。 - 複数のメッセージを一度に送信する際のネイティブ・メモリー使用量を削減するために、保留中のメッセージの定期的なフラッシュを実装しました。
onBackupListenerRequest()
で未処理のNullPointerException
が原因でPartitionedCacheが終了する問題を修正しました。- サイズ変更タスクの実行中にプールが停止した場合、Coherenceワーカー・スレッド・デーモン・プールがデッドロックする問題を修正しました。
UpdateIndexRequest
の処理中に未処理のArrayIndexOutOfBoundsException
がスローされたために、PartitionedCacheサービスが予期せず終了する問題を修正しました。- メンバーがこれらのリクエストのいずれかを送信し、その後突然クラスタを離れると、
onBackupListenerAllRequest
およびonBackupListenerRequest
でNullPointerException
がスローされるPartitionedCacheの問題を修正しました。 - パーティション・リカバリまたはフェイルオーバー中に遅延イベントを処理する際に、パーティション・キャッシュ・サービス・スレッドがガーディアン・タイムアウトにヒットする問題を修正しました。
DefaultCacheServer.shutdown()
がCoherenceサーバーを正常に停止しない問題を修正しました。- スナップショット・リカバリ後にパーティションの再分散がスタックする問題を修正しました。
- 索引の適用時のキー・セット操作のオーバーヘッドを削減しました
- 単一パーティションの
PartitionSet
インスタンスを作成する際のメモリー割当てを削減し、パーティション数が多いキャッシュに対するパラレル問合せのメモリー・プロファイルが改善されました。 - 破棄されたバックアップ・メッセージのために、PartitionedCacheのPartitionControlが無期限にハングする問題を修正しました。
- パーティション再分散中に
NullPointerException
がスローされる問題を修正しました。 - キャッシュ・リクエストのファイナライズ中にサービが終了する問題を修正しました。
- キャッシング/キャッシュ・ストア
CacheStore.eraseAll()
にNamedCache
一括操作(invokeAll()
など)でコールされるパスがない問題を修正しました。この修正により、NamedCache.invokeAll()
がremoveプロセッサで起動された場合、またはNamedCache.keySet().removeAll()
またはNamedCache.entrySet().removeAll()
がコールされた場合にCacheStore.eraseAll()
がコールされます。- CacheLoaderおよびCacheStoreインタフェースに
loadAll()
、storeAll()
およびeraseAll()
のデフォルトの実装を追加しました。 - キャッシュ・ストアでRWBMを使用するキャッシュで
getOrDefault()
コールを実行しても、エントリが存在しない場合にコールがキャッシュ・ストアに伝播されない問題を修正しました。 - near-schemeの許容される子要素としてservice-nameを追加しました
InFilter
問合せの戻りに時間がかかる問題を修正しました。AsyncNamedCache.putAll()
でCacheLoader/CacheStore
load()/loadAll()
コールが発生する問題を修正しました。- 再配布が同時に行われると、エントリ・プロセッサの呼出しが再送信されない問題を修正しました。
ContinuousQueryCache
がNamedCacheDeactivationListener
登録を正しく処理しなかった問題を修正しました。ExtendまたはgRPCプロキシ・サーバーでビュー・スキームを使用すると、この問題が発生する可能性があります。- エントリに保留中の未処理の書込み遅延操作がある場合に、書込み遅延削除がスタックする問題を修正しました。
- 既存のキャッシュまたはストレージが無効なノードに対して
CacheLifecycleEvents
が発行されない問題を修正しました。 - 増分キャッシュ削除によって、削除されたキャッシュ・キーへの参照が一時的に保持される問題を修正しました。
- 起動が完了する前にCoherenceインスタンスで
stop()
メソッドがコールされると、ブートストラップAPIがデッドロックする問題を修正しました。 - フロント・マップを利用するために
NearCache
getOrDefault
およびcomputeIfAbsent
を改善しました。 - 非常にまれに、サービス構成処理中に
ClassCastException
またはNullPointerException
がInvocableMap
によってスローされる問題を修正しました。 - Coherence CEに存在する
ExtensibleConfigurableCacheFactory.DependenciesHelper
newInstance()
メソッドが商用Coherenceバージョンに存在しない問題を修正しました。 - 場合によっては、ArrayFilterを使用したリモート呼出しで過剰なCPUが使用される問題を修正しました。
- レジストリが初期化されていない場合、
CacheMappingRegistry.register()
またはSchemeMappingRegistry.register()
がNullPointerException
をスローする問題を修正しました。 - 保留中のイベントが、クライアントによって承認されない場合に予想より長い時間バックアップ・メンバーに残る問題を修正しました。
- InFilterのパフォーマンスの低下を修正しました。
- 参照キャッシュとのCQC同期で、初期化が変更と同時に実行されると更新が失われる問題を修正しました。
- ブートストラップAPIを使用している際に、正常な停止中にサービスが再起動する問題を修正しました。
- gRPCクライアントからのput、getおよびremove操作、または
AsyncNamedMap
またはAsyncNamedCache
の使用時にキャッシュ・ストアがトリガーされない問題を修正しました。 - フィルタ・ベースのコール(
entrySet
、フィルタを指定したinvokeAll
、または集計)で索引を使用すると、問合せ処理の拡張によってパフォーマンスが低下する問題を修正しました。 - バック・マップが切り捨てられ、ニア・キャッシュでPRESENT無効化戦略を使用しているときに、ニア・キャッシュ・キー・ロックが正しく解放されない問題を修正しました。監視可能な障害は、解放されないニア・キャッシュ・キー・ロックを待機してスレッドがハングしている状態です。
CompactSerializationCache
操作中にBinaryRadixTree
ノードを横断してNullPointerException
がスローされる問題を修正しました。- 新しい
ValueExtractor
ファクトリ・メソッドをcom.tangosol.util.Extractors
クラスに追加しました。 Extractors
、Processors
およびAggregators
クラスのファクトリ・メソッドの戻り型を絞り込み、作成されたインスタンスのキャストをキャストする必要がなくなりました。UniversalExtractor
にJavaレコードのサポートを追加しました。- Coherence共通プールを使用するかわりに、起動されたFutureを完了するために使用するカスタム・エグゼキュータを
AsyncNamedCache
に渡す機能を追加しました。これは、非同期Futureの完了順序を厳密に適用する必要がある場合に役立ちます。 - サービス・スレッドではなくデーモン・プールを使用して非同期APIレスポンスを完了するように、
AsynchronousAgent
を拡張しました。 - パーティション索引を活用することで、フィルタ・ベースのアグリゲータのパフォーマンスが向上しました。
- コンポジット・フィルタのフィルタ順序変更ロジックを改善しました。
- 問合せ、集計および一括入力プロセッサ・リクエストをメンバーではなくパーティションで分割することで、並列性を改善しました。
CacheEvent.isExpired()
を追加しました。ENTRY_DELETED
では、期限切れによりエントリが削除された場合、isExpired()
はtrueを返します。- キャッシュ・ストア
erase()
およびeraseAll()
操作のライトビハインド・サポートを追加しました。 - キー・エクストラクタで条件付き索引を使用すると、エントリ値が変更されたときに対応する索引が更新されず、問合せで誤った結果が返される問題を修正しました。
- パーティション化された問合せの実行に以前よりも時間がかかる問題を修正しました。この修正により、パーティション間で問合せを並列実行できるため、実行速度が以前と同じか、それより高速になりました。
- 負荷が高い同時更新で、指定されたフィルタと一致しないエントリが問合せ結果に含まれる問題を修正しました。
AsyncNamedCache.put()
のコールでキャッシュに構成された有効期限値が無視され、エントリが期限切れにならない問題を修正しました。- 多数のキャッシュ・エントリがほぼ同時に期限切れになると発生するパフォーマンスの問題を修正しました。
- フィルタを使用して
AsyncNamedMap
値またはentrySet
メソッドをコールすると、すべての値またはエントリが返されない問題を修正しました。 DistinctValues.accumulate()
でonAggregateFilterRequest()
がNotSerializableException
をスローする問題を修正しました。- 索引コンテンツが必要以上に格納されないように、パーティション化索引の一部として索引サポートを拡張しました。
NearCache
が、終了したスレッドによって保持されているキャッシュ・キーのロックを検出および解放できず、KEYの状態が破損していることが検出されたことを示すログ・メッセージが表示される問題を修正しました。- Caffeineをニア・キャッシュ・フロントマップとして構成または使用できない問題を修正しました。
- invokeAllで発生した
EntryProcessorEvent.EXECUTED
イベントに空のエントリ・セットが誤って含まれる問題を修正しました。 ReadWriteBackingMap
の期限切れのエントリが削除されない問題を修正しました。- フェイルオーバー中に索引再構築スレッドで
NullPointerException
が発生し、索引準備の待機中にワーカー・スレッドがハングする問題を修正しました。 - 内部ForkJoinPoolを使用して、すべての所有パーティションでパラレルに問合せを実行するようになりました。
- Coherenceオペレーション構成ファイルおよびキャッシュ構成ファイルを使用して構成できるように、Coherence gRPCプロキシおよびクライアントを拡張しました。Coherenceの残りの部分で使用されているものと同じソケット・プロバイダ・アプローチを使用して、gRPCセキュア・ソケットを構成するためのサポートを追加しました。
- セキュリティ
AccessController
でキーストア・パスワードのパスワード・プロバイダを使用するためのサポートを追加しました。- キーストアのかわりにTLS/SSL秘密キーおよび証明書ファイルを使用し、ファイル・システムではなくカスタム・ソースからキーストア、秘密キーおよび証明書をロードできるようにCoherenceソケット・プロバイダを構成する機能を追加しました。
- セキュリティ・フレームワークが有効な場合に、サービスの再起動によって、セキュリティ・トークンが使用できないというメッセージとともに
SecurityException
がスローされる問題を修正しました。 - Coherenceによって作成されたすべてのネットワーク・ソケットに適用されるグローバル・ソケット・プロバイダを構成するオプションを追加しました。これにより、Coherenceクラスタ通信、拡張プロキシおよびクライアント通信、gRPCチャネルなどに適用されるTLS設定を1か所で構成できます。
- Java 17以上でTLSが有効なCoherenceを使用している場合、ピア証明書が欠落しているためにホスト名検証が失敗する問題を修正しました。
- TLS 1.3接続経由のトラフィックがハングする問題を修正しました。
- SSLソケット・プロバイダにクライアント認証モードを構成できるようにするための拡張機能を追加しました。以前は、信頼ストアが構成されている場合、この動作は「必須」に固定されていました。この拡張機能により、モードを「なし」、「必要」または「必須」にすることができます。
- ワイルドカードのサブジェクト代替名を検証し、localhostの照合をデフォルトで無効にできるように、デフォルトのSSL
HostnameVerifier
を拡張しました。localhostの照合は、システム・プロパティを介して有効にできます。
- CohQL
- JLineコンソール入力Javaライブラリは、Coherenceインストールの一部として含まれなくなりました。CohQLまたはCoherenceコンソールのコマンドライン・ツールを使用する際にJLine機能を使用するには、JLineライブラリをダウンロードしてツール・クラスパスに含めます。
- CohQL文を出力にエコーする必要があることを示す新しいコマンドライン引数"-v"を追加して、query.shの回帰を修正しました。また、EOFおよびユーザーの中断に対する未処理のJLine例外も修正しました。
- 正しいCohQL比較式で、式の両側での識別子の使用はサポートされていないという例外が発生する問題を修正しました。
jline.jar
を使用する際に、履歴ファイルがCohQL問合せコンソールおよびCoherenceコンソールのディスクに保存されない問題を修正しました。- 問合せ文の最初の部分で複合条件をカッコとともに使用すると、CohQLが誤った結果を返す問題を修正しました。
- トレースがオンのときに例外コール・スタックを出力するように、CohQLを拡張しました。
- 2つの識別子を比較するときに
StackOverflowError
がスローされる問題を修正しました。 - バックアップおよびリストア・コマンドで、パススルー・バイナリ・シリアライザではなくデフォルトのJavaシリアライザが使用される問題を修正しました。
QueryHelper
およびFilterBuilder
で、基礎となるパーサー・トークン表が破損する可能性があるスレッド安全性の問題を修正しました。- CohQLの
QueryHelper
およびFilterBuilder
で、基礎となるパーサー・トークン表が破損する可能性があるスレッド安全性の問題を修正しました。
- エラスティック・データ
- 削除するエントリが多数ある場合、フェデレーション
JournalRecord
キャッシュ・ガベージ・コレクションが非常に遅くなる問題を修正しました。 - エラスティック・データを含む索引を使用する問合せの実行が、想定より遅くなる問題を修正しました。
- ハングを防止し、
JournalCache
のスレッド使用率を向上させるため、同期されたブロックの使用をロックに置き換えました。
- 削除するエントリが多数ある場合、フェデレーション
- Coherence*Web
- Webコンテナ(Wildfly/Undertow Webコンテナ、Jetty 9.4およびTomcat 9)でCoherence*Webを実行するためのサポートおよび動作保証を追加しました。
- サーブレット仕様3.1のCoherence*Webのサポートが動作保証されました。
- セッションの所有権を解放するときに、Coherence*Webスレッドがロックの取得を待機してハングする問題を修正しました。
- セッション・ログに「セッション・リーピング・サイクル秒数」、「セッション・ロガー・レベル」、「セッション・ログ無効化の例外」および「構成の一貫性が必要」のセッション情報を追加しました。
- セッションのオーバーフロー属性が保存されないCoherence*Webでの問題を修正しました。
- "web-sessions"レポートを削除しました。キャッシュの有効性レポートでも同じ情報を使用できます。
- Coherence*Webで、MBean名の無効な文字を禁止する問題を修正しました。
- セッションの無効化によって、使用可能なセッション・モデルがないエラーが発生し、スレッドがスタックする問題を修正しました。
- HTTPセッションのリーピングがcoherence-reaperdaemon-cycle-secondsより時間がかかる場合の警告レベルのログ・メッセージを追加しました。
- 「大きな値の分割」機能がない、12.2.1.4.16より低いパッチ・レベルのメンバーがクラスタ内に存在する場合に、不正なセッション・データが返されるCoherence*Webの問題を修正しました。
- Coherence*Webで、セッションが無効化されて新しいセッションに置き換えられたときに、無効化されたセッションのロックが解放されないため、ロックを待機している他のスレッドが無期限にスタックする問題を修正しました。
coherence.session.log.invalidation.exceptions
がfalseに設定されている場合、リーパーは無効化の例外を記録したままになる問題を修正しました。- セッション・リーパーがリープ中のセッションのロックを解放しないために多くのスレッドがスタックしているCoherence*Webの問題を修正しました。
- Coherence*Webの使用時に
ServletRequestEvents
がディスパッチされない問題を修正しました。 - Coherence*Webインストーラの問題を修正し、インストゥルメントをスキップして、署名済のネストされたjarファイルの整合性を保持するようにしました。
- Coherence*Webでサーブレットがcom.tangosol.net.RequestTimeoutExceptionで失敗する問題を修正しました。スタック・スレッドにつながるクラスタ所有権の取得に失敗しました。
- リーパー・スレッドによってロックが解放されないために、アプリケーション・スレッドが
SegmentedConcurrentMap
のロックを待機してブロックされてしまうCoherence*Webの問題を修正しました。 com.tangosol.util.SegmentedConcurrentMap$LockableEntry.waitForNotify
でスレッドが無期限にブロックされるCoherence*Webの問題を修正しました。- contextDestroyedイベントの処理時にCoherence*Webがキャッシュ参照をクリーン・アップしないため、warスコープのデプロイメントが使用された場合にjava.lang.IllegalStateException: SafeNamedCacheが明示的に破棄されたという例外がスローされる問題を修正しました。
- レプリケート・キャッシュを使用しないようにCoherence*Webを変更しました。
- セッション・データの格納にエラスティック・データを使用可能または使用不可にするためのCoherence*Webコンテキスト・パラメータ
"coherence-use-elastic-data"
を追加しました。デフォルト設定はtrueです。 - エラスティック・データの最大エントリ・サイズ制限を超えるデータを含むセッションをサポートするようにCoherence*Webを拡張しました。
- Fixed a memory leak in Coherence*Web
SplitHttpSessionCollection
.
- シリアル化/POF
- POFで
java.io.StreamCorruptedException:
不明なユーザー・タイプ:5になる問題を修正しました。 - JSON値の書込み時に、すべての"
\uXXXX
"文字シーケンス(例: "\usr\bin
")がUnicodeエスケープ・シーケンスとみなされる問題を修正しました。 - ライトビハインド時に入力値の不要なデシリアライズが発生する問題を修正しました。
- JSONを使用して
ScriptAggregator
、ScriptFilter
およびScriptProcessor
をシリアライズできない問題を修正しました。 - 4バイトのUTF-8シーケンスのデシリアライズが失敗する問題を修正しました。
- 起動時にCoherence JSONシリアライザの自動検出がJava 17以降で失敗する問題を修正しました。
PortableTypeGenerator
が"public Evolvable getEvolvable(int nTypeId)"
に対して正しくない実装を生成する問題を修正しました。- Coherenceシステム構成のシリアライザをデフォルトの
coherence.serializer
プロパティとは別に具体的に設定できない問題を修正しました。 - POF注釈付きフィールドがfinalとして宣言されたときにエラーを報告する
PortableTypeGenerator
を改善しました。 Big{Decimal,Integer}
のJSONシリアライズを改善したため、これらの型はgRPCクライアントでより適切に処理されるようになりました。- CoherenceがHelidonと連携できるように、Helidon JEP-290シリアライズ構成ファイルを追加しました。
<cluster-config/lambdas-serialization>
要素を"static
"または"dynamic
"に設定することで、オペレーション構成でのラムダ・シリアライズ・モードの構成を有効化しました。- ビルド時にクラスをインストゥルメントするPOFシリアライズ用の新しいGradleプラグインを追加しました(Coherence POF Mavenプラグインと同様)。
- 可能なかぎり不要なシリアライズまたはデシリアライズを排除することで、
AsyncNamedMap
およびAsyncNamedCache
のいくつかのメソッドの効率を改善しました。 - 正しくないClassLoaderが使用されているため、
Optional<Object>
のデシリアライズが"java.lang.ClassNotFoundException
"で失敗する問題を修正しました。 - JDK 21でラムダをシリアライズ/デシリアライズできない問題を修正しました。
NameService
TcpAcceptor
処理におけるアイデンティティ・トークンのデシリアライズを削除しました。- プリミティブ配列の高パフォーマンス(raw)シリアライズのサポートを追加しました。
- POFシリアライズの使用時に、
coherence-json
モジュールのPOF構成ファイルが自動検出されるようになりました。 - ポータブル・タイプとしてのJavaレコードの使用のサポートを追加しました。
- ポータブル・タイプでのfinalフィールドの使用のサポートを追加しました。
- Coherence
PortableTypes
をインストゥルメントするためのmavenおよびgradleプラグインをインストーラに追加しました。 - デシリアライズされるフィールドのIDが表示されるように、POFデシリアライズ・エラー・メッセージを拡張しました。
- 非常に大きいバイト配列(100MBを超える)のデシリアライズのパフォーマンスが向上しました。
- 分散キャッシュに対してコールされたときに戻り値の即時デシリアライズを排除するために、Filter引数を受け入れる
QueryMap.values()
メソッドを修正しました。これにより、返された結果を遅延してデシリアライズする既存のkeySet
およびentrySet
の実装と一致するようになります。 - 配列オフセットと長さを引数として取る
PofWriter.writeByteArray
オーバーロードを追加しました。 - POFを使用したProtobufメッセージのシリアライズのサポートを追加しました。
- クラス注釈
@ExternalizableType(serializer=ImplOfExternalizableLiteSerializer.class)
を使用して、ExternalizableLite
クラスのExternalizableLiteSerializer
を指定できるように拡張機能を追加しました。 - Java
ServiceLoader
を使用して、含まれているPOF構成ファイルのリストを実行時に検出できるようにする機能を追加しました PofExtractor
でExtractorComparator
を使用できない問題を修正しました。- 12.2.1.4.5および14.1.1.0.1で導入されたJavaシリアライズにより、
PortableException
が以前のCoherenceバージョンと互換性がなくなってしまう回帰を修正しました。POFを使用するアプリケーションは、この変更またはこのバグの影響を受けません。
- POFで
- 構成
- ネストされた定義およびシェルの部分文字列拡張を可能にする構成システム・プロパティ・マクロの機能拡張を追加しました。
- キーと値の両方(デフォルト)またはキーのみをキャッシュするようにview-schemeを構成できるキャッシュ構成要素cache-valuesを追加しました。
- オペレーション構成ファイルでカスタム・ネームスペース・ハンドラを使用できるようにします。
- 検出アドレスを指定するためのシステム・プロパティ
coherence.discovery.address
を追加しました。 - backing-map-scheme要素内でカスタム・ネームスペース・ハンドラを使用できない問題を修正しました。
- JDK22以上を使用して
-Djdk.xml.jdkcatalog.resolve=strict
を設定する場合、coherence-operational-config.xsdでXSDスキーマ検証が失敗する問題を修正しました。 - クラスタ・サービスで
coherence.service.startup.timeout
およびcoherence.service.clusterservice.startup.timeout
システム・プロパティが適用されない問題を修正しました。 <cdi:bean/>
コンテンツ式にマクロ・パラメータ展開のサポートを追加しました。- デバッグ・システム・プロパティ
coherence.debug.operational.config
を追加しました。trueに設定すると、Coherenceオペレーション構成をロードするスレッドのスタックがCoherenceによって標準出力にダンプされます。 coherence.service.partitions
とcoherence.service.<distributed-service>.partitions
の2つのシステム・プロパティを使用して分散サービス・パーティション数を構成する機能を追加しました。- デフォルトのキャッシュ構成の使用時に
coherence.distributed.partitioncount
システム・プロパティが適用されない問題を修正しました。 - より小さい値で構成された非推奨のスレッド数構成を使用してサービスにプロパティが適用されている場合に、
coherence.distributed.threads.min
システム・プロパティを設定すると、誤ってAssertionException
が発生する問題を修正しました。 <view-scheme>
の<reconnect-interval>
が時間単位(30sなど)の形式である場合、Coherenceがキャッシュ構成ファイルのロードに失敗する問題を修正しました。multicast-listener
のインタフェースが正しく指定されていない場合にNullPointerException
がスローされる問題を修正しました。cluster-quorum-policy
属性をsystem-propertyでオーバーライドできない問題を修正しました。- 許可される値が"
allow
"または"default
"の"action
"要素を導入することで、ホスト名検証の構成を改善しました。詳細は、XSDを参照してください。 - Coherenceオペレーション構成用のスキーマ内の様々な管理対象ノード・オプションの説明を改善し、開発者が各モードの意味を簡単に理解できるようになりました。
- リフレクションを介してアクセス可能なクラスの許可リストまたは拒否リスト(あるいはその両方)の構成を有効にするシステム・プロパティ
coherence.reflect.filter
を追加しました。 - セキュアな静的ラムダ間での構成を可能にし、動的ラムダの使用をより便利にするセキュリティ強化を追加しました。
- XML外部エンティティ・インジェクション(XXE)を防ぐために外部エンティティへのアクセスを無効化するようにXMLプロセッサを構成しました。
- ガーディアン・サービス・スレッド・ダンプがサーバー・ログに表示される頻度を減らすために、期間に設定できるシステム・プロパティ
coherence.guardian.log.threaddump.interval
のサポートを追加しました。 - near-schemeの許容される子要素としてservice-nameを追加しました。
- クラスタ・レベルで
coherence.mode
が事実上無視される問題を修正しました。 - Coherenceロガーがレベル6以上に設定されている場合にCoherenceロギング構成を出力するメッセージをstdoutに追加しました。
BinaryMemoryCalculator
が索引サイズを計算できない場合に表示されるメッセージの頻度を減らしました(60秒ごとに1回)。- パケット配信"
<resend-milliseconds>
"および"<timeout-milliseconds>
"要素の値を設定するためのシステム・プロパティ"coherence.publisher.resend.interval
"および"coherence.publisher.delivery.timeout
"を追加しました。 - クラスタ結合タイムアウトの制御に使用できるシステム・プロパティ
coherence.join.timeout
を追加しました。 - 動的スレッド・プールのサイズ設定に関連するログ・メッセージの表示を制御するために、システム・プロパティ
coherence.daemonpool.debug
(デフォルトはfalse)を追加しました。これらのメッセージを表示するには、このプロパティをtrueに設定します。
- トピック
- 離脱したクラスタ・メンバーによって作成されたトピック・グループ・サブスクライバの削除をより積極的に実行することで改善し、残りのサブスクライバへのチャネルの再割当てが高速化されました。
- チャネル内のサブスクライバ・グループで最後にポーリングされた位置が、サブスクライバ・フェイルオーバー時に適切にロールバックされず、一部のメッセージが受信されない問題を修正しました。
- トピックのチャネル数を増やすと
UnsupportedOperationException
が発生する問題を修正しました。 - チャネルの前の所有者が離脱した後、トピック・サブスクライバによって、新しく割り当てられたチャネルからのメッセージの受信が停止される問題を修正しました。
- パブリッシャがチャネル数を増やすと、新しいチャネルがトピック・サブスクライバに割り当てられない問題を修正しました。これは、アクティブ永続性を使用してクラスタの再起動を実行する場合に特に当てはまります。
- トピック・サブスクライバのチャネル割当てが、メンバーを所有するサブスクライバがクラスタから離脱したときにクリーンアップされないことがある問題を修正しました。
- サブスクライバから返されたFutureを取り消す際に
PagedTopic
がメッセージを失う可能性がある競合状態を修正しました。 - 既存のトピックのチャネル数を変更できるようにトピックを拡張しました。
NamedTopic
サブスクライバによって返されたCompletableFuture
を取り消すと、サブスクライバがそれ以上メッセージを受信できなくなる問題を修正しました。取り消されたFutureまたは完了したFutureが正しく処理されるようになりました。- 必要に応じてtrueを返すように、
NamedTopic
メソッドisDestroyed
およびisReleased
を修正しました。 - 所有しているメンバーがクラスタから離脱するときにトピック・サブスクライバがクリーンアップに失敗する問題を修正しました。これは、単一のコアでCoherenceを実行する場合に特に関連しています。
- コンカレント・エグゼキュータ・サービス
RecordingSubscriber
における競合状態を修正しました。これにより、RecordingSubscriber
で不正な状態が報告される可能性がありました。 - トピックMBeanを登録する際に発生する可能性のある
NullPointerException
を修正しました - トピック・サブスクライバが以前にコミットされたメッセージを再配信する問題を修正しました。
- 処理中の受信操作があるトピック・サブスクライバでシーク操作を呼び出すときに発生する可能性がある競合状態を修正しました。
- トピック・サブスクライバが切断され、再接続しようとするとハングする問題を修正しました。この問題の修正により、トピックを使用する場合、14.1.1-2206-4より前のバージョンからのローリング・アップグレードを実行できなくなります。ローリング・アップグレードが必要な場合は、2段階で実行する必要があります。まずバージョン14.1.1-2206-4以上、次に14.1.1-2206-9にアップグレードします。このローリング・アップグレードの制限は、トピックを使用しているアプリケーションにのみ影響します。
- 管理/メトリック
- RESTを介した管理におけるフェデレーションのリセット統計URLを修正しました。
- オペレーション・オーバーライド構成で
coherence.management-config.domain-name-suffix
を設定して、Coherence MBeanのドメイン名接尾辞を指定する機能を追加しました。 - メトリック登録が失敗した場合に、追加のロギングを追加しました。
- 接続再試行タイムアウトに達したためにフェデレーションが停止したときのエラー・レベルのログ・メッセージを追加しました
- Grid Editionでのみ使用可能な特定の機能をコールするように、REST Swaggerを介した管理のドキュメントを更新しました。
- ログ・レベル6以上のBAD_REQUEST (ステータス400)のREST HTTPレスポンスで処理された例外を記録することで、開発時のデバッグを支援するために、Coherence RESTサーバー・ロギングを拡張しました。
- SLF4J以外のサポートされているすべての宛先に変更を適用するように、
ClusterNodeMBean.setLoggingLevel()
を改善しました。これは、SLF4Jがこの機能をサポートしていないためです。 - Java環境およびシステム・プロパティの詳細を提供する、
ClusterNodeMBean
のreportEnvironment
MBean操作のレスポンスを返すRESTエンドポイントをClusterMemberResource
に追加しました。 - Micrometerの使用時に一部のキャッシュ・メトリックが登録できない問題を修正しました。
TransactionManager
MBeanの詳細を表示する新しいレポート(report-transaction.xml
)を追加しました。- メトリックのサポートのために、
ServiceMBean
属性StatusHACode
を追加しました。 - ローリング再デプロイの
StatusHA
のモニター方法を示す例を追加しました - キャッシュMBean問合せの結果にサービス名およびnodeIdを追加しました。また、キャッシュMBean問合せから、MBeanタイプ(type)、クラスタ名(cluster)、メンバー名(member)およびキャッシュ層(tier)の属性を取得できるようになりました。
reportEnvironment
操作をClusterNode
MBeanに追加し、Java環境およびシステム・プロパティの詳細を提供するようにしました。- Coherenceクラスタ構成を取得するために、RESTエンドポイントを介したMBean操作および管理を追加しました。
- クラスタ内に他の管理ノードが存在しているときに、ノードが動的管理のシニアになると、デッドロックが発生する問題を修正しました。
- 非推奨のgRPCセッション・クラスをcoherence-java-clientモジュールから削除しました。
- すべてのMBean操作で読取り専用管理モードが適用されない問題を修正しました。
- 問合せ計算中にクラスタ・メンバーが停止した場合、大規模なクラスタのすべてのメンバーに対する問合せが
InstanceNotFoundException
で失敗するRESTおよびJMXを介した管理の問題を修正しました。 - Prometheusテキスト形式を使用する際に、Coherenceメトリック・エンドポイントから取得されたメトリック・メタデータ値では、メトリック・タイプ名に余分なスペースが含まれるという問題を修正しました。
- ローリング・アップグレードを実行すると
NullPointerException
が発生し、キャッシュ・サービスが再起動する問題を修正しました。 - バージョン互換性の問題により、ビュー・キャッシュを使用しているときに、ローリング・アップグレードができない場合がある問題を修正しました。
- Coherenceの累積OPatchパッチは、以前に適用されたCoherence累積パッチ(ある場合)よりも優先されるようになりました。以前のパッチのロールバックは不要になる可能性があります。
- RESTを介した管理用の
management-swagger.json
にforceRecovery
操作が存在しない問題を修正しました。 - すべてのサービスが開始する前にCoherenceヘルスAPIが準備完了を報告する問題を修正しました。
- NodeId列がビュー・レポートにない問題を修正しました。
- クラスタ内のビュー・キャッシュを取得するためのRESTエンドポイントを介した管理を追加しました。
- ポート0 (エフェメラル)にバインドするように構成されたHTTPリスナーの実際のリスニング・ポートが表示されない問題を修正しました。
- 管理のシニアがクラスタを離れると、登録されたヘルス・チェックが新しい管理のシニアで消える問題を修正しました。
- 一部のレポータ・グループ・ファイルで
coherence.reporter.frequency
システム・プロパティが適用されない問題を修正しました。 - サービス・リクエスト・タイムアウトのかわりに小さいタイムアウト値を使用する操作が原因で、MBean属性の設定時に
RequestTimeoutException
がスローされる問題を修正しました。 ServiceMBean.TaskMaxBacklog
が最大タスク・バックログに更新されない問題を修正しました。ConnectionManager
MBeanresetStatistics
操作がREST APIおよびSwaggerドキュメントにない問題を修正しました。- いくつかのヘルス・チェックのMBean属性の説明を修正しました。
- Coherenceメンバーの停止時または予期しない再起動時に
MetricsHttpProxy
サービスの再起動に失敗する問題を修正しました。 - JMXクラスタ・メンバー・ロールを引き受けるメンバーでクラスタ・サービス・スレッドがブロックされる可能性がある問題を修正しました。
- Coherence Reporterプロキシ・レポートで、クラスタへの参加と離脱のメンバーが考慮されない問題を修正しました。
- シェーディングされたMVEL2ライブラリをcoherence-rest.jarから削除し、Coherence REST問合せ処理用に組込みCoherenceクラスを使用するように切り替えました。MVELは、ライブラリ(mvel2.jar)をクラスパスに追加することで、必要に応じて引き続き問合せ処理に使用できます。
- ObjectNameに同じtypeフィールドを持つ非Coherence MBeanが存在する場合に、RESTを介した管理の問合せが失敗する問題を修正しました(例: "
type=Service
"の場合)。 - ローリング・アップグレード中に
Connector$Register
がNullPointerException
をスローする問題を修正しました。 ListenerKeyCount
、ListenerFilterCount
およびListenerRegistrationCount
をreport-cache-storage.xml
に追加しました。- coherence.jarの前に別の
management-http-config.xml
ファイルをクラスパスに配置することで、ファイルをオーバーライドできるように、management-http-config.xmlのロード・プロセスを改善しました。 - クラスタ・メンバーによってロードされたmanagement-config.xmlファイルの場所を報告するためのロギングを改善しました
- キャッシュのキャッシュ・パーティション・サイズを報告するために、
reportPartitionStats
操作をStorageManager
MBeanに追加しました。 ClearCount
属性をStorageManager
MBeanに追加し、キャッシュでclear()
がコールされた回数を示すようにしました。- 分散キャッシュの合計サイズを取得するための
StorageManager
MBeanに対するsize()
操作を追加しました。 - Jconsoleを使用した接続に使用するCoherence JMXサーバーURLを出力するUNIXおよびWindowsスクリプト
jmxserviceurl.[sh|cmd]
を追加しました。 - 追加のJMX属性は、
SimpleStrategyMBean
のメトリックとして公開されるようになりました。 TransportStatus
属性に常に信頼できるトランスポート情報が含まれるように、CoherenceNode
およびService
MBeanを拡張しました。- クラスタ、サービスおよびメンバーに関する詳細を取得するために、
Cluster
、Service
およびClusterNode
MBeanにgetClusterDescription
、getServiceDescription
およびgetNodeDescription
操作を追加しました。 clearCache
およびtruncateCache
操作をStorageManager
MBeanに追加しました- デフォルト(非冗長)の
IndexInfo
文字列表現からコンテンツ属性を削除することで、索引パーティションにわたる一意キーのコストのかかる収集によって発生するStorageManager
MBean移入中のパフォーマンス低下を修正しました。 - RESTを介した管理で、空のコレクションではなく空のレスポンスが返される問題を修正しました。
- 管理対象CoherenceサーバーのCoherenceロギング・メッセージの文字制限をユーザーが設定できるように、
CoherenceLoggingParamsBean
にCharacterLimit
属性を追加しました。 - Coherenceでサポートされている非推奨のHTTPサーバー
coherence-http-grizzly
、coherence-http-jetty
およびcoherence-http-simple
を削除しました。 - メモリー情報をメガバイト単位で表示するために、メモリー・ステータス・レポートに列を追加しました。さらに、すべてのレポートでレポート値の表示に指数表記法を使用しないようにしました。
- Microprofile Health APIとの統合を追加し、サーバーCoherenceのヘルス・チェックがMP Healthエンドポイントを介して行われるようにしました。
- ロード・バランサがプロキシとクライアントの間にあるときにクライアントへの接続を識別するために、クライアントから始まる新しい属性を
ConnectionMBean
に追加しました。これらの属性は、Coherence.Connnection.*
メトリック値のメトリック・タグにマップされます。 - Java Enterprise Performance Packで実行中にJFR関連のMBean操作を呼び出すと、
java.lang.IllegalArgumentException: Operation vmUnlockCommercialFeatures()
を呼び出すことができないというエラーがスローされる問題を修正しました。 - 単位係数が1より大きい場合に、大容量キャッシュでキャッシュの
Units
属性またはメトリックが負になる問題を修正しました。
- 統合
- レスポンス・キャッシングのCDIサポートを追加しました。
- Coherence/Spring Bootアプリケーションの終了時に
IllegalStateException
がスローされる問題を修正しました。 - Spring Bootの使用時にCoherenceセッションが見つからないブートストラップAPIの問題を修正しました。
- StringまたはBinaryの配列長に対する不要なJEP-290フィルタ・チェックを削除することで、パフォーマンスの低下を修正しました。
coherence-helidon-grpc
、coherence-helidon-client
およびcoherence-helidon-proxy
モジュールを削除しました。Coherence gRPCサーバーおよびクライアントはHelidonアプリケーションで引き続き動作しますが、Helidon MP gRPCサーバー上でCoherence gRPCプロキシ・エンドポイントを自動的に処理することはできなくなりました。Coherenceは、独自の独立したgRPCクライアントおよびサーバーを構成および作成します。- OpenTelemetryの統合サポート。詳細は、ドキュメントを参照してください。
- GraalVM for JDK 21およびGraalVM Truffle 23.1.4ライブラリと連携するように、サーバー側のJavaScript統合を更新しました。
- GARサーバーを実行して
DefaultCacheServer
との一貫性を保つことができるように、com.tangosol.net.Coherence
クラスのメイン・メソッドを有効化しました。 - 抽象クラスに定義されたインターセプタを使用するときに、GARが適切に停止しない問題を修正しました。
- 仕様に準拠していないOpenTracingトレーサ実装に対して防御ガードを追加しました。
- WebLogic管理対象Coherenceサーバー
- WebLogic管理対象Coherence内のブートストラップAPIを使用してデフォルト・セッションをリクエストすると、有効なセッションが返されない問題を修正しました。
- 基礎となるキャッシュ・サービスが正常に停止できないために、GARアプリケーションのアンデプロイがハングする問題を修正しました。
- リフレクション・ベースのエクストラクタのデシリアライズがWebLogicで実行されているときに拒否される問題を修正しました。
- WebLogic管理対象Coherenceを使用してGARアプリケーションで実行する際に、自動検出されたセッション構成が正しく起動および停止されない問題を修正しました。
- CoherenceクライアントがOSB Javaコールアウト・ユーティリティ内で実行されたときに
IllegalStateException
がスローされる問題を修正しました。 - WebLogic管理対象Coherenceで実行されているクラスタでCoherence gRPCプロキシを使用できない問題を修正しました。
- ホット・キャッシュ
- Oracle GoldenGate 12.3.2.1.xおよび19.1.0.xをサポートするようにCoherence HotCacheを拡張しました。
- GoldenGate ggsciコマンド統計がコールされたときに
CoherenceAdapter
MBean統計を報告するHotCacheプロセスを修正しました。 - 挿入イベントの欠落している表の列ごとに1つの警告メッセージのみをログに記録するようにHotCacheAdapterを変更しました。この警告は、GoldenGate Extractがすべての表の列を抽出しない場合にのみ発生します。
- JRE 11をサポートするOracle GoldenGate Big Data 21.8に依存するようにCoherence HotCacheをアップグレードしました。
- その他
- 静的ラムダをデフォルトとする本番モードを削除することで、分散ラムダのローリング・アップグレードを修正しました。
coherence.jar
が別のjarにシェーディングされている場合、Coherenceが正しく動作するように改善しました。- ストレージにBerkeley Database JEデータベースを使用する場合、JPMS
--add-exports java.management/sun.management=com.oracle.coherence
が必要になる問題を修正しました。 java -jar coherence.jar --version
を使用してクラスタを起動せずにCoherenceバージョンを表示する機能を追加しました。- クラスタ・サービスの停止プロセス中のエラー・レポートを改善し、クラスタ・サービスの停止の原因および停止中に発生した可能性のある問題を特定できるようになりました。
- Coherence APIを介して、またはJava
ServiceLoader
を使用した検出を介して、ライフサイクル・リスナーをCoherenceインスタンスに登録する機能を追加しました。 - 必要なランタイム・ライブラリとして
jackson-annotations
を削除するcoherence-json
モジュールの問題を修正しました。 javax.annotation.Priority
注釈がクラスパスで使用できない場合、InjectorProviderがClassNotFound
例外をスローしないようにする問題を修正しました。- すべてのデーモン・プール・スレッドがスタックしているときに、サービス・スレッドがハートビートしない問題を修正しました。
- gRPCがキー・アソシエーションを正しくサポートしていない問題を修正しました。
- Coherenceのデフォルトの
HostnameVerifier
が、有効なホスト名を誤って拒否する問題を修正しました。 - Java 17以降の
DefaultMemberIdentity.makeProcessName()
でIllegalAccessException
がスローされる問題を修正しました。 - ARMプロセッサの
SafeHashMap
で競合状態が発生する問題を修正しました。 - Java 17でのサポートが廃止されたため、Sun Codemodelシェーディング依存関係をcoherence.jarから削除しました。
clear()
などの一括更新の一部である一部のエントリに対してUnsolicitedCommitEvents
が起動しない問題を修正しました。- 拡張キャッシュの
UnsupportedOperationException
をスローするようにasync()
を変更しました。ニア・キャッシュおよびビュー・キャッシュのasync()
を、バック・キャッシュでasync()
をコールするように変更しました。 - システム($SYS)
ConfigurableCacheFactory
に対してLifecycleEvent.DISPOSING
が発行されていない問題を修正しました。 - 型検出を有効にしたときに列挙が自動的に検出されない問題を修正しました。
- クラスタ・サービスが再起動された場合、ビュー・キャッシュ・サービスがリークする問題を修正しました。
- ニア・キャッシュとローカル・キャッシュで同じサービス名が正しく共有されない問題を修正しました。
DaemonPool
が無効になっている場合でも、遅延したサービス参加によって誤ってDaemonPool
が起動する問題を修正しました。- キャッシュ・バッキング・マップ・エントリによって使用されるメモリーが、必要以上に多くなる問題を修正しました。
Binary.hashCode
の変更によって発生したパフォーマンスの低下を修正しました。- Coherence gRPC、Helidon、JSONおよびMicroProfile POMファイルにリストされている依存関係を更新しました。
- gRPCクライアントからキャッシュで
clear()
をコールすると、実際の削除ではなく統合削除を使用してエントリが削除され、削除として表示される問題を修正しました。 - マップ内に多数のエントリがある場合に
SafeSortedMap
メソッドgetEntrySet
およびgetEntry
のパフォーマンス低下を修正し、エントリ・キーまたは値に対してSafeSortedMap
メソッドがSafeSortedMap.NULL
を返さないようにしました。 - 初期化中の
ContinuousQueryCache
がキャッシュ切捨てイベントを受信して処理しようとする潜在的なスレッド・デッドロックを修正しました。 - MessageBusが構成された間隔の2倍でハートビートする問題を修正しました。
- リモートのgRPCセッションからセッション名を取得しようとしたときに
NullPointerException
が発生する問題を修正しました。 - クラスタ内のgRPCプロキシ・メンバーのローリング再起動中にgRPCクライアント接続が正しくフェイルオーバーされない問題を修正しました。
ReplicatedCache
サービスの停止時にNullPointerException
がスローされる問題を修正しました。- 並列性を改善し、大きな問合せの実行時に2GBのメッセージ制限を超えないようにするため、メンバーではなくパーティションで問合せを実行するように
NamedCache.entrySet(Filter)
実装を変更しました。 - 無効化戦略を使用する
NearCache
がget/getAll
内のキー・ロックの解放に失敗し、KEYの状態が破損していることが検出されたことを示すログ・メッセージが表示される問題を修正しました。 - 有効期限のスライドが有効なときに読取り専用キャッシュ・エントリにアクセスすると
UnsupportedOperationException
がスローされる問題を修正しました。 - バッキング・マップとして、
SafeHashMap
などの監視不可能なマップを使用すると、クラスタ・メンバーが離脱した際にデータが失われる問題を修正しました。 ServiceLoader
を使用して検出されたCoherenceLifecycleListener
を2回登録できるため、イベントが複数回受信される問題を修正しました。TcpRing.close.keys()
が未処理のClosedSelectorException
をスローし、クラスタ・サービスが予期せず終了する問題を修正しました。- ハートビートが有効なMessageBus接続が、削除された接続の再確立時に
OutOfMemoryError
をスローする問題を修正しました。 SimpleServiceMonitor
がサービスの再起動に失敗したときに、基礎となる例外が正しくログに記録されない問題を修正しました。- transactional-schemeのhigh-units設定が無視される問題を修正しました。
ExtensibleConfigurableCacheFactory
のインスタンスで構築された場合に、ConfigurableCacheFactorySession
がイベント・インターセプタをリークする問題を修正しました。- 分散サービスが、
IllegalStateException
につながる未所有のパーティションを解放する問題を修正しました。 - 高いストレスがかかる状況で
SafeSortedMap
同時アクセスによって不整合が発生する問題を修正しました。 - スナップショット・リカバリ後にニア、ビューおよび連続問合せキャッシュに古いデータが含まれる問題を修正しました。
- 指定したタイムアウト後に操作を中断できるように、中断可能なロックを使用するようにキャッシュ操作を改善しました。
- パーティション・バックアップ数が1より大きい場合に
AssertionException
がスローされる問題を修正しました。 - パーティション・バックアップ転送中にデッドロックが発生する問題を修正しました。
PartitionSet.intersects
メソッドによってAssertionException
がスローされる問題を修正しました。- Coherence Mavenプラグイン関連のjar内の
MANIFEST.MF
ファイルがCoherenceパッチによって更新されない問題を修正しました。 - 負荷が高いキー・リスナーが同じメンバーの負荷が低いリスナーによってオーバーライドされる問題を修正しました。
BetweenFilter
およびエントリの削除操作による同時問合せ中にNullPointerException
がスローされる問題を修正しました。- パーティション数がストレージが有効なメンバー・サイズより小さい場合に、
archiveSnapshot
がArrayIndexOutOfBoundsException
をスローする問題を修正しました。 - サービスの起動およびクラスタへの参加に失敗する問題を修正しました。
- 分散ライブラリjarからmavenビルド・アーティファクトを除外しました。
- Coherence*Extendでの
NearCache
のPrimingListener
最適化が破損した問題を修正しました。 - Javaセキュリティの例で、クライアントがプロキシから切断されたときにリスナーが削除されず、それらのリスナーにイベントがディスパッチされる問題を修正しました。
TransferEvent.ASSIGNED
とpre-commitEntryEvents
の間の競合状態を修正しました。TransferEvent.ASSIGNED
に登録されたインターセプタは、同じパーティションのEntryEvents
の前に完全に完了する必要があります。- 不正な深くネストされたフィルタを処理する際に、クラスタ・メンバーで
StackOverflowError
が発生して停止する問題を修正しました。 - ジェネリックをサポートし、メソッド
putIfAbsent
、remove、replaceおよびmergeを正しく実装するために、ConverterCollections.getNamedCache
を改善しました。ConverterCollections
の一部のファクトリ・メソッドの戻り型が拡張され、実装ベースではなくインタフェース・ベースになりました。 - ローリング・アップグレード中に
java.io.StreamCorruptedException: invalid type: 64
が発生する問題を修正しました。 - カスタム
AddressProvider
の使用時に*Extendクライアントで発生するメモリー・リークを修正しました。 - 索引の再構築の終了を待機してブロックされている間に、サービス・スレッドが終了する問題を修正しました。
- Coherence jarファイルの
MANIFEST.MF
バンドル・バージョンを修正しました。 - パーティション転送中にキャッシュ削除操作が失われる問題を修正しました。
- サービスの一時停止中にアクティブなリカバリが開始される問題を修正しました。
ContinuousQueryCache
内のバイナリ・マップ検出の問題を修正しました。releaseCache()
またはdestroyCache()
の同時コールによってIllegalArgumentException
がスローされる可能性があるConfigurableCacheFactory
の競合状態を修正しました。- 異なるエディションが同じクラスタに参加できない問題を修正しました。
- TcpRingが一時的にネットワークにアクセスできないクラスタ・メンバーの削除を誤ってトリガーする問題を修正しました。
- バックログの過剰なイベントの配信と同時にクラスタ接続がハンドシェイクしている場合、アプリケーション・リクエストがハングする問題を修正しました。
- パーティション数が多い場合にパーティションを割り当てると、誤ってガーディアンがトリガーされる問題を修正しました。
- アグリゲータが存在するエントリに限定されていない場合、
BMC.getReadOnlyEntry
へのコールで読取りが開始されない問題を修正しました。 - MapEventFilterのフィルタ・シグネチャのジェネリック・タイプの使用方法を修正しました。
- エントリの同時変更が頻繁に発生する場合に結果がより速くなる、一貫性のない問合せ結果を許可するオプションを追加しました。このオプションは、
ALLOW_INCONSISTENCIES
をアグリゲータのcharacteristics()
に追加するか、coherence.query.retry
システム・プロパティを0 (ゼロ)に設定することでグローバルに設定できます。 - キャッシュの同時作成およびリリースによって、キャッシュの作成時に
ScopedCacheReferenceStore
がキャッシュへの参照の格納に失敗し、キャッシュが後でリリースされた場合に例外が発生する問題を修正しました。 - エントリの同時変更が頻繁に発生する場合、
StreamingAggregator
を使用した問合せに非常に時間がかかる問題を修正しました。 - 登録された
MapTrigger
がコールされない問題を修正しました。 - 古いメンバーがサービス・メンバー・セットに残る問題を修正しました。これにより、サービスへの参加を試みる新規メンバーが無限に拒否される可能性がありました。
BackingMapContext.getBackingMapEntry
を使用して別のキャッシュにエントリを登録し、同時にその別のキャッシュでinvokeAll
を実行すると、最適でないデッドロック回避のロールバックが発生する問題を修正しました。- 構成されているすべてのWKAアドレスを解決できない場合、クラスタ参加がマルチキャストに自動的にフォールバックする問題を修正しました。
親トピック: このリリースで修正された不具合および機能強化