22.9. 他の管理ツールと操作
22.9.1. URL 経由のデータアクセス
put()
および post()
メソッドは、キャッシュにデータを格納します。使用される URL より使用されるキャッシュ名とキーを判断することができます。データはキャッシュに格納される値で、要求の本文に置かれます。
GET
および HEAD
メソッドが使用され、他のヘッダーはキャッシュの設定と挙動を制御します。
注記
22.9.2. Map メソッドの制限
size()
、 values()
、 keySet()
、 entrySet()
などの特定の Map メソッドは不安定であるため、Red Hat JBoss Data Grid で一定の制限付きで使用することが可能です。これらのメソッドはロック (グローバルまたはローカル) を取得せず、同時編集、追加、および削除はこれらの呼び出しでは考慮されません。さらに、前述のメソッドはローカルのキャッシュ上でのみ操作可能であり、状態のグローバルビューを提供しません。
Red Hat JBoss Data Grid 6.3 以降、マップメソッド size()
、values()
、keySet()
、および entrySet()
には、デフォルトでキャッシュローダー内のエントリーが含まれます ( 以前は、これらのメソッドにはローカルのデータコンテナーのみが含まれていました)。基礎となるキャッシュローダーはこれらのコマンドのパフォーマンスに直接影響を与えます。たとえば、データベースを使用している場合、これらのメソッドはデータが格納されるテーブルの完全なスキャンを実行し、処理が遅くなることがあります。古い動作を保持するには Cache.getAdvancedCache().withFlags(Flag.SKIP_CACHE_LOAD).values()
を使用し、パフォーマンスの低下を回避するにはキャッシュストアからロードしないようにしてください。
JBoss Data Grid 6.3 では、Cache#size()
メソッドはローカルノードのエントリー数のみを返し、クラスター化キャッシュの他のノードを無視し、失効したエントリーを含みます。デフォルトの動作が JBoss Data Grid 6.4 以降で変更されなかった場合は、infinispan.accurate.bulk.ops
システムプロパティーを true に設定することにより、多くの操作 (size()
を含む) に対して正確な結果を有効にできます。操作のこのモードでは、size()
メソッドにより返される結果は、ローカルノードに存在するエントリーの数を返すフラグ org.infinispan.context.Flag#CACHE_MODE_LOCAL
と、すべてのパッシブ化エントリーを無視するフラグ org.infinispan.context.Flag#SKIP_CACHE_LOAD
によって影響を受けます。
JBoss Data Grid 6.3 では、Hot Rod size()
メソッドは STATS
操作を呼び出し、返された numberOfEntries
統計を使用してキャッシュのサイズを取得していました。この統計は、失効済みのパッシブ化エントリーを考慮せず、操作に応答したノードにのみローカルであるため、キャッシュ内のエントリー数を正確に反映しません。別の結果として、セキュリティーが有効である場合は、クライアントが適切な BULK_READ
の代わりに ADMIN
パーミッションを必要とします。
SIZE
操作で拡張され、クライアントが size()
メソッドにこの操作を使用するよう更新されました。JBoss Data Grid サーバーは、サイズを正確に計算できるように infinispan.accurate.bulk.ops
システムプロパティーを true
に設定した状態で起動する必要があります。