[jboss-user] [JBoss Cache Users] - Cache configuration question

mramos do-not-reply at jboss.com
Tue Oct 27 14:18:51 EDT 2009


Hi.

I'm currently migrating our JBoss Cluster from  4.2.3 to 5.1.0. We already have almost everything working, just a small piece is missing: Pojo Cache.
We make heavy use of this feature, so all/any help on this is much appreciated!

My configuration in JBossAS 4.2.3 is:

cat jboss423/server/all/deploy/pojocache-service.xml:

  | <?xml version="1.0" encoding="UTF-8" ?>                                              
  | <server>
  |         <classpath codebase="./lib" archives="jboss-cache.jar, jgroups.jar"/>
  | 
  |    <mbean code="org.jboss.cache.aop.PojoCache" 
  |           name="jboss.cache:service=PojoCache">
  | 
  |           <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>      
  | 
  |       <!-- Name of cluster. Needs to be the same for all caches, in order for them to find each other  -->
  | 
  |       <attribute name="ClusterName">${jboss.partition.name:DefaultPartition}-PojoCacheCluster</attribute>
  | 
  |       <!-- JGroups protocol stack properties. -->
  |       <attribute name="ClusterConfig">           
  |          <config>                                
  |             <!-- 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="${jboss.partition.udpGroup:228.1.2.3}" 
  |                mcast_port="${jboss.ejb3sfsbpartition.mcast_port:48866}"
  |                ip_mcast="true"                                         
  |                tos="8"                                                 
  |                ucast_recv_buf_size="20000000"                          
  |                ucast_send_buf_size="640000"                            
  |                mcast_recv_buf_size="25000000"                          
  |                mcast_send_buf_size="640000"                            
  |                loopback="false"                                        
  |                discard_incompatible_packets="true"                     
  |                max_bundle_size="64000"                                 
  |                max_bundle_timeout="30"                                 
  |                use_incoming_packet_handler="true"                      
  |                ip_ttl="${jgroups.udp.ip_ttl:2}"                        
  |                enable_bundling="true"                                  
  |                enable_diagnostics="true"                               
  |                thread_naming_pattern="cl"                              
  |                                                                        
  |                use_concurrent_stack="true"                             
  |                                                                        
  |                thread_pool.enabled="true"                              
  |                thread_pool.min_threads="2"                             
  |                thread_pool.max_threads="8"                             
  |                thread_pool.keep_alive_time="5000"                      
  |                thread_pool.queue_enabled="true"                        
  |                thread_pool.queue_max_size="1000"                       
  |                thread_pool.rejection_policy="discard"                  
  |                                                                        
  |                oob_thread_pool.enabled="true"                          
  |                oob_thread_pool.min_threads="1"                         
  |                oob_thread_pool.max_threads="8"                         
  |                oob_thread_pool.keep_alive_time="5000"                  
  |                oob_thread_pool.queue_enabled="false"                   
  |                oob_thread_pool.queue_max_size="100"                    
  |                oob_thread_pool.rejection_policy="Run"/>                
  |                                                                        
  | 
  |             <PING timeout="2000" 
  |                   num_initial_members="2"/>
  |             <MERGE2 min_interval="10000"   
  |                     max_interval="20000"/> 
  |             <FD_SOCK/>                     
  |             <FD timeout="10000" max_tries="5"   shun="true"/>
  |             <VERIFY_SUSPECT timeout="1500"/>
  |             <pbcast.NAKACK use_stats_for_retransmission="false"
  |                            exponential_backoff="150"
  |                            use_mcast_xmit="true" gc_lag="0"
  |                            retransmit_timeout="50,300,600,1200"
  |                            discard_delivered_msgs="true"/>
  |             <UNICAST timeout="300,600,1200"/>
  |             <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000"
  |                            max_bytes="1000000"/>
  |             <VIEW_SYNC avg_send_interval="60000"   />
  |             <FC max_credits="500000"
  |                 min_threshold="0.20"/>
  |             <FRAG2 frag_size="60000"  />
  |             <pbcast.GMS join_timeout="5000" join_retry_timeout="2000"
  |                         shun="true" print_local_addr="true"/>
  |             <pbcast.STATE_TRANSFER/>
  |          </config>
  |       </attribute>
  | 
  |       <!-- Whether or not to fetch state on joining a cluster -->
  |       <attribute name="FetchInMemoryState">false</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>
  | 
  |           <!--  Specific eviction policy configurations. This is LRU -->
  |           <attribute name="EvictionPolicyConfig">
  |               <config>
  |                 <attribute name="wakeUpIntervalSeconds">5</attribute>
  |                         <attribute  name="policyClass">org.jboss.cache.eviction.LRUPolicy</attribute>
  |                 <!--  Cache wide default -->
  |                 <region name="/_default_" policyClass="org.jboss.cache.eviction.LRUPolicy">
  |                  <attribute name="maxNodes">0</attribute>
  |                  <attribute name="timeToLiveSeconds">86400</attribute>
  |                </region>
  |               </config>
  |           </attribute>
  | 
  |           <attribute name="CacheLoaderConfiguration">
  |            <config>
  |               <passivation>true</passivation>
  |               <preload>/</preload>
  |               <shared>false</shared>
  | 
  |               <!-- we can now have multiple cache loaders, which get chained -->
  |               <cacheloader>
  |                  <class>org.jboss.cache.loader.FileCacheLoader</class>
  |                  <!-- whether the cache loader writes are asynchronous -->
  |                  <async>false</async>
  |                  <!-- 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. -->
  |                  <fetchPersistentState>true</fetchPersistentState>
  |                  <!-- determines whether this cache loader ignores writes - defaults to false. -->
  |                  <ignoreModifications>false</ignoreModifications>
  |               </cacheloader>
  |            </config>
  |           </attribute>
  |    </mbean>
  | </server>
  | 

