diff --git a/pom.xml b/pom.xml index 678f10eac5..b367749f93 100644 --- a/pom.xml +++ b/pom.xml @@ -13,16 +13,15 @@ 2012 - true + 3.1.1.RELEASE 4.10 + + true + UTF-8 + 1.6 + - - bonecp - bonecp - http://jolbox.com/bonecp/downloads/maven/ - default - alibaba alibaba @@ -34,12 +33,6 @@ file://${basedir}/lib/ default - - - springsource-repo - SpringSource Repository - http://repo.springsource.org/release - @@ -337,21 +330,21 @@ org.springframework spring-core - 3.1.1.RELEASE + ${spring.version} provided true org.springframework spring-beans - 3.1.1.RELEASE + ${spring.version} provided true org.springframework spring-orm - 3.1.1.RELEASE + ${spring.version} provided true @@ -399,13 +392,13 @@ mysql mysql-connector-java - 5.1.20 + 5.1.22 provided net.sourceforge.jtds jtds - 1.2.7 + 1.3.0 provided diff --git a/src/main/java/com/alibaba/druid/pool/xa/JtdsXAResource.java b/src/main/java/com/alibaba/druid/pool/xa/JtdsXAResource.java index f258687d1a..c59585281d 100644 --- a/src/main/java/com/alibaba/druid/pool/xa/JtdsXAResource.java +++ b/src/main/java/com/alibaba/druid/pool/xa/JtdsXAResource.java @@ -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() {