Connection Shareable测试


Connection Shareable是对XA资源的一个优化。

原因: XA资源的提交代价比较大,如果同一个应用(要求在同一个线程中)连续得到的两个XA链接都是同一个EIS时,那么就可以优化成一个连接,变为了LocalTransaction,提高了性能。


========

测试代码

========

com.sun.appserv.jdbc.DataSource res_unshare = (com.sun.appserv.jdbc.DataSource)ctx.lookup("java:comp/env/DataSourceNoShare");
com.sun.appserv.jdbc.DataSource res_share = (com.sun.appserv.jdbc.DataSource)ctx.lookup("java:comp/env/DataSourceShare");
for(int i=0; i<num; i++) {
    conns[i] = shareable ? res_share.getConnection(res_share.getConnection())
        : res_unshare.getConnection(res_unshare.getConnection());
    rt[i] = conns[i].toString();
}

========

ejb-jar.xml

========

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:ejb="http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" version="3.0">

  <enterprise-beans>
  	<session>
  		<ejb-name>jcatest</ejb-name>
  		<local>com.jca.test.JCAPool_InitialLocal</local>
  		<resource-ref>
		    <res-ref-name>DataSourceNoShare</res-ref-name>
		    <res-type>javax.sql.DataSource</res-type>
		    <res-auth>Container</res-auth>
		    <res-sharing-scope>Unshareable</res-sharing-scope>
		    <mapped-name>jdbc/__default</mapped-name>
		  </resource-ref>
		  
		  <resource-ref>
		    <res-ref-name>DataSourceShare</res-ref-name>
		    <res-type>javax.sql.DataSource</res-type>
		    <res-auth>Container</res-auth>
		    <res-sharing-scope>Shareable</res-sharing-scope>
		    <mapped-name>jdbc/__default</mapped-name>
		  </resource-ref>
  	</session>
  </enterprise-beans>
</ejb-jar>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值