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
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to