You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jcs-dev@jakarta.apache.org by "Manfred Quasten (JIRA)" <ji...@apache.org> on 2008/09/15 12:37:44 UTC

[jira] Updated: (JCS-52) remote diskcache, out of memory and lost objects using remoting

     [ https://issues.apache.org/jira/browse/JCS-52?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Manfred Quasten updated JCS-52:
-------------------------------


It is really a simple question. I need a (working) config file for server side and client side for a remote diskcache. Both client and server  must work 
with the default heap size 64 M. The keys will be  << 64 M. The objects will be  >> than 64 M. 

is there is an other way to find a configuration anywhere or is it only possible to do it by trial and error ? 

> remote diskcache, out of memory and lost objects using remoting 
> ----------------------------------------------------------------
>
>                 Key: JCS-52
>                 URL: https://issues.apache.org/jira/browse/JCS-52
>             Project: JCS
>          Issue Type: Question
>          Components: RMI Remote Cache
>    Affects Versions: jcs-1.3
>         Environment: java6, xp, tomcat6 
>            Reporter: Manfred Quasten
>            Assignee: Aaron Smuts
>            Priority: Blocker
>             Fix For: jcs-1.3
>
>
> I try to put  and get  objects from a remote cache, that is running on Tomcat.  I use index_disk_cache on the server.  The communication between client and server works. In case of large objects or a large number of objects I get a java.lang.OutOfMemoryError 
> Exception in thread "CacheEventQueue.QProcessor-myRegion1" java.lang.OutOfMemoryError: Java heap space
> 	at sun.reflect.ByteVectorImpl.trim(ByteVectorImpl.java:52)
> 	at sun.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:370)
> 	at sun.reflect.MethodAccessorGenerator.generateSerializationConstructor(MethodAccessorGenerator.java:95)
> 	at sun.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:313)
> 	at java.io.ObjectStreamClass.getSerializableConstructor(ObjectStreamClass.java:1327)
> 	at java.io.ObjectStreamClass.access$1500(ObjectStreamClass.java:52)
> 	at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:437)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:413)
> 	at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:310)
> 	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1106)
> 	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
> 	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
> 	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> 	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> 	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> 	at sun.rmi.server.UnicastRef.marshalValue(UnicastRef.java:274)
> 	at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:133)
> 	at org.apache.jcs.auxiliary.remote.server.RemoteCacheServer_Stub.update(Unknown Source)
> 	at org.apache.jcs.auxiliary.remote.RemoteCache.update(RemoteCache.java:210)
> 	at org.apache.jcs.engine.CacheAdaptor.handlePut(CacheAdaptor.java:91)
> 	at org.apache.jcs.engine.CacheEventQueue$PutEvent.doRun(CacheEventQueue.java:688)
> 	at org.apache.jcs.engine.CacheEventQueue$AbstractCacheEvent.run(CacheEventQueue.java:607)
> 	at org.apache.jcs.engine.CacheEventQueue$QProcessor.run(CacheEventQueue.java:575)
> My configurations are: 
> 1) client:
> jcs.auxiliary.RFailover=org.apache.jcs.auxiliary.remote.RemoteCacheFactory
> jcs.auxiliary.RFailover.attributes=org.apache.jcs.auxiliary.remote.RemoteCacheAttributes
> jcs.auxiliary.RFailover.attributes.FailoverServers=pchl:1102
> jcs.auxiliary.RC.attributes.RemoveUponRemotePut=true
> jcs.auxiliary.RFailover.attributes.GetOnly=false
> jcs.auxiliary.RFailover.attributes.MaxObjects=100
> jcs.region.myRegion1=RFailover
> #jcs.region.myRegion1=RFailover
> #jcs.region.myRegion1.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
> #jcs.region.myRegion1.cacheattributes.MaxObjects=100
> #jcs.region.myRegion1.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache
> Server:
> # Remote RMI Cache set up to failover
> jcs.auxiliary.RFailover=org.apache.jcs.auxiliary.remote.RemoteCacheFactory
> jcs.auxiliary.RFailover.attributes=org.apache.jcs.auxiliary.remote.RemoteCacheAttributes
> jcs.auxiliary.RC.attributes.RemoveUponRemotePut=true
> jcs.auxiliary.RFailover.attributes.GetOnly=false
> # this didn't help, the memory error occurs with and without
> #jcs.region.testCache1=DC,RFailover
> #jcs.region.testCache1.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
> #jcs.region.testCache1.cacheattributes.MaxObjects=1000
> #jcs.region.testCache1.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache
> # Registry used to register and provide the
> # IRemoteCacheService service.
> registry.host=localhost
> registry.port=1102
> # call back port to local caches.
> remote.cache.service.port=1102
> # cluster setting
> remote.cluster.LocalClusterConsistency=true
> remote.cluster.AllowClusterGet=true
> ##############################################################
> ##### Default Region Configuration
> jcs.default=DC
> jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
> jcs.default.cacheattributes.MaxObjects=100
> jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache
> jcs.default.cacheattributes.UseMemoryShrinker=false
> jcs.default.cacheattributes.ShrinkerIntervalSeconds=60
> ##############################################################
> ##### CACHE REGIONS
> jcs.region.myRegion1=DC
> jcs.region.myRegion1.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
> jcs.region.myRegion1.cacheattributes.MaxObjects=-1
> jcs.region.myRegion1.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache
> #jcs.region.myRegion1.cacheattributes.DiskUsagePattern=SWAP
> ##############################################################
> ##### AUXILIARY CACHES
> # Indexed Disk Cache
> jcs.auxiliary.DC=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory
> jcs.auxiliary.DC.attributes=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes
> ###jcs.auxiliary.DC.attributes.DiskPath=O:\\liantis/JCS/dump
> jcs.auxiliary.DC.attributes.DiskPath=dump
> jcs.auxiliary.DC.attributes.MaxPurgatorySize=100
> jcs.auxiliary.DC.attributes.MaxKeySize=-1
> jcs.auxiliary.DC.attributes.OptimizeAtRemoveCount=300000
> jcs.auxiliary.DC.attributes.OptimizeOnShutdown=true
> jcs.auxiliary.DC.attributes.MaxRecycleBinSize=7500
> jcs.auxiliary.DC.attributes.EventQueueType=POOLED
> jcs.auxiliary.DC.attributes.EventQueuePoolName=disk_cache_event_queue
> # Disk Cache pool
> thread_pool.disk_cache_event_queue.boundarySize=50
> thread_pool.disk_cache_event_queue.useBoundary=true
> thread_pool.disk_cache_event_queue.maximumPoolSize=15
> thread_pool.disk_cache_event_queue.minimumPoolSize=1
> thread_pool.disk_cache_event_queue.keepAliveTime=3500
> thread_pool.disk_cache_event_queue.startUpSize=1
> pchl is the server on that Tomcat is running. 
> In case of smal objects I have the problem, that I will  lose  objects again. I've configured the queue and the threadpool at the server,  but it seams, that there is something too, that I've forgotten... 
> I'll work with a absolute minimum on java heapsize,  that is the reson to use a cache in our case.
> The problems will occur with and without the outcommented lines in the clientconfiguration 
> The reason for the questions during the last days are , that we evaluate caching architectures and performance using jcs ...

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: jcs-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jcs-dev-help@jakarta.apache.org