0 Replies Latest reply on Jul 27, 2011 6:09 AM by valerio de minico

    Clustered JBoss Cache and JDBCCacheLoader

    valerio de minico Newbie

      Hi all,

      I'm clustering an app which uses a jboss cache to cache data. For JBoss Cache I use a JDBCCacheLoader and mysql as DBMS. My question is how clusterize this scenario??? I should have a shared mysql instance or an instance on all machines????? I use JBoss Cache 3.1.0.GA (bundled in JBoss AS 5.1.0.GA).


      Here my *-service.xml file:



      <mbean code="org.jboss.cache.pojo.jmx.PojoCacheJmxWrapper" 
            <!-- Configure the TransactionManager (test only!)-->
            <attribute name="TransactionManagerLookupClass">
            <!-- Isolation level : SERIALIZABLE
                                   REPEATABLE_READ (default)
            <attribute name="IsolationLevel">REPEATABLE_READ</attribute>
            <!-- Valid modes are LOCAL, REPL_ASYNC and REPL_SYNC -->
            <attribute name="CacheMode">REPL_SYNC</attribute>
            <!-- Name of cluster. Needs to be the same for all caches, 
                 in order for them to find each other
            <attribute name="ClusterName">PojoCacheCluster</attribute>
                     <!-- JGroups protocol stack properties. -->
            <attribute name="ClusterConfig">
                  <!-- UDP: if you have a multihomed machine, set the bind_addr 
                       attribute to the appropriate NIC IP address -->
                  <!-- UDP: On Windows machines, because of the media sense feature
                       being broken with multicast (even after disabling media sense)
                       set the loopback attribute to true -->
                  <UDP mcast_addr="" mcast_port="48866"
                       ip_ttl="64" ip_mcast="true"
                       mcast_send_buf_size="150000" mcast_recv_buf_size="80000"
                       ucast_send_buf_size="150000" ucast_recv_buf_size="80000"
                  <PING timeout="2000" num_initial_members="3"/>
                  <MERGE2 min_interval="10000" max_interval="20000"/>
                  <FD shun="true"/>
                  <VERIFY_SUSPECT timeout="1500"/>
                  <pbcast.NAKACK gc_lag="50" retransmit_timeout="600,1200,2400,4800"
                  <UNICAST timeout="600,1200,2400,4800"/>
                  <pbcast.STABLE desired_avg_gossip="400000"/>
                  <FC max_credits="2000000" min_threshold="0.10"/>
                  <FRAG2 frag_size="8192"/>
                  <pbcast.GMS join_timeout="5000" join_retry_timeout="2000"
                              shun="true" print_local_addr="true"/>
      <attribute name="EvictionPolicyConfig">
            <attribute name="wakeUpIntervalSeconds">5</attribute>
            <attribute name="policyClass">org.jboss.cache.eviction.LRUPolicy</attribute>
            <!-- Cache wide default -->
            <region name="/profile">
                <attribute name="maxNodes">5000</attribute>
                <attribute name="timeToLiveSeconds">3</attribute>
            <!-- CacheLoaderConfiguration -->
      <attribute name="CacheLoaderConfig">
            <!-- we can now have multiple cache loaders, which get chained -->
               <!-- whether the cache loader writes are asynchronous -->
               <!-- only one cache loader in the chain may set fetchPersistentState to true.
                    An exception is thrown if more than one cache loader sets this to true. -->
               <!-- determines whether this cache loader ignores writes - defaults to false. -->
            <!-- Whether or not to fetch state on joining a cluster -->
            <attribute name="FetchInMemoryState">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">15000</attribute>
            <!--  Max number of milliseconds to wait for a lock acquisition -->
            <attribute name="LockAcquisitionTimeout">10000</attribute>