springboot2.0+mybatis+jta+automatic配置双数据源事物管理,配置完事物操作第二个数据源时报错事物不回滚。
运行时提示:atomikos connection proxy for com.mysql.jdbc.JDBC4Connection@2db2fd16: WARNING: transaction manager not running?
application.yml配置如下
spring:
jta:
enabled: true
transaction-manager-id: txManager
datasource:
master:
xa-properties:
url: jdbc:mysql://127.0.0.1:3308/mytest??useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&pinGlobalTxToPhysicalConnection=true
username: root
password: "123456"
driverClassName: com.mysql.jdbc.Driver
unique-resource-name: masterDataSource
xa-data-source-class-name: com.alibaba.druid.pool.xa.DruidXADataSource
max-pool-size: 25
min-pool-size: 3
max-lifetime: 20000
borrow-connection-timeout: 10000
second:
xa-properties:
url: jdbc:mysql://127.0.0.1:3308/mytest2??useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&pinGlobalTxToPhysicalConnection=true
username: root
password: "123456"
driverClassName: com.mysql.jdbc.Driver
xa-data-source-class-name: com.alibaba.druid.pool.xa.DruidXADataSource
unique-resource-name: secondDataSource
max-pool-size: 25
min-pool-size: 3
max-lifetime: 20000
borrow-connection-timeout: 10000
@Configuration
@MapperScan(basePackages = "com.mv.dao.master", sqlSessionTemplateRef = "masterSqlSessionTemplate")
public class MasterDataSourceConfig {
/**
* 创建主库数据源
* @return
*/
@Bean(name = "masterDataSource")
@ConfigurationProperties(prefix = "spring.datasource.master")
@Primary
public DataSource masterDataSource() {
AtomikosDataSourceBean atomikosDataSourceBean = new AtomikosDataSourceBean();
atomikosDataSourceBean.setUniqueResourceName("masterDataSource");
return atomikosDataSourceBean;
}
@Configuration
@MapperScan(basePackages = "com.mv.dao.second", sqlSessionTemplateRef = "secondSqlSessionTemplate")
public class SecondDataSourceConfig {
/**
* 创建主库数据源
* @return
*/
@Bean(name = "secondDataSource")
@ConfigurationProperties(prefix = "spring.datasource.second")
public DataSource secondDataSource() {
AtomikosDataSourceBean atomikosDataSourceBean = new AtomikosDataSourceBean();
atomikosDataSourceBean.setUniqueResourceName("secondDataSource");
return atomikosDataSourceBean;
}
2019-03-20 17:24:28.459 INFO 37520 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
2019-03-20 17:24:28.482 INFO 37520 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 23 ms
2019-03-20 17:24:28.523 WARN 37520 --- [nio-8080-exec-1] c.atomikos.jdbc.AtomikosConnectionProxy : atomikos connection proxy for com.mysql.jdbc.JDBC4Connection@2db2fd16: WARNING: transaction manager not running?
2019-03-20 17:24:28.523 WARN 37520 --- [nio-8080-exec-1] c.atomikos.jdbc.AtomikosConnectionProxy : atomikos connection proxy for com.mysql.jdbc.JDBC4Connection@2db2fd16: WARNING: transaction manager not running?
2019-03-20 17:24:28.547 WARN 37520 --- [nio-8080-exec-1] c.atomikos.jdbc.AtomikosConnectionProxy : atomikos connection proxy for com.mysql.jdbc.JDBC4Connection@209eddac: WARNING: transaction manager not running?
2019-03-20 17:24:28.548 WARN 37520 --- [nio-8080-exec-1] c.atomikos.jdbc.AtomikosConnectionProxy : atomikos connection proxy for com.mysql.jdbc.JDBC4Connection@209eddac: WARNING: transaction manager not running?
2019-03-20 17:24:28.548 WARN 37520 --- [nio-8080-exec-1] c.atomikos.jdbc.AtomikosConnectionProxy : atomikos connection proxy for com.mysql.jdbc.JDBC4Connection@209eddac: WARNING: transaction manager not running?
2019-03-20 17:24:28.574 WARN 37520 --- [nio-8080-exec-1] c.atomikos.jdbc.AtomikosConnectionProxy : atomikos connection proxy for com.mysql.jdbc.JDBC4Connection@209eddac: WARNING: transaction manager not running?
2019-03-20 17:24:28.577 WARN 37520 --- [nio-8080-exec-1] c.atomikos.jdbc.AtomikosConnectionProxy : atomikos connection proxy for com.mysql.jdbc.JDBC4Connection@2db2fd16: WARNING: transaction manager not running?
2019-03-20 17:24:28.577 WARN 37520 --- [nio-8080-exec-1] c.atomikos.jdbc.AtomikosConnectionProxy : atomikos connection proxy for com.mysql.jdbc.JDBC4Connection@2db2fd16: WARNING: transaction manager not running?
2019-03-20 17:24:28.625 WARN 37520 --- [nio-8080-exec-1] c.atomikos.jdbc.AtomikosConnectionProxy : atomikos connection proxy for com.mysql.jdbc.JDBC4Connection@2db2fd16: WARNING: transaction manager not running?
2019-03-20 17:24:28.626 WARN 37520 --- [nio-8080-exec-1] c.atomikos.jdbc.AtomikosConnectionProxy : atomikos connection proxy for com.mysql.jdbc.JDBC4Connection@2db2fd16: WARNING: transaction manager not running?
2019-03-20 17:24:28.657 ERROR 37520 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing