JBossCache-TreeCache 体验 TreeCache 是一种结构化的、基于复制的事务缓存。
TreeCache 是 JBoss —应用服务器中集群服务 包括 JNDI 集群、HTTP 和 EJB 的 Sesssion 集
群、JMS —集群 的基础框架。其可以单独使用,可以集成到 JBossAS 应用,也可以集成到其他的应用
服务器上。TreeCache 是一种树状结构,每个 节点拥有一个名字和多个或者没有子节点,除跟节点没
有子节点其他节点有且只有一个父母节点,可以通过路径名来访问子节点(FQN : Full Qualified
Name),在一个 TreeCache 中可以存在多棵树,,即可以有多个根节点。当应用于分布式环境时,
由于 TreeCache 是基于复制的,每个子节点的值必须是可序列化的。
在下面中,将通过例子来了解 TreeCache 的功能及其配置,使 用 JBossCache1.4 和
JDK5.0。首先是一个最基本使用 TreeCache 的程序例子并配置一个 TreeCache 的配置骨架(各
种常用的配 置可参见 jboss-cache-dist-1.4.0.CR1 版本的 etc 目录,如下各种配置参考也可见该
目录下的范例配置,以下不再强调),见下:
以下内容为程序代码:
TreeCache tree = new TreeCache();
tree.setClusterProperties("treecache.xml"[img]/images/wink.gif[/img];
tree.createService();
tree.startService();
tree.put("/a/b/c", "name", "Ben"[img]/images/wink.gif[/img];
tree.put("/a/b/c/d", "uid", new Integer(322649));
Integer tmp = (Integer) tree.get("/a/b/c/d", "uid"[img]/images/wink.gif[/img];
tree.remove("/a/b"[img]/images/wink.gif[/img];
tree.stopService();
tree.destroyService();
以下内容为程序代码:
treecache.xml:
<server>
<mbean code="org.jboss.cache.TreeCache"
name="jboss.cache:service=TreeCache">
<depends>jboss:service=Naming</depends>
<depends>jboss:service=TransactionManager</depends>
<attribute name="ClusterName">TreeCache-Cluster</attribute>
<attribute name="ClusterConfig">
<config>
<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_SOCK/>
<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"