問題タブ [ehcache]
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.
java - 春からEhCacheキャッシュを作成する際の問題
EhCacheManagerFactoryBeanとEhCacheFactoryBeanの javadoc を読んで、次のように考えました。
@Autowired できるキャッシュを作成します。
クラス org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException: ServletContext リソース [/WEB-INF/applicationContext.xml で定義された名前 'locationCache' を持つ Bean の作成中にエラーが発生しました]: init メソッドの呼び出しに失敗しました。ネストされた例外は java.lang.NoSuchMethodError: net.sf.ehcache.Cache.(Ljava/lang/String;ILnet/sf/ehcache/store/MemoryStoreEvictionPolicy; ZLjava/lang/String;ZJJZJLnet/sf/ehcache/event/RegisteredEventListeners; です。 Lnet/sf/ehcache/bootstrap/BootstrapCacheLoader;II)V
ehcache 1.7.2、1.6.2、および 1.5.0 を試しました。
<cache name="locationCache" />
ehcache.xml で指定すると機能しますが、applicationContext.xml で構成を行うことを好みます。
hibernate - Hibernate と EHCache を備えた Terracotta
http://www.terracotta.orgで商品名のスープと頭が泳いでいます。私が必要なものを明確にするのを手伝ってくれる人が必要です。
背景: アプリには、Hibernate を使用しない「レガシー」永続化コードがいくつかありますが、自家製のキャッシュ実装があります。新しいエンティティは Hibernate 対応です。
私が欲しいのは、Hibernate 2nd レベルキャッシュに Terracotta を使用することです。次に、自家製のキャッシュ impl をスライドさせて、ehcache にスライドさせたいと思います (意味的には自家製のバージョンと非常に似ています) 。
と混同: ehcache がキャッシュ プロバイダーであることを Hibernate に伝えてから、テラコッタを使用するように ehcache を構成しますか?
そう
(休止状態 | レガシー永続化)-> ehcache -> テラコッタ
私は正しい軌道に乗っていますか?初心者の質問を許してください。しかし、terracotta.org のサイトは、その多くが私に商用品種を売り込もうとしているために、本当に私を混乱させます。
serialization - 分散EHCacheでのシリアル化の回避
シリアル化を使用せずにEHCachedisktoreを使用する方法はありますか?シリアル化できないネストされたオブジェクトがあり、分散ehcacheにキャッシュする必要があります。JMSを使用して、シリアル化を回避し、それでもキャッシュレプリケーションを実現できます。しかし、ディスクストアを使用するためにシリアル化を回避する方法はありますか?なぜdiskstoreの同様のサポートがないのですか..xmlシリアル化のようなものかもしれません。
ehcache - ehcache を使用する場合、どのような同期を行う必要がありますか?
次のような単一の CacheManager から始めるとしましょう: private static CacheManager manager = CacheManager.create();
getCache または addCache を呼び出すとき、最初に CacheManager で同期する必要がありますか?
キャッシュで put または get を呼び出すとき、最初にキャッシュで同期する必要がありますか?
hibernate - Grailsで読み取り専用の第2レベルキャッシュ休止戦略を一時的に無効にする方法は?
私の grails アプリケーションでは、一部のドメイン クラスはユーザーによって変更されることはありません。
ただし、メンテナンス作業が必要な場合があり、管理者は時々 (年に 2 回としましょう) 少数のインスタンスを作成/編集できる必要があります。
これらのドメイン クラス ( ) に対して読み取り専用の第 2 レベル キャッシュ戦略を設定したいとstatic mapping = { cache usage: 'read-only' }
考えています。また、Grails スキャフォールディングを介して一部のインスタンスを更新するために、読み取り専用戦略を (非常に特殊な状況で) '無効' にできるようにしたいと考えています。ビューを編集します。
出来ますか?あなたは私に何をするようにアドバイスしますか?
編集:私が実装しているソリューションは、パスカルとバートの回答を組み合わせたものです(コメントを参照)。どちらの回答も素晴らしく、役に立ちます。だから、受け入れられた答えを選ぶのにジレンマがありました!とにかくありがとうございました。
java - Hibernate EntityManager ファクトリ - EHCache
エンティティ マネージャ ファクトリを起動して実行する際に、さらに問題が発生しています。残念ながら、エラー メッセージは非常にあいまいです。なぜもっと説明的でないのかよくわかりませんが、それは次のとおりです。
Hibernate 起動ログ メッセージ (トレース レベル)、簡潔にするために構成されたエンティティはありません (この関係またはあれを作成するすべての起動メッセージを除いて、どちらの方法でも同じエラー メッセージが表示されます):
常に EHCacheProvider で停止します。私が過去に抱えていた問題は、プロジェクトを 50 のサブプロジェクト (30 のモデル プロジェクト、リスナー プロジェクト、フィルター プロジェクト、UI プロジェクト、Web アクション プロジェクトなど) に分割したことでした。私のプロジェクトの 1 つが最新バージョンを使用していない可能性があり (可能性は低いですが)、このタイプのエラーが発生する可能性があります。
これは私のlog4j構成です。問題がどこから来ているのかをより簡単に識別し、問題を解決するために必要なものを確認できるように、ログ内のものを分離しようとしています。
hibernate - hibernate と ehcache のレプリケーション
ノード間のキャッシュ レプリケーション ソリューションに取り組んでいます
ノード A - マスター ノード => 休止状態 + データベース + セカンダリ キャッシュとしての Ehcache
ノード B - 地域ノード => プライマリ キャッシュとしての Ehcache。no Hibernate
Node B は、クエリの近くのキャッシュとしてのみ使用されます。
現在、ノード A のデータ (SudentInfo と言う) を更新しています。データは永続化され、正しくキャッシュされます。レプリケーション側 (私は JMS を使用しています) では、ノード B にメッセージを送信します。しかし問題は、送信するメッセージがインスタンス CacheEntry(deep Inside Element) のものであり、元のオブジェクト (StudentInfo) を復活させる方法がないことです。ノード B で取得したのは、学生のいくつかの属性を持つ CacheEntry ですが、実際には学生オブジェクトではありません。
ノード B では Hibernate セッション/永続性は必要ないことに注意してください。ノード B は高速クエリ専用であり、永続性はノード A を介して行われます。CacheEntry を実際のオブジェクトに変換する方法はありますか? または CacheEntry ではなく元のオブジェクトを複製するように ehcache に指示します。
助けてくれてありがとう
java - 最近使用したエントリを削除する ehcache LRU
Ehcacheを使用すると、Java アプリが 2.5 日動作した後、この統計が得られます
最後の時間は次のようになります
キャッシュのサイズ = 400000、アイテムは期限切れになりません。
なぜそれが起こるのですか?
hibernate - Ehcache - 分散 RMI が機能しない
誰かが私を助けてくれることを願っています。A と B の 2 つのホストのクラスターをセットアップしました。ハートビートが両端で受信されていることがわかります。したがって、ネットワークとマルチキャストが機能していると確信しています。問題は、ホスト A のキャッシュに要素を入れることです。ホスト B のログで、リモート プットを受け取ることがわかります。しかし、ホスト B から同じ要素を要求すると、データベースに流れ込み、それでもクエリを実行します。これの原因は何ですか?ご指摘ありがとうございます。
java - Ehcacheディスクストアのクリーンでないシャットダウン
ディスクストアの永続性を備えたキャッシュを使用しています。その後のアプリの再実行で、次のエラーが発生します。
net.sf.ehcache.CacheManager.shutdown()
アプリのどこかを明示的に呼び出す以外に、それを修正する方法はありますか?
キャッシュ構成:
問題を再現するコード: