ColdFusion 9 と Ehcache を使用しています
Ehcache はかなりうまく機能していましたが、マシンを再インストールしてEhcache.Cache.put
から、特定の要素での作業を拒否しましたが、他の多くの要素で作業しています。
Cache.put
例外をスローせず、戻るまでに約 4 秒かかります。キャッシュに入れようとしている要素は ColdFusion コンポーネントで、わずか 7ko 程度です。シリアル化は使用しません。
キャッシュ構成は次のとおりです。
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
maxBytesLocalHeap="300m">
<sizeOfPolicy maxDepth="99999999" maxDepthExceededBehavior="continue"/>
<defaultCache
eternal="false"
timeToIdleSeconds="300"
timeToLiveSeconds="1200"
overflowToDisk="false"
statistics="true">
に変更しました
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
maxEntriesLocalHeap="900">
<defaultCache
eternal="false"
timeToIdleSeconds="300"
timeToLiveSeconds="1200"
overflowToDisk="false"
statistics="true"
maxEntriesLocalHeap="100">
そして、これはうまくいきます!maxBytesLocalHeap
aからmaxEntriesLocalHeap
configに変更すると違いが生まれます! おそらく、内部サイズの計算が機能していないと思います。を使用maxEntriesLocalHeap
するとサイズの計算が不要になるため、新しい構成で機能します。
なぜ:
- 特定の 1 つの要素だけで
Cache.put
作業していませんか?maxBytesLocalHeap
- 例外なし?
Cache.put
関数は4秒かかりますか?- この問題は、真新しいマシンの再インストールで発生しますか?
手がかりがあれば教えてください。本当に に戻す必要がありmaxBytesLocalHeap
ます。
PS:
- アプリケーションは、JDK 1.6、MachII、Hibernate、および ColdSpring も使用します。