我已经使用以下配置了MySQL数据库的用户定义数据源。
- WebSphere 8.5
- mysql-cluster-gpl-7.4.6
- mysql-connector-java-5.1.9-bin.jar
提供者中的实现类:
com.mysql.jdbc.jdbc2.optional.MysqlXADataSource
然而,我得到了以下跨MySQL的JTA事务和MySQL数据源的Oracle数据源操作的异常。
E WTRN0063E:非法尝试提交一个阶段已发生具有现有两阶段能力的资源的资源。
根据文档,MySQL支持XA事务,我的驱动程序正在实现XADatasource。
你能确认一下我缺了什么吗。可能是数据源配置它不是两个阶段的事务资源?
我还使用了ENGINE=INNODB
来创建MySQL表。
听起来您需要将数据源配置为在WebSphere端支持XA。默认情况下,WAS数据源不会实现javax.sql.XADataSource。
请参阅WAS8.5文档链接(第8.e节),验证您的配置是否使用XA数据源:http://www-01.ibm.com/support/knowledgecenter/SSEQTP_8.5.5/com.ibm.websphere.base.doc/ae/tdat_ccrtpds.html?cp=SSEQTP_8.5.5%2F1-3-0-23-3-0-7-1