Toplink多种会话缓存同步方案的性能比较

Toplink多种会话缓存同步方案的性能比较

上次用Coherence实现缓存数据同步的transport manager之后,对它进行了压力测试并和Tibco EMS JMS和 OracleAS JMS(内存)进行了性能对比。

测试需求

Title1. 要在多个jvm之间实现缓存的数据同步。
2. 要对增删改查同时进行测试。
3. 大量数据
4. 多线程
5. 测试结果记录
6. 晚上偷偷摸摸的进行


解决方案
Title1.Oracle AS的每个OC4J Instance是可以设置JVM个数的,而jvm之间的数据同步则需要自己完成。这为测试提供了服务场所,每次request随机地被dispatch到不同的jvm中执行
2.增删一个线程类:主要完成不停的插入数据不停地删除插入的数据
   修改一个线程类:主要完成不停地修改已创建的数据,修改后把toplink cache中的数据读出来,检验一下数据是否被同步了。
    查询一个线程类:主要完成不停地从数据库中查询批量的数据
3.大量数据: 预先先创建了2万个Employee(测试数据,基于乐观锁)。
4.多线程:可配置每个线程类的线程数。用一个monitor线程控制各个线程的执行。
5.测试结果记录到db中,sql语句写起来还是比分析文件快一点
6.每天拖班

 

运行测试之前,根据不同的情况,需要修改一下配置文件, 需要配置文件主要是方便在各种同步方案之间切换, 也方便我们更换不同的测试环境, J2EE container和 Oracle DB:tts.properties
#one of jms ,  rmi , oasjms ,  coherence or set it blank
toplink.cache.type 
=  jms
#the name of toplink command channel
toplin.command.channel 
=  Toplink Coherence

#the config is used for stress test

#not use datasource
database.driver
= oracle.jdbc.OracleDriver
database.url
= jdbc:oracle:thin:@luga: 1521 :lugadb
database.username
= gavin
database.password
= gavin
#using datasource
database.dataSource 
=

#thread number
#default 
30
read.thread.number 
=   20
#default 
10
update.thread.number 
=   10
#default 
10
create.thread.number 
=   10
#time unit is minute default 
30
test.run.duration 
=   360

#url
test.server.url 
=  http\://localhost\: 7778


toplink.cache.type可以为jms, oasjms, rmi, coherence或者不填。
test.run.duration:: 执行时间单位分钟
datasource:配了datasource就会首先使用datasource

实现技术;
1.服务器端(Oracle Application Server):servlet接受请求并对employee做相应处理,计算测试结果
2.客户端(Eclipse):commons-httpclient多线程发送请求,记录测试结果

测试结果:
三者都成功实现了数据在多个jvm之间的及时同步, 性能上比较

Oracle AS JMS (内存)> EMS JMS>Oralce Coherence




如何实现toplink 自定义的transport manager:Oracle Coherence实现toplink会话缓存的数据同步



你可能感兴趣的:(Toplink多种会话缓存同步方案的性能比较)