Juni 27th, 2006

TreeCache als JBoss MBean

Posted by frank in Java, J2EE

Der JBoss Cache, ein Memory-Cache mit Replikation über mehrere Nodes, lohnt sich als MBean zu verwenden. Der Zugriff auf das MBean läuft dann, wie auch in der Dokumentation beschrieben, wie folgt:

public class TestCache {
    public void test() {
        MBeanServer server=MBeanServerLocator.locateJBoss();
        TreeCacheMBean cache;
        cache=(TreeCacheMBean)MBeanProxyExt.create(TreeCacheMBean.class, “jboss.cache:service=TreeCache”, server);
    }
}

Der Name “jboss.cache:service=TreeCache” ist der Name der MBean, welcher in der XML-Datei mit angegeben wird. Eine Beispiel-XML-Datei (”mycache-service.xml”) könnte wie folgt aussehen:

?xml version=”1.0″ encoding=“UTF-8″?>
<server>

  <!–  ====================================================================  –>

  <!–  Defines TreeCache configuration                                       –>
  <!–  ====================================================================  –>
  <mbean code=org.jboss.cache.TreeCache name=jboss.cache:service=MyTreeCache>

    <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
    –>
    <attribute name=CacheMode>REPL_SYNC</attribute>

    <!– Name of cluster. Needs to be the same for all clusters, in order
             to find each other –>
    <attribute name=ClusterName>my-cache</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=${jboss.partition.udpGroup:228.2.4.5} mcast_port=43336 bind_addr=${jboss.bind.address} ip_ttl=2 ip_mcast=true

           mcast_send_buf_size=150000 mcast_recv_buf_size=80000 ucast_send_buf_size=150000
           ucast_recv_buf_size=80000 loopback=true />

        <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 max_xmit_size=8192 retransmit_timeout=600,1200,2400,4800 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>5000</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>

  </mbean>

</server>

One Response to ' TreeCache als JBoss MBean '

Subscribe to comments with RSS or TrackBack to ' TreeCache als JBoss MBean '.


  1. on Januar 5th, 2009 at 5:29 pm

    […] ein MBean, wie z.B. einen TreeCache, auch per JNDI zur Verfügung zu stellen, muss lediglich ein weiteres MBean erstellt werden. Dazu […]

Leave a reply

:mrgreen: :neutral: :twisted: :shock: :smile: :???: :cool: :evil: :grin: :oops: :razz: :roll: :wink: :cry: :eek: :lol: :mad: :sad: