問題タブ [infinispan]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hibernate - Infinispan L2 キャッシュのカスタム エビクション ポリシー
Hibernate アプリの L2 キャッシュとして infinispan を使用する予定です。私のすべてのエンティティには、ライフサイクル属性 [新規 -> 実行 -> 完了] があります。最初は私のエンティティは新しい状態にあり、時間が経つと他の状態に移動します。
単純に、エンティティのライフサイクル属性のステータスが Completed 状態になったときにエンティティをキャッシュから削除したいと考えています。私の理解では、Infinispan はカスタム エビクション ポリシーをサポートしていません。私の状況を処理する最善の方法は何ですか?
hibernate - Query Cache Hibernate ローディング エンティティ
誰でもこの質問を解決するのを手伝ってくれますか? Infinispan を二次キャッシュとして使用し、Hibernate を ORM として使用しています。enityt とクエリ キャッシュの両方をオンにしました。
たとえば、Q1 は「BokkEntity b からの selet b where b.id < 5」であり、Q2 のような別のクエリは「select b from BokkEntity b where b.id < 7」
です。初めて Q1 を実行すると、5 がロードされます。永続ストアからキャッシュへのオブジェクト。2 番目のクエリを初めて実行すると、7 つのオブジェクトがキャッシュに読み込まれます。最初の 5 つのオブジェクトは両方のクエリで共通です。そして、私の理解によると、クエリ キャッシュは常に ID を格納するだけであり、エンティティ キャッシュがオンになっている場合、クエリ キャッシュ内の ID によって参照されるオブジェクトのキャッシュ内で検索が行われます。
したがって、私の質問は、Q2 (q1 の実行後) を初めて実行しているときに、両方の Q2 がすべてのオブジェクトを再度読み込み、エンティティ キャッシュでこれらを上書きする理由です。
クエリキャッシュが後続のリクエストに対して適切に機能していることを確認しました。つまり、Q1 または Q2 を再実行すると、データはキャッシュからアクセスされます。
これは緊急です。努力に感謝します。
ありがとう
ミーナ
jboss7.x - CacheEntryCreated イベント -- 再び
JBoss Infinispan ディスカッションから投稿されたクロス
Infinispan キャッシュの 1 つでエントリが作成されるたびにアクションを実行するコードを実装しようとしています。@CacheEntryCreated メソッドに渡された CacheEntryCreatedEvent オブジェクトに、新しく作成されたエントリが含まれていないことがすぐにわかったので、解決策を探しました。
@CacheEntryCreated イベントの後に配信される @CacheEntryModified イベントをキャッチし、 isPre()=false のときにオブジェクトを取得するという解決策の問題について、さまざまな議論を見つけました。ただし、すべての議論で、作成ではなく既存のエントリの正当な変更を表す変更イベントがある状況に対処していないため、何かを見逃したと思います。
これは、@Listener オブジェクトがイベントの配信間で状態情報を維持する必要があるということですか? 私の @CacheEntryModified は、イベント オブジェクトを統合し、作成イベント (つまり、getValue() == null && isPre() == true) を決定し、次の @CacheEntryModified イベントを待ってから、新しく作成されたオブジェクトを取得する必要がありますか?
これは、2 番目の @CacheEntryModified (つまり、isPre() == false) イベントが配信される前に、別の @Listener オブジェクトが変更を拒否した場合にどうするかという明らかな問題を提起します。
他の人々はこの状況をどのように処理しますか?
spring - JBoss AS 7 インフィニスパン クラスター
次の方法で2ノードのJBoss AS 7.1.1.FINALクラスターをセットアップしています-
- master - Ubuntu Server 12.10 (VirtualBox VM) で実行
- スレーブ - Windows 7 (VirtaulBox ホスト マシン) で実行
両方のノードに Spring Web アプリケーションをデプロイしました。動作する複製キャッシュをセットアップしようとしています。私の問題は、クラスタリングが機能しているように見えても、キャッシュが複製されていないように見えることです。
私の設定 -
domain.xml (マスターとスレーブの両方)
jndi-name と EAGER start を除いて、これは domain.xml のほとんどのデフォルト設定です。
春の構成では -
この設定では、キャッシュは機能しますが、複製されません。キャッシュは互いに独立して動作しているようです。また、EAGER スタートは効果がないようです。キャッシュは、最初に使用するときにのみ初期化されるようです。
マスターログから (初回キャッシュ使用時) -
スレーブログから (初回キャッシュ使用時) -
mod_cluster、HornetQ、および Quartz がこのクラスターにセットアップされており、それらはすべて期待どおりに動作するため、これは udp/マルチキャストの問題ではないと思います。
hibernate - Infinispan with Hibernate: オブジェクトがキャッシュに追加されないか、更新後に削除されます
現在、Infinispan の第 2 レベルのキャッシュに問題があります。2 つのテスト ケースを用意しました。
1) 新しく作成されたオブジェクトは、第 2 レベルのキャッシュに置かれません。最初のトランザクションで新しいオブジェクト (TestEntity) を作成します。フラッシュしても、第 2 レベルのキャッシュに格納されていないことがわかります。トランザクション (コンテナー管理) を閉じて 2 番目のトランザクションを作成すると、新しく作成されたオブジェクトはまだ 2 次キャッシュに見つかりませんが、それをロードするとデータベースに見つかります。したがって、最初のトランザクションで作成およびコミットされていることが確実です。しかし、最初のトランザクションが閉じられた後、新しく作成されたオブジェクトが第 2 レベルのキャッシュに入れられないのはなぜでしょうか?
2) 更新されたオブジェクトは、フラッシュ後に第 2 レベルのキャッシュから削除されます。データベースからエンティティをロードしているため、エンティティは第 2 レベルのキャッシュにあります。ここで、このロードされたエンティティの属性を更新し、フラッシュを実行します。2 番目のレベルのキャッシュを再度確認すると、エンティティはもうキャッシュされていません。更新 + フラッシュ後にキャッシュから削除されるのはなぜですか? また、これを防ぐにはどうすればよいですか?
ケース 1: コード:
ログ出力 1 番目のトランザクション:
ログ出力 2 番目のトランザクション:
ケース 2: 準備: 既に DB にあるエンティティ "TMP0000000000043" の PreLoad
コード:
ログ出力: 17:21:17,685 INFO [stdout] (default-threads - 6) LifecycleEngine TestEntity : true 17:21:17,857 INFO [stdout] (default-threads - 6) LifecycleEngine TestEntity : false 次のセットアップを使用しています。 - EAP-6.0.1 - Hibernate 4.2 - 第 2 レベルのキャッシュとして EAP-6.0.1 によって提供される Infinispan
サブシステム構成:
レベル 2 キャッシュの有効化:
エンティティの注釈は次のとおりです。
java - プログラムで Infinispan MBean にアクセスする
Infinispan 5.2.1 を使用しており、Java プログラムを介して MBean にアクセスしようとしました。しかし、運がありません。Platform MBean サーバーに Infinispan MBean が登録されていると仮定します。Jconsole ではすべての MBean を正しく表示できますが、プログラムでは表示できません。
私の Infinispan 構成
私の Java プログラム。
hibernate - Infinispan L2 キャッシュでの Hibernate / Spring トランザクションの問題
Tomcat 6、Hibernate 4、Spring 3.5 などのテクノロジーを使用するアプリケーションの Hibernate L2 キャッシュとして Infinispan を使用しようとしています。Tomcat で実行されているアプリケーションと現在のトランザクション マネージャーは次のとおりです。
Infinispan 導入のため、hibernate プロパティファイルに以下のプロパティを導入しました。
Infinispan の導入後、アプリケーションの安定性が失われ、さまざまなエラーがランダムに発生し始めました。Infinispan の構成が正しくないと思います (国境を越えたキャッシュを使用しています)。弊社のトランザクションマネージャーと Infinispan のトランザクション設定が一致していないと思います。正しい構成についてアドバイスをお願いします。
表示されるエラー
私が使用する Infinispan 構成ファイル