xianlongbai commented on issue #4886: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: com/atomikos/icatch/HeuristicMessage URL: https://github.com/apache/incubator-shardingsphere/issues/4886#issuecomment-602464882 > hi, this configuration is not needed, ShardingSphere have wrapped the XA transaction manager, you can use it just like local transaction. > > ``` > //XA事务 > @Bean(name = "shardingTransactionManagerXA") > public ShardingTransactionManager transactionManagerXA() { > return new AtomikosTransactionManager(); > } > ``` > > also you should make sure our XA transaction example can run in your local environment at first --- first, Removing this configuration still causes the same error, so In my services layer code, is the transaction opened correctly? **Secondly, my local data source configuration is as follows:** @Configuration @MapperScan(basePackages = "com.standard.dao.releaseDao", sqlSessionTemplateRef = "sqlSessionTemplateTwo") public class DataSourceTwoConfig { @Bean(name = "dataSourceTwo") @ConfigurationProperties(prefix = "spring.datasource2") public DataSource dataSourceTwo() throws SQLException { DruidDataSource datasource = new DruidDataSource(); datasource.setUrl(url); datasource.setDriverClassName(driverClass); datasource.setUsername(user); datasource.setPassword(password); datasource.setInitialSize(Integer.valueOf(initialSize)); datasource.setMinIdle(Integer.valueOf(minIdle)); datasource.setMaxWait(Long.valueOf(maxWait)); datasource.setMaxActive(Integer.valueOf(maxActive)); datasource.setPoolPreparedStatements(Boolean.valueOf(poolPreparedStatements)); datasource.setMinEvictableIdleTimeMillis(Long.valueOf(minEvictableIdleTimeMillis)); datasource.setValidationQuery(validationQuery); datasource.setTimeBetweenEvictionRunsMillis(Long.valueOf(timeBetweenEvictionRunsMillis)); datasource.setTestWhileIdle(Boolean.valueOf(testWhileIdle)); datasource.setTestOnReturn(Boolean.valueOf(testOnReturn)); datasource.setTestOnBorrow(Boolean.valueOf(testOnBorrow)); datasource.setFilters(filters); return datasource; } @Bean(name = "sqlSessionFactoryTwo") public SqlSessionFactory sqlSessionFactoryTwo(@Qualifier("dataSourceTwo") DataSource dataSource) throws Exception { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dataSource); bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mapper/releaseMapper/**/*.xml")); return bean.getObject(); } @Bean(name = "transactionManagerTwo") public PlatformTransactionManager transactionManagerTwo(@Qualifier("dataSourceTwo") DataSource dataSource) { return new DataSourceTransactionManager(dataSource); } @Bean(name = "sqlSessionTemplateTwo") public SqlSessionTemplate sqlSessionTemplateTwo(@Qualifier("sqlSessionFactoryTwo") SqlSessionFactory sqlSessionFactory) throws Exception { return new SqlSessionTemplate(sqlSessionFactory); } } **also you should make sure our XA transaction example can run in your local environment at first. What does this mean?** **Here is the related log printed when the project starts**: Loaded jar:file:/D:/maven_repository/com/atomikos/transactions/4.0.4/transactions-4.0.4.jar!/transactions-defaults.properties 2020-03-23 16:54:43 17552 [restartedMain] INFO c.a.i.provider.imp.AssemblerImp - Loaded jar:file:/D:/maven_repository/io/shardingsphere/sharding-transaction-2pc-xa/3.1.0/sharding-transaction-2pc-xa-3.1.0.jar!/jta.properties 2020-03-23 16:54:43 17554 [restartedMain] WARN c.a.i.provider.imp.AssemblerImp - Thanks for using Atomikos! Evaluate http://www.atomikos.com/Main/ExtremeTransactions for advanced features and professional support or register at http://www.atomikos.com/Main/RegisterYourDownload to disable this message and receive FREE tips & advice Thanks for using Atomikos! Evaluate http://www.atomikos.com/Main/ExtremeTransactions for advanced features and professional support or register at http://www.atomikos.com/Main/RegisterYourDownload to disable this message and receive FREE tips & advice 2020-03-23 16:54:43 17556 [restartedMain] INFO c.a.i.provider.imp.AssemblerImp - USING: com.atomikos.icatch.allow_subtransactions = true 2020-03-23 16:54:43 17556 [restartedMain] INFO c.a.i.provider.imp.AssemblerImp - USING: com.atomikos.icatch.recovery_delay = 300000 2020-03-23 16:54:43 17556 [restartedMain] INFO c.a.i.provider.imp.AssemblerImp - USING: com.atomikos.icatch.automatic_resource_registration = true 2020-03-23 16:54:43 17556 [restartedMain] INFO c.a.i.provider.imp.AssemblerImp - USING: com.atomikos.icatch.oltp_max_retries = 5 2020-03-23 16:54:43 17556 [restartedMain] INFO c.a.i.provider.imp.AssemblerImp - USING: com.atomikos.icatch.client_demarcation = false 2020-03-23 16:54:43 17556 [restartedMain] INFO c.a.i.provider.imp.AssemblerImp - USING: com.atomikos.icatch.threaded_2pc = false 2020-03-23 16:54:43 17556 [restartedMain] INFO c.a.i.provider.imp.AssemblerImp - USING: com.atomikos.icatch.serial_jta_transactions = false 2020-03-23 16:54:43 17556 [restartedMain] INFO c.a.i.provider.imp.AssemblerImp - USING: com.atomikos.icatch.log_base_dir = ./logs 2020-03-23 16:54:43 17557 [restartedMain] INFO c.a.i.provider.imp.AssemblerImp - USING: com.atomikos.icatch.rmi_export_class = none 2020-03-23 16:54:43 17557 [restartedMain] INFO c.a.i.provider.imp.AssemblerImp - USING: com.atomikos.icatch.max_actives = 10000 2020-03-23 16:54:43 17557 [restartedMain] INFO c.a.i.provider.imp.AssemblerImp - USING: com.atomikos.icatch.checkpoint_interval = 50000 2020-03-23 16:54:43 17557 [restartedMain] INFO c.a.i.provider.imp.AssemblerImp - USING: com.atomikos.icatch.enable_logging = true 2020-03-23 16:54:43 17557 [restartedMain] INFO c.a.i.provider.imp.AssemblerImp - USING: com.atomikos.icatch.log_base_name = xa_tx 2020-03-23 16:54:43 17557 [restartedMain] INFO c.a.i.provider.imp.AssemblerImp - USING: com.atomikos.icatch.max_timeout = 300000 2020-03-23 16:54:43 17557 [restartedMain] INFO c.a.i.provider.imp.AssemblerImp - USING: com.atomikos.icatch.trust_client_tm = false 2020-03-23 16:54:43 17557 [restartedMain] INFO c.a.i.provider.imp.AssemblerImp - USING: com.atomikos.icatch.tm_unique_name = 172.26.126.17.tm 2020-03-23 16:54:43 17557 [restartedMain] INFO c.a.i.provider.imp.AssemblerImp - USING: java.naming.factory.initial = com.sun.jndi.rmi.registry.RegistryContextFactory 2020-03-23 16:54:43 17557 [restartedMain] INFO c.a.i.provider.imp.AssemblerImp - USING: com.atomikos.icatch.forget_orphaned_log_entries_delay = 86400000 2020-03-23 16:54:43 17557 [restartedMain] INFO c.a.i.provider.imp.AssemblerImp - USING: com.atomikos.icatch.oltp_retry_interval = 10000 2020-03-23 16:54:43 17557 [restartedMain] INFO c.a.i.provider.imp.AssemblerImp - USING: java.naming.provider.url = rmi://localhost:1099 2020-03-23 16:54:43 17557 [restartedMain] INFO c.a.i.provider.imp.AssemblerImp - USING: com.atomikos.icatch.force_shutdown_on_vm_exit = false 2020-03-23 16:54:43 17557 [restartedMain] INFO c.a.i.provider.imp.AssemblerImp - USING: com.atomikos.icatch.default_jta_timeout = 300000 2020-03-23 16:54:43 17558 [restartedMain] INFO c.a.i.provider.imp.AssemblerImp - Using default (local) logging and recovery...
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] With regards, Apache Git Services
