Hibernate version:3.3.0.CR1
JBossCache version:2.1.1.CR2
Under heavy load, several of the objects in my application reach the capacity threshold for JBossCache which generates the following warning and locks up the calls to select them.
eviction node event queue size is at 98% threshold value of capacity: 200000 Region: /org/somepath/MyClass/ENTITY You will need to reduce the wakeUpIntervalSeconds parameter.
I already have the wakeUpIntervalSeconds set to the minimum value of 1. I've tried increasing the eventQueueSize attribute but it is not being passed through to JBossCache. This seems to be a disconnect between the Hibernate initialization that passes the configurations on the JBossCache. Here is my EvictionPolicyConfig.
Code:
<attribute name="EvictionPolicyConfig">
<config>
<attribute name="wakeUpIntervalSeconds">1</attribute>
<attribute name="policyClass">org.jboss.cache.eviction.LRUPolicy</attribute>
<region name="/_default_" eventQueueSize="500000">
<attribute name="maxNodes">50000</attribute>
<attribute name="timeToLiveSeconds">3600</attribute>
<attribute name="maxAgeSeconds">3600</attribute>
<attribute name="minTimeToLiveSeconds">120</attribute>
</region>
<region name="/TS" policyClass="org.jboss.cache.eviction.NullEvictionPolicy"/>
</config>
</attribute>
All attributes appear to be flowing through other than the eventQueueSize although I have not found a way to confirm that wakeUpIntervalSeconds is being passed through correctly. Note that I've tried the attribute both inline as a sub attribute of the region and as an attribute at the config level. Here is how I'm checking the value on the eventQueueSize.
jbcRegion.getEvictionRegionConfig().getEventQueueSize();
Even though I configure it for 500000, it still is set to 200000. I can programatically adjust it but this feels like a hack since the XML configuration should take care of this. Is this a bug in Hibernate 3.3.0.CR1?