3 Replies Latest reply on Nov 15, 2007 3:55 AM by yair.zaslavsky

    JBoss cache newbie question about using regions with POJO ca

    yair.zaslavsky

      Hi all,
      I started to use JBossCache several days ago, and succeeded to run the examples.

      I want to use POJO cache, and to set a region for FQN "/people/friends"

      Here is the configuration file I used:






      <!-- ==================================================================== -->
      <!-- Defines TreeCache configuration -->
      <!-- ==================================================================== -->



      jboss:service=Naming
      jboss:service=TransactionManager


      <!-- Configure the TransactionManager -->
      org.jboss.cache.BatchModeTransactionManagerLookup


      <!--
      Node locking level : SERIALIZABLE
      REPEATABLE_READ (default)
      READ_COMMITTED
      READ_UNCOMMITTED
      NONE
      -->
      REPEATABLE_READ

      <!--
      Valid modes are LOCAL
      REPL_ASYNC
      REPL_SYNC
      INVALIDATION_ASYNC
      INVALIDATION_SYNC
      -->
      LOCAL

      <!-- Name of cluster. Needs to be the same for all clusters, in order
      to find each other
      -->
      TreeCache-Cluster

      <!-- JGroups protocol stack properties. Can also be a URL,
      e.g. file:/home/bela/default.xml

      -->



      <!-- 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"
      up_thread="false" down_thread="false"/>
      <MERGE2 min_interval="10000" max_interval="20000"/>
      <FD shun="true" up_thread="true" down_thread="true"/>
      <VERIFY_SUSPECT timeout="1500"
      up_thread="false" down_thread="false"/>
      <pbcast.NAKACK gc_lag="50" retransmit_timeout="600,1200,2400,4800"
      max_xmit_size="8192" up_thread="false" down_thread="false"/>
      <UNICAST timeout="600,1200,2400" window_size="100" min_threshold="10"
      down_thread="false"/>
      <pbcast.STABLE desired_avg_gossip="20000"
      up_thread="false" down_thread="false"/>
      <FRAG frag_size="8192"
      down_thread="false" up_thread="false"/>
      <pbcast.GMS join_timeout="5000" join_retry_timeout="2000"
      shun="true" print_local_addr="true"/>
      <pbcast.STATE_TRANSFER up_thread="false" down_thread="false"/>




      <!--
      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
      -->
      20000

      <!--
      Number of milliseconds to wait until all responses for a
      synchronous call have been received.
      -->
      20000

      <!-- Max number of milliseconds to wait for a lock acquisition -->
      15000


      <!-- Name of the eviction policy class. -->

      <!--
      org.jboss.cache.aop.eviction.AopLRUPolicy
      -->
      <!-- Specific eviction policy configurations. This is LRU -->


      5
      <!-- Cache wide default -->
      <!--

      5000
      1000

      -->

      5000
      1000


      2
      4


      5
      4




      <!--
      Indicate whether to use region based 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".
      -->
      true




      I am using it as standalone application (not inside JBOSS AS or any other cotainer).
      I placed different objects in cache under
      /people/friends/A
      /people/friends/B
      /people/friends/C
      /people/friends/D
      /people/friends/E
      /people/friends/F

      I implemented my own TreeCacheListener and set it in the cache,so I can see if there is an eviction (I simply printed out messages for all handlers defined in the class implementing TreeCacheListener).
      I did not see any eviction of nodes (although I set in the configuration that the max nodes for the regions in 2).
      Can you please tell me what I'm doing wrong?
      (I'm JBossCache 1.4.1.SP6)

        • 1. Re: JBoss cache newbie question about using regions with POJ
          yair.zaslavsky

          Here is the XML configuration, sorry for not posing it before

          <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.BatchModeTransactionManagerLookup</attribute>
          
          
           <!--
           Node locking 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
           -->
           <attribute name="CacheMode">LOCAL</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>
           <!-- 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"
           up_thread="false" down_thread="false"/>
           <MERGE2 min_interval="10000" max_interval="20000"/>
           <FD shun="true" up_thread="true" down_thread="true"/>
           <VERIFY_SUSPECT timeout="1500"
           up_thread="false" down_thread="false"/>
           <pbcast.NAKACK gc_lag="50" retransmit_timeout="600,1200,2400,4800"
           max_xmit_size="8192" up_thread="false" down_thread="false"/>
           <UNICAST timeout="600,1200,2400" window_size="100" min_threshold="10"
           down_thread="false"/>
           <pbcast.STABLE desired_avg_gossip="20000"
           up_thread="false" down_thread="false"/>
           <FRAG frag_size="8192"
           down_thread="false" up_thread="false"/>
           <pbcast.GMS join_timeout="5000" join_retry_timeout="2000"
           shun="true" print_local_addr="true"/>
           <pbcast.STATE_TRANSFER up_thread="false" down_thread="false"/>
           </config>
           </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>
          
           <!--
           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>
          
          
           <!-- Name of the eviction policy class. -->
           <attribute name="EvictionPolicyClass"></attribute>
          <!--
           <attribute name="EvictionPolicyClass">org.jboss.cache.aop.eviction.AopLRUPolicy</attribute>
          -->
           <!-- Specific eviction policy configurations. This is LRU -->
           <attribute name="EvictionPolicyConfig">
           <config>
           <attribute name="wakeUpIntervalSeconds">5</attribute>
           <!-- Cache wide default -->
           <!--
           <region name="/_default_">
           <attribute name="maxNodes">5000</attribute>
           <attribute name="timeToLiveSeconds">1000</attribute>
           </region>
           -->
           <region name="/org/jboss/data">
           <attribute name="maxNodes">5000</attribute>
           <attribute name="timeToLiveSeconds">1000</attribute>
           </region>
           <region name="/people/friends">
           <attribute name="maxNodes">2</attribute>
           <attribute name="timeToLiveSeconds">4</attribute>
           </region>
           <region name="/org/jboss/test/data">
           <attribute name="maxNodes">5</attribute>
           <attribute name="timeToLiveSeconds">4</attribute>
           </region>
           </config>
           </attribute>
          
           <!--
           Indicate whether to use region based 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="UseRegionBasedMarshalling">true</attribute>
           </mbean>
          
          
          </server>
          


          • 2. Re: JBoss cache newbie question about using regions with POJ
            manik

            You have left your eviction policy class as blank. This will disable eviction.

            • 3. Re: JBoss cache newbie question about using regions with POJ
              yair.zaslavsky

              Thank you , It did solve the problem.