[
https://issues.apache.org/jira/browse/JCS-52?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aaron Smuts closed JCS-52.
--------------------------
Resolution: Invalid
This isn't a bug. There isn't enough information in the report to think that
the problem is with JCS and not your application or your server configuration.
What were your tomcat heap size settings? How many objects are you putting in
the cache? How big are the objects? Perhaps you simply exceeded the JVM heap
size because you configured it too low. Just because you used the disk cache
doesn't mean that the remote server doesn't have to process the data and that
the disk cache doesn't have the objects in memory before it can write them to
disk. There is not enough info int he report. This kind of thing is better
sent to the mailing list.
> 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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]