[jboss-user] [JBossCache] - Exception when a cluster node joins under load
ne_vasya
do-not-reply at jboss.com
Mon Jan 14 06:17:55 EST 2008
Hi,
I have cache configured with INVALIDATION_SYNC policy and get the following error when a 2nd cluster node starts up under load:
| java.lang.IllegalStateException: Cache not in STARTED state!
| at org.jboss.cache.CacheImpl.invokeMethod(CacheImpl.java:3929)
| at org.jboss.cache.CacheImpl._replicate(CacheImpl.java:2853)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jgroups.blocks.MethodCall.invoke(MethodCall.java:330)
| at org.jboss.cache.marshall.InactiveRegionAwareRpcDispatcher.handle(InactiveRegionAwareRpcDispatcher.java:77)
| at org.jgroups.blocks.RequestCorrelator.handleRequest(RequestCorrelator.java:624)
| at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:533)
| at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:365)
| at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:744)
| at org.jgroups.JChannel.up(JChannel.java:1148)
| at org.jgroups.mux.Multiplexer$Task.run(Multiplexer.java:1041)
| at org.jgroups.mux.Multiplexer$ExecuteTask.run(Multiplexer.java:1065)
| at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
| at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
| at java.lang.Thread.run(Thread.java:595)
|
Any help is appreciated.
Here is my cache configuration just in case:
| <server>
| <mbean code="org.jboss.cache.jmx.CacheJmxWrapper"
| name="jboss.cache:service=testTreeCache">
|
| <!--
| The JMX object name of the service that defines the JGroups multiplexer.
| In JBoss AS 5.0 this service is normally defined in the jgroups-multiplexer.sar.
| This XML attribute can only be handled by the JBoss AS MBean deployment
| services; if it is included in a file passed to a CacheFactory the factory's
| creation of the cache will fail. Inside JBoss AS, the attribute should be
| specified using the "depends optional-attribute-name" syntax shown below.
| Inside the AS if this attribute is defined, an instance of
| org.jgroups.jmx.JChannelFactoryMBean will be injected into the
| CacheJmxWrapper which will use it to obtain a multiplexed JGroups channel.
| The configuration of the channel will be that associated with MultiplexerStack.
| The ClusterConfig attribute will be ignored.
| -->
| <!--
| <depends optional-attribute-name="MultiplexerService"
| proxy-type="attribute">org.gridgain:name=GridJgroupsChannelFactory</depends>
| -->
|
| <!--
| Following attributes specify using of multiplexer and protocols stack name.
| -->
| <attribute name="MultiplexerStack">grid.jgroups.stack</attribute>
| <attribute name="UsingMultiplexer">true</attribute>
|
| <!--
| Node locking isolation level : SERIALIZABLE, REPEATABLE_READ (default),
| READ_COMMITTED, READ_UNCOMMITTED, and NONE. Note that this is ignored
| if NodeLockingScheme is OPTIMISTIC. Case doesn't matter.
| See documentation on Transactions and Concurrency for more details.
| -->
| <attribute name="IsolationLevel">READ_COMMITTED</attribute>
|
| <!-- Indicates whether state should be fetched on startup. -->
| <attribute name="FetchInMemoryState">false</attribute>
|
| <!--
| This replication mode is cheapest with data affinity.
| -->.
| <attribute name="CacheMode">INVALIDATION_SYNC</attribute>
|
| <!--
| Name of cluster. Needs to be the same for all nodes in a cluster in order
| for them to communicate with each other.
| -->
| <attribute name="ClusterName">JBossCache-Cluster</attribute>
|
| <!--
| Time in milliseconds to wait for state retrieval. This should be longer than
| LockAcquisitionTimeout as the node providing state may need to wait that
| long to acquire necessary read locks on the cache. This property is dynamic.
| -->
| <attribute name="StateRetrievalTimeout">20000</attribute>
|
| <!--
| For synchronous replication: time in milliseconds to wait until replication
| acks have been received from all nodes in the cluster. It is usually best
| that this is greater than LockAcquisitionTimeout . This property is dynamic.
| -->
| <attribute name="SyncReplTimeout">15000</attribute>
|
| <!--
| Time in milliseconds to wait for a lock to be acquired. If a lock cannot be
| acquired an exception will be thrown. This property is dynamic.
| -->
| <attribute name="LockAcquisitionTimeout">15000</attribute>
|
| <!--
| Specific eviction policy configurations. This is LRU.
| -->
| <attribute name="EvictionPolicyConfig">
| <config>
| <attribute name="wakeUpIntervalSeconds">5</attribute>
|
| <!-- This defaults to 200000 if not specified -->
| <attribute name="eventQueueSize">200000</attribute>
|
| <!-- Name of the DEFAULT eviction policy class. -->
| <attribute name="policyClass">org.jboss.cache.eviction.LRUPolicy</attribute>
|
| <!-- Cache wide default -->
| <region name="/_default_">
| <attribute name="maxNodes">1000000</attribute>
|
| <!-- No limit. -->
| <attribute name="timeToLiveSeconds">0</attribute>
| </region>
|
| <region name="/novus/data">
| <attribute name="maxNodes">1000000</attribute>
|
| <!-- No limit. -->
| <attribute name="timeToLiveSeconds">0</attribute>
| </region>
| </config>
| </attribute>
|
| <attribute name="CacheLoaderConfig">
| <config>
| <!-- If passivation is true, only the first cache loader is used; the rest are ignored. -->
| <passivation>false</passivation>
|
| <!-- No preloading. -->
| <preload/>
|
| <!-- Are the cache loaders shared in a cluster? -->
| <shared>false</shared>
|
| <cacheloader>
| <class>com.novus.server.NovusCacheLoader</class>
|
| <!-- Properties to pass in to the cache loader. -->
| <properties/>
|
| <!-- Whether the cache loader writes are asynchronous. -->
| <async>false</async>
|
| <!-- There is no persistent state for this cacheloader. -->
| <fetchPersistentState>false</fetchPersistentState>
|
| <!-- Determines whether this cache loader ignores writes - defaults to false. -->
| <ignoreModifications>false</ignoreModifications>
|
| <!-- If set to true, purges the contents of this cache loader when the cache starts up. -->
| <purgeOnStartup>false</purgeOnStartup>
|
| <!--
| Defines the cache loader as a singleton store where only the coordinator of the
| cluster will store modifications.
| -->
| <singletonStore>
| <!-- If true, singleton store functionality is enabled, defaults to false. -->
| <enabled>false</enabled>
|
| <!--
| Implementation class for singleton store functionality which must extend
| org.jboss.cache.loader.AbstractDelegatingCacheLoader. Default implementation
| is org.jboss.cache.loader.SingletonStoreCacheLoader.
| -->
| <class>org.jboss.cache.loader.SingletonStoreCacheLoader</class>
|
| <!--
| Properties and default values for the default singleton store functionality
| implementation.
| -->
| <properties>
| pushStateWhenCoordinator=true
| pushStateWhenCoordinatorTimeout=20000
| </properties>
| </singletonStore>
| </cacheloader>
| </config>
| </attribute>
| </mbean>
| </server>
|
Thanks in advance.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4119569#4119569
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4119569
More information about the jboss-user
mailing list