I have two machines (FIRST_BOX and SECOND_BOX)running applications using 
hibernate 3.2.2 to talk to an oracle 10g database, using JBossCache 1.4.1SP3 as 
the secondary level cache.

FIRST_BOX is always started first.

My treecache.xml file looks like this:

<server>
  | 
  |     <classpath codebase="./lib" archives="jboss-cache.jar, jgroups.jar"/>
  | 
  | 
  |     <!-- 
==================================================================== -->
  |     <!-- Defines TreeCache configuration                                    
  -->
  |     <!-- 
==================================================================== -->
  | 
  |     <mbean code="org.jboss.cache.TreeCache"
  |            name="jboss.cache:service=TreeCache">
  | 
  |         <depends>jboss:service=Naming</depends>
  |         <depends>jboss:service=TransactionManager</depends>
  | 
  |         <!--
  |             Configure the TransactionManager : no matter since Hibernate 
will plug in
  |             an "adapter" to its own TransactionManagerLookup strategy here
  |         -->
  |         <attribute 
name="TransactionManagerLookupClass">org.jboss.cache.GenericTransactionManagerLookup</attribute>
  | 
  | 
  |         <!--
  |             Node locking scheme:
  |                 OPTIMISTIC
  |                 PESSIMISTIC (default)
  |         -->
  |         <attribute name="NodeLockingScheme">OPTIMISTIC</attribute>
  | 
  |         <!--
  |             Note that this attribute is IGNORED if your NodeLockingScheme 
above is OPTIMISTIC.
  | 
  |             Isolation level : SERIALIZABLE
  |                               REPEATABLE_READ (default)
  |                               READ_COMMITTED
  |                               READ_UNCOMMITTED
  |                               NONE
  |         -->
  |         <attribute name="IsolationLevel">REPEATABLE_READ</attribute>
  | 
  |         <!--
  |              Valid modes are LOCAL
  |                              REPL_ASYNC
  |                              REPL_SYNC
  |                              INVALIDATION_ASYNC
  |                              INVALIDATION_SYNC
  | 
  |              INVALIDATION_ASYNC is highly recommended as the mode for use
  |              with clustered second-level caches.
  |         -->
  |         <attribute name="CacheMode">REPL_ASYNC</attribute>
  | 
  |         <!--
  |         Just used for async repl: use a replication queue
  |         -->
  |         <attribute name="UseReplQueue">false</attribute>
  | 
  |         <!--
  |             Replication interval for replication queue (in ms)
  |         -->
  |         <attribute name="ReplQueueInterval">0</attribute>
  | 
  |         <!--
  |             Max number of elements which trigger replication
  |         -->
  |         <attribute name="ReplQueueMaxElements">0</attribute>
  | 
  |         <!-- Name of cluster. Needs to be the same for all clusters, in 
order
  |              to find each other
  |         -->
  |         <attribute name="ClusterName">TreeCache-Cluster</attribute>
  | 
  |         <!-- JGroups protocol stack properties. Can also be a URL,
  |              e.g. file:/home/bela/default.xml
  |            <attribute name="ClusterProperties"></attribute>
  |         -->
  | 
  |         <attribute name="ClusterConfig">
  |             <config>
  | <TCP bind_addr="FIRST_BOX" start_port="6800" loopback="true"/>
  |                 <TCPPING initial_hosts="FIRST_BOX[6800]"
  |                          port_range="5"
  |                          timeout="3500"
  |                          num_initial_members="3"
  |                          up_thread="true"
  |                          down_thread="true"/>
  |                 <MERGE2 min_interval="5000" max_interval="10000"/>
  |                 <FD shun="true" timeout="2500" max_tries="5" 
up_thread="true" down_thread="true"/>
  |                 <VERIFY_SUSPECT timeout="1500" down_thread="false" 
up_thread="false"/>
  |                 <pbcast.NAKACK down_thread="true" up_thread="true" 
gc_lag="100" retransmit_timeout="3000"/>
  |                 <pbcast.STABLE desired_avg_gossip="20000" 
down_thread="false" up_thread="false"/>
  |                 <pbcast.GMS join_timeout="5000"
  |                             join_retry_timeout="2000"
  |                             shun="false"
  |                             print_local_addr="false"
  |                             down_thread="true"
  |                             up_thread="true"/>
  |             </config>
  | 
  |         </attribute>
  | 
  |         <!--
  |          Whether or not to fetch state on joining a cluster
  |          NOTE this used to be called FetchStateOnStartup and has been 
renamed to be more descriptive.
  |         -->
  |         <attribute name="FetchInMemoryState">false</attribute>
  | 
  |         <!--
  |             Number of milliseconds to wait until all responses for a
  |             synchronous call have been received.
  |         -->
  |         <attribute name="SyncReplTimeout">20000</attribute>
  | 
  |         <!-- Max number of milliseconds to wait for a lock acquisition -->
  |         <attribute name="LockAcquisitionTimeout">15000</attribute>
  | 
  | 
  |         <!--
  |               The max amount of time (in milliseconds) we wait until the
  |               initial state (ie. the contents of the cache) are retrieved 
