"bela" wrote : glad you found the STABLE protocol. You're also missing a failure 
detection protocol (FD for example), so try killing a member and see what happens, 
this might lead to problems.
Well, I am further along now, but things are still quirky.  Here is the latest 
configuration that I am using for TreeCache (IP addresses changed for security 
reasons):

<?xml version="1.0" encoding="UTF-8"?>
  | 
  | <!-- ===================================================================== -->
  | <!--                                                                       -->
  | <!--  Sample TreeCache Service Configuration                               -->
  | <!--                                                                       -->
  | <!-- ===================================================================== -->
  | 
  | <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
  |     -->
  |         <attribute 
name="TransactionManagerLookupClass">org.jboss.cache.JBossTransactionManagerLookup</attribute>
  | 
  |         <!--
  |             Isolation level : SERIALIZABLE
  |                               REPEATABLE_READ (default)
  |                               READ_COMMITTED
  |                               READ_UNCOMMITTED
  |                               NONE
  |         -->
  |         <attribute name="IsolationLevel">REPEATABLE_READ</attribute>
  | 
  |         <!--
  |              Valid modes are LOCAL, REPL_ASYNC and REPL_SYNC
  |         -->
  |         <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">TelematicsCache</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 start_port="7900" bind_addr="143.61.XXX.XXX"/> 
  |                 <TCPPING initial_hosts="143.61.YYY.ZZZ[7900]" port_range="1" 
timeout="3000" 
  |                          num_initial_members="1" up_thread="true" 
down_thread="true"/> 
  |                 <FD shun="true" up_thread="true" down_thread="true" timeout="2500" 
max_tries="5" />
  |                 <VERIFY_SUSPECT timeout="1500" up_thread="false" 
down_thread="false" /> 
  |                 <pbcast.NAKACK gc_lag="100" retransmit_timeout="3000" 
up_thread="true" down_thread="true" /> 
  |                 <pbcast.STABLE desired_avg_gossip="20000" up_thread="false" 
down_thread="false" /> 
  |                 <pbcast.GMS join_timeout="5000" join_retry_timeout="2000" 
shun="false" print_local_addr="false" down_thread="true" up_thread="true" />
  |                 <pbcast.STATE_TRANSFER up_thread="true" down_thread="true"/>
  |             </config>
  |         </attribute>
  | 
  |         <!--
  |              Max number of entries in the cache. If this is exceeded, the
  |              eviction policy will kick some entries out in order to make
  |              more room
  |         -->
  |         <attribute name="MaxCapacity">20000</attribute>
  | 
  |         <!--
  |         Whether or not to fetch state on joining a cluster
  |        -->
  |         <attribute name="FetchStateOnStartup">true</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">15000</attribute>
  | 
  |         <!--
  |             Number of milliseconds to wait until all responses for a
  |             synchronous call have been received.
  |         -->
  |         <attribute name="SyncReplTimeout">10000</attribute>
  | 
  |         <!-- Max number of milliseconds to wait for a lock acquisition -->
  |         <attribute name="LockAcquisitionTimeout">15000</attribute>
  | 
  |         <!-- Max number of milliseconds we hold a lock (not currently
  |         implemented) -->
  |         <attribute name="LockLeaseTimeout">60000</attribute>
  | 
  |         <!-- Name of the eviction policy class. Not supported now. -->
  |         <attribute name="EvictionPolicyClass"></attribute>
  |     </mbean>
  | 
  | 
  | </server>

I have two servers that are clustered:  one Win2K server with Java 1.4.1 and one HP/UX 
server with Java 1.3.1.  Both are running JBoss 3.2.2.

Here's the sequence of events that works as expected:

1)  Start Win2K JBoss instance.  TreeCache is initialized with data from this 
instance.  Wait until it is completely started.
2)  Start HP/UX JBoss instance.    TreeCache state is transferred successfully to this 
node and additional data is added from this node.  Both nodes have synchronized cache 
information.
3)  Stop HP/UX JBoss instance.  TreeCache is updated to reflect the loss of this node.
4)  Start HP/UX JBoss instance again.  TreeCache state is successfully transferred 
(again) and the cache is updated to reflect the reappearance of this node.

Now, time for quirkiness to occur -- new sequence of events:

1)  Start Win2K JBoss instance.  TreeCache is initialized with data from this 
instance.  Wait until it is completely started.
2)  Start HP/UX JBoss instance.    TreeCache state is transferred successfully to this 
node and additional data is added from this node.  Both nodes have synchronized cache 
information.
3)  Stop Win2K JBoss instance.  TreeCache is updated to reflect loss of this node.
4)  Start Win2K JBoss instance again.  TreeCache state appears to be transferred 
successfully, BUT the updates applied to the cache by the Win2K node are not 
distributed to the cache instance on the HP/UX node.  Looking in the log, I see the 
following message repeated for each update that should have been replicated:

[ERROR] RpcDispatcher.handle(): exception=java.lang.ClassNotFoundException: No 
ClassLoaders found for:  boolean

Any ideas as to what's going on here?  Why would it work in one direction and not the 
other?

"bela" wrote : Wrt docs, I'm working on it, but because I'm also working on several 
other projects, this thread gets a bit starved... :-)
  | Bela
I know the feeling... :-)  I've got about 5 projects that are going concurrently, plus 
a baby on the way at home (which adds a whole lot of home projects!)  If I can get 
this cache to work as I expect, it will really help take the pressure off of this 
project, so I can focus on the others.

<a 
href="http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3824964#3824964";>View 
the original post</a>

<a 
href="http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3824964>Reply 
to the post</a>


-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
JBoss-Development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to