1

ehcacheでテラコッタを使用しようとしています。私のプロジェクトのセットアップは、ehcache と統合されたアプリケーションが展開されている tomcat の 2 つのインスタンスを使用しているようなものです。これら 2 つのインスタンス間の同期が必要なため、テラコッタを使用しています。しかし、私はエラーに直面しています

「net.sf.ehcache.CacheException: get() で例外がキャッチされていません - Java ヒープ領域」 ehcache を Terracotta と統合した場合。私のehcache.xmlは

<?xml version="1.0" encoding="UTF-8"?>

<ehcache name="terracotta" maxBytesLocalHeap="30%" >
  <diskStore path="java.io.tmpdir" />

 <terracottaConfig url="localhost:9510"/>
 <cacheManagerPeerListenerFactory
 class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"/>

<cache name="LocalCache"
        timeToLiveSeconds="10"
    maxElementsOnDisk="0"
        eternal="false" 
        memoryStoreEvictionPolicy="LFU" >
      <terracotta />           
</cache>


<cache name="cache1"
    timeToLiveSeconds="10"
    maxElementsOnDisk="0"
        eternal="false" 
        memoryStoreEvictionPolicy="LFU" >
      <terracotta />          
</cache>

<cache name="cache2"
    timeToLiveSeconds="10"
    maxElementsOnDisk="0"
        eternal="false" 
        memoryStoreEvictionPolicy="LFU" >
      <terracotta /> 
      </cache>

<cache name="cache3"
    timeToLiveSeconds="10"
    maxElementsOnDisk="0"
        eternal="false" 
        memoryStoreEvictionPolicy="LFU" >
            <terracotta />
</cache>

      <cache name="cache4"
    timeToLiveSeconds="10"
    maxElementsOnDisk="0"
        eternal="false" 
        memoryStoreEvictionPolicy="LFU" >
     <terracotta /> 
</cache>

 <cache name="cache5"
    timeToLiveSeconds="10"
    maxElementsOnDisk="0"
        eternal="false" 
        memoryStoreEvictionPolicy="LFU" >
      <terracotta />    
     </cache>

<cache name="cache6"
    timeToLiveSeconds="10"
    maxElementsOnDisk="0"
        eternal="false" 
        memoryStoreEvictionPolicy="LFU" >
      <terracotta /> 
</cache>

<cache name="cache7"
    timeToLiveSeconds="10"
    maxElementsOnDisk="0"
        eternal="false" 
        memoryStoreEvictionPolicy="LFU" >
     <terracotta /> 
</cache>

<cache name="cache8"
    timeToLiveSeconds="10"
    maxElementsOnDisk="0"
        eternal="false" 
        memoryStoreEvictionPolicy="LFU" >
    <terracotta /> 
</cache>

<cache name="cache9"
    timeToLiveSeconds="10"
    maxElementsOnDisk="0"
        eternal="false" 
        memoryStoreEvictionPolicy="LFU" >
    <terracotta /> 
</cache>

<cache name="cache10"
    timeToLiveSeconds="10"
    maxElementsOnDisk="0"
        eternal="false" 
        memoryStoreEvictionPolicy="LFU" >
      <terracotta /> 
</cache>

<cache name="DetailStockByKey"
    timeToLiveSeconds="10"
    maxElementsOnDisk="0"
        eternal="false" 
        memoryStoreEvictionPolicy="LFU" >
      <terracotta /> 
</cache>

<cache name="cache11"
    timeToLiveSeconds="10"
    maxElementsOnDisk="0"
        eternal="false" 
        memoryStoreEvictionPolicy="LFU" >
           <terracotta /> 
</cache>

<cache name="cache12"
    timeToLiveSeconds="10"
    maxElementsOnDisk="0"
        eternal="false" 
        memoryStoreEvictionPolicy="LFU" >
           <terracotta /> 
</cache>
<cache name="cache13"
    timeToLiveSeconds="10"
    maxElementsOnDisk="0"
        eternal="false" 
        memoryStoreEvictionPolicy="LFU" >
           <terracotta /> 
</cache>
<cache name="cache15"
    timeToLiveSeconds="10"
                eternal="false" 
        memoryStoreEvictionPolicy="LFU" >
           <!--<terracotta /> -->
</cache>

<cache name="cache14"
    timeToLiveSeconds="10"
                eternal="false" 
        memoryStoreEvictionPolicy="LFU" >
           <!--<terracotta /> -->
</cache>            
  </ehcache>

また、次のような警告が表示されます

警告: オブジェクト グラフのサイズを計算しようとしたときに、1,000 個のオブジェクト参照の構成された制限に達しました。サイジング操作を続行すると、パフォーマンスが大幅に低下する可能性があります。これは、CacheManger または Cache 要素の maxDepthExceededBehavior を「中止」に設定するか、@IgnoreSizeOf アノテーションを使用して停止ポイントを追加することで回避できます。構成された制限でパフォーマンスの低下が問題にならない場合は、CacheManager またはキャッシュ要素の maxDepth 属性を使用して制限値を上げます。詳細については、Ehcache 構成ドキュメントを参照してください。

そして、テラコッタを実行するために -Xmx:1024m を使用しています。私はこの問題に直面していません。また、スタンドアロンの ehcache.xml を実行すると、応答時間が短くなります。ただし、テラコッタで ehcache を使用すると、応答時間が 700 倍に増加しました。この問題の解決にご協力ください。応答時間が短縮され、このエラーが再び発生しないようにするにはどうすればよいですか。前もって感謝します

4

0 に答える 0