from
  |               existing members in a clustered environment
  |           -->
  | 
  |         <attribute name="InitialStateRetrievalTimeout">20000</attribute>
  | 
  |         <!--
  |            Indicate whether to use marshalling or not. Set this to true if 
you are running under a scoped
  |            class loader, e.g., inside an application server. Default is 
"false".
  |         -->
  |         <attribute name="UseMarshalling">false</attribute>
  | 
  |     </mbean>
  | </server>

FIRST_BOX starts up fine, sets up the cache without errors etc. When SECOND_BOX 
starts up, it throws an exception stating that it cannot create a 
TreeCache-Cluster, because the cluster already exists:

  |  [java] main 09:54:15,934 ERROR TreeCache:283 - Starting failed 
jboss.cache:service=TreeCache-Cluster
  |      [java] javax.management.InstanceAlreadyExistsException: 
jboss.cache:service=TreeCache-Cluster
  |      [java]     at 
com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:453)
  |      [java]     at 
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.internal_addObject(DefaultMBeanServerIntercepto
  | r.java:1484)
  |      [java]     at 
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerIntercep
  | tor.java:963)
  |      [java]     at 
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.ja
  | va:917)
  |      [java]     at 
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.jav
  | a:312)
  |      [java]     at 
com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:482)
  |      [java]     at 
org.jboss.cache.util.MBeanConfigurator.registerInterceptors(MBeanConfigurator.java:67)
  |      [java]     at 
org.jboss.cache.TreeCache._createService(TreeCache.java:1241)
  |      [java]     at 
org.jboss.cache.TreeCache.startService(TreeCache.java:1306)
  |      [java]     at 
org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:271)
  |      [java]     at 
org.jboss.system.ServiceMBeanSupport.start(ServiceMBeanSupport.java:172)
  |      [java]     at 
org.hibernate.cache.OptimisticTreeCacheProvider.start(OptimisticTreeCacheProvider.java:94)
  |      [java]     at 
org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:183)
  |      [java]     at 
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
  |      [java]     at 
com.qxlva.mm.dispensing.loadtest.client.PreloadKeystoresTask.<clinit>(PreloadKeystoresTask.java:54)
  |      [java]     at 
com.qxlva.mm.dispensing.loadtest.client.PharmacyClient.preloadKeyStores(PharmacyClient.java:168)
  |      [java]     at 
com.qxlva.mm.dispensing.loadtest.client.PharmacyClient.main(PharmacyClient.java:87)
  |      [java] Exception in thread "main" java.lang.ExceptionInInitializerError
  |      [java]     at 
com.qxlva.mm.dispensing.loadtest.client.PreloadKeystoresTask.<clinit>(PreloadKeystoresTask.java:59)
  |      [java]     at 
com.qxlva.mm.dispensing.loadtest.client.PharmacyClient.preloadKeyStores(PharmacyClient.java:168)
  |      [java]     at 
com.qxlva.mm.dispensing.loadtest.client.PharmacyClient.main(PharmacyClient.java:87)
  |      [java] Caused by: org.hibernate.cache.CacheException: 
javax.management.InstanceAlreadyExistsException: jboss.cache:
  | service=TreeCache-Cluster
  |      [java]     at 
org.hibernate.cache.OptimisticTreeCacheProvider.start(OptimisticTreeCacheProvider.java:97)
  |      [java]     at 
org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:183)
  |      [java]     at 
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
  |      [java]     at 
com.qxlva.mm.dispensing.loadtest.client.PreloadKeystoresTask.<clinit>(PreloadKeystoresTask.java:54)
  |      [java]     ... 2 more
  |      [java] Caused by: javax.management.InstanceAlreadyExistsException: 
jboss.cache:service=TreeCache-Cluster
  |      [java]     at 
com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:453)
  |      [java]     at 
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.internal_addObject(DefaultMBeanServerIntercepto
  | r.java:1484)
  |      [java] main 09:54:15,934 FATAL PreloadKeystoresTask:58 - Error 
creating dedicated session factory
  |      [java] org.hibernate.cache.CacheException: 
javax.management.InstanceAlreadyExistsException: jboss.cache:service=Tre
  | eCache-Cluster
  | 

If I comment out the name of the ClusterName on the second box, the first box 
starts rejecting messages when the second box starts up, saying that the 
messages are from a different group "TreeCache-Group". I was under the 
impression from the comments in the treecache.xml that the ClusterName had to 
be the same in each node for them to find each other.

Can you please tell me where I've gone wrong?

Cheers,

Ben



View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4040873#4040873

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4040873
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to