JOTM 分布式事务初探(JNDI,Tomcat 7 JDBC Pool连接池)
JOTM 分布式事务初探(JNDI,Tomcat 7 JDBC Pool连接池)
?
Tomcat 7 带了一个新的连接池 tomcat(The Tomcat JDBC Connection Pool)
网上有人测试,据说性能超过常用连接池(c3p0等).
链接:http://www.open-open.com/lib/view/open1329182303124.html
并且这个连接池提供的连接不是普通的Connection,而是pooledConnection,
而且支持提供XADataSource(org.apache.tomcat.jdbc.pool.XADataSource).
?
The Tomcat JDBC Connection Pool可独立使用,
需要Tomat7版本下lib包中的tomcat-jdbc.jar和bin中的tomcat-juli.jar
?
可以用来做JOTM的分布式事务的数据源.
?
实际使用tomcat版本 是5.5.25
?
JOTM版本 2.1.9 http://jotm.ow2.org/xwiki/bin/view/Main/Download_Releases
?
1. 新建一个Java web工程
?
? ?将JOTM的lib包下的所有jar包(包括一个空的ext文件夹)拷贝到web-inf的lib下
? ?
? ?将Tomcat版本中的tomcat-jdbc.jar和tomcat-juli.jar拷贝到
? ?tomcat5.5.25的common\lib下,并引入到工程中来.
? ?
? ?将 mysql和oracle的jdbc驱动拷贝到web-inf的lib下
? ?(classes12.jar--oracle驱动,mysql-connector-java-5.1.24-bin.jar--mysql驱动)
? ?
? ?需要将web-inf的lib下所有jar包拷贝到tomcat5.5.25的common\lib下,部署的时候,注意将
? ?webapps\工程\web-inf的lib下的jar全部删除,使用tomcat5.5.25的common\lib下的jar包
?
2. 分别在mysql和oracle中创建测试数据库和测试用户
?
? ?2.1 mysql数据库(mysql 版本mysql ?Ver 14.14 Distrib 5.5.11, for Win32 (x86))
? ?下面的语句执行前,可能需要使用root用户登陆
? ?
?上面配置文件中?factory="org.objectweb.jotm.datasource.DataSourceFactory"
?表示使用的是JOMT子弟爱的连接池.
?而配置成?factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
?表示使用 Tomcat 7 JDBC 连接池
?
注意上面配置数据库连接时,
type="javax.sql.DataSource"
factory="org.objectweb.jotm.datasource.DataSourceFactory"
两个属性,type总是DataSource,尽管JOTM要求提供XADataSource,
主要是factory="org.objectweb.jotm.datasource.DataSourceFactory"这个可以根据需要
选择提供普通的DataSource或者XADataSource.
这样,假如之前有相关的配置,则修改为支持JOTM分布式事务时,貌似只要修改这个
factory配置即可.
?
<Transaction>是Tomcat 5中的新标记,对于不支持此标记的老版本,
需要使用以下语句代替事务资源的声明:
?
?
需要注意的是,使用<Resource>节点声明的资源默认上下文前缀是"java:comp/env",
而使用< Transaction>节点时则是"java:comp"。因此,当使用4.2的方式声明用户事务时,
相应的JNDI查找代码也应该改为?
UserTransaction ut = (UserTransaction)initCtx.lookup("java:comp/env/UserTransaction");
上面的配置还配置了一个 UserTransaction.
?
5. 在Java类中获取上面配置的资源
?
? ?
?
? ?
参考 :http://static.raibledesigns.com/downloads/howto-tomcat-jotm.html
?
http://static.raibledesigns.com/downloads/howto-tomcat-jotm.html
?
http://www.blogjava.net/nokiaguy/archive/2008/05/08/199150.html
? ?
? ?
? ?附件为工程文件,需要重新命名
? ?TestJomt001.7z 重命名?TestJomt.7z?.001
? ?TestJomt002.7z 重命名?TestJomt.7z?.002
? ??
?
?
?
?