In my work to migrate this config to something equal in jboss 5.1.0, I got something like this.

cat jboss510/server/all/deploy/pojocache-service.xml:

  | <?xml version="1.0" encoding="UTF-8" ?>                                                
  | 
  | <server>
  |    <mbean code="org.jboss.cache.pojo.jmx.PojoCacheJmxWrapper" 
  |           name="jboss.cache:service=PojoCache">               
  |                                                               
  |       <depends>jboss:service=TransactionManager</depends>     
  | 
  |       <!-- Configure the TransactionManager >
  |       <attribute name="TransactionManagerLookupClass">
  |          org.jboss.cache.transaction.DummyTransactionManagerLookup
  |       </attribute-->
  | 
  |       <!-- Isolation level : SERIALIZABLE
  |                              REPEATABLE_READ (default)
  |                              READ_COMMITTED
  |                              READ_UNCOMMITTED
  |                              NONE
  |       -->
  |       <attribute name="IsolationLevel">READ_COMMITTED</attribute>
  | 
  |       <!-- Valid modes are LOCAL, REPL_ASYNC and REPL_SYNC -->
  |       <attribute name="CacheMode">REPL_ASYNC</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">
  |          <config>
  |             <!-- 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="228.1.2.3" 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"
  |                  loopback="false"/>
  |             <PING timeout="2000" num_initial_members="3"/>
  |             <MERGE2 min_interval="10000" max_interval="20000"/>
  |             <FD shun="true"/>
  |             <FD_SOCK/>
  |             <VERIFY_SUSPECT timeout="1500"/>
  |             <pbcast.NAKACK gc_lag="50" retransmit_timeout="600,1200,2400,4800"
  |                            max_xmit_size="8192"/>
  |             <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"/>
  |             <pbcast.STATE_TRANSFER/>
  |          </config>
  |       </attribute>
  | 
  |       <!-- Whether or not to fetch state on joining a cluster -->
  |       <attribute name="FetchInMemoryState">false</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>
  | 
  |    </mbean>
  | </server>
  | 

The problem is i can't define an eviction policy and/or maxNodes attribute. I know i'm doing something wrong (obviously), but i can't undestand what.

Examples on how to configure this properly are welcome!
Regards,
Miguel


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

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4262496



More information about the jboss-user mailing list