Merge pull request #239 from wenshao/master

improve jdts xa support
This commit is contained in:
温高铁
2012-12-22 23:17:34 -08:00
2 changed files with 41 additions and 31 deletions
+16 -28
View File
@@ -13,33 +13,20 @@
<inceptionYear>2012</inceptionYear>
<properties>
<spring.version>3.1.1.RELEASE</spring.version>
<junit.version>4.11</junit.version>
<gpg.skip>true</gpg.skip>
<junit.version>4.10</junit.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jdk.version>1.6</jdk.version>
</properties>
<repositories>
<repository>
<id>bonecp</id>
<name>bonecp</name>
<url>http://jolbox.com/bonecp/downloads/maven/</url>
<layout>default</layout>
</repository>
<repository>
<id>alibaba</id>
<name>alibaba</name>
<url>http://code.alibabatech.com/mvn/releases/</url>
<layout>default</layout>
</repository>
<repository>
<id>local-file</id>
<url>file://${basedir}/lib/</url>
<layout>default</layout>
</repository>
<repository>
<id>springsource-repo</id>
<name>SpringSource Repository</name>
<url>http://repo.springsource.org/release</url>
</repository>
</repositories>
<distributionManagement>
@@ -96,7 +83,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<version>3.0</version>
<configuration>
<encoding>UTF-8</encoding>
<source>1.6</source>
@@ -107,7 +94,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.2</version>
<version>2.12.4</version>
<configuration>
<includes>
<include>**/bvt/**/*.java</include>
@@ -118,7 +105,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.1.1</version>
<version>2.2.1</version>
<executions>
<execution>
<id>attach-sources</id>
@@ -134,7 +121,7 @@
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.8.1</version>
<version>2.9</version>
<executions>
<execution>
<id>attach-javadoc</id>
@@ -157,6 +144,7 @@
<plugin>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.4</version>
<configuration>
<skip>${gpg.skip}</skip>
</configuration>
@@ -337,21 +325,21 @@
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.1.1.RELEASE</version>
<version>${spring.version}</version>
<scope>provided</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>3.1.1.RELEASE</version>
<version>${spring.version}</version>
<scope>provided</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>3.1.1.RELEASE</version>
<version>${spring.version}</version>
<scope>provided</scope>
<optional>true</optional>
</dependency>
@@ -399,13 +387,13 @@
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.20</version>
<version>5.1.22</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>net.sourceforge.jtds</groupId>
<artifactId>jtds</artifactId>
<version>1.2.7</version>
<version>1.3.0</version>
<scope>provided</scope>
</dependency>
@@ -15,25 +15,47 @@
*/
package com.alibaba.druid.pool.xa;
import java.lang.reflect.Method;
import java.sql.Connection;
import javax.transaction.xa.XAException;
import javax.transaction.xa.XAResource;
import javax.transaction.xa.Xid;
import net.sourceforge.jtds.jdbc.ConnectionJDBC2;
import net.sourceforge.jtds.jdbc.XASupport;
import com.alibaba.druid.support.logging.Log;
import com.alibaba.druid.support.logging.LogFactory;
public class JtdsXAResource implements XAResource {
private final static Log LOG = LogFactory.getLog(JtdsXAResource.class);
private final Connection connection;
private final JtdsXAConnection xaConnection;
private final String rmHost;
private String rmHost;
private static Method method;
public JtdsXAResource(JtdsXAConnection xaConnection, Connection connection){
this.xaConnection = xaConnection;
this.connection = connection;
rmHost = ((ConnectionJDBC2) connection).getRmHost();
if (method == null) {
try {
method = connection.getClass().getMethod("getRmHost");
} catch (Exception e) {
LOG.error("getRmHost method error", e);
}
}
if (method != null) {
try {
rmHost = (String) method.invoke(connection);
} catch (Exception e) {
LOG.error("getRmHost error", e);
}
}
}
protected JtdsXAConnection getResourceManager() {