首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MariaDB连接器与MySQLdb连接器-事务问题

MariaDB连接器与MySQLdb连接器-事务问题
EN

Stack Overflow用户
提问于 2020-08-31 07:33:42
回答 1查看 252关注 0票数 1

我们正在从MySQL连接器迁移到MariaDB连接器。我们使用Spring和Bitronix事务管理器。

当我们更改连接器时,我们面临着事务的几个问题。可能我们已经找到了根本原因:与MySQL和Maria处理联合事务之间的差异,请参阅下面的详细信息:

我们在项目中的几个地方使用这个注释:@Transactional(propagation = Propagation.REQUIRES_NEW)

以下是执行方面的差异:

MySQL连接器,MysqlXAConnection#isSameRM实现:

代码语言:javascript
复制
if(xaresinstanceofMysqlXAConnection){
 return this.underlyingConnection.isSameResource(((MysqlXAConnection)xares).underlyingConnection);
}

MariaDB连接器,org.mariadb.jdbc.MariaXaResource#isSameRM实现:

代码语言:javascript
复制
//Typicallyusedbytransactionmanagerto"join"transactions.Wedonotsupportjoins,
//soalwaysreturnfalse;
return false;

有没有人面临同样的问题?怎么处理?

我们的执行情况:

代码语言:javascript
复制
/**
 * Implementation of Audit Log which saves data using JPA in new transaction.
 */
public class JpaAudit implements AuditSPI {

    @Autowired
    private AuditlogRepository auditLogRepository;

    @Override
    @Transactional(propagation = Propagation.REQUIRES_NEW)
    public void log(AuditLogEntity aAuditObj) {
        auditLogRepository.save(aAuditObj);
    }
}

Propagation.REQUIRES_NEW改为Propagation.REQUIRED是有帮助的,但我认为这对我们来说不是一条路。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-27 08:06:03

你问题中的问题由迭戈·杜宾( Dupin )报告(CONJ-825)并纠正(提交70c406b2) (感谢他)。

提交的主要部分在src/main/java/org/mariadb/jdbc/MariaXaResource.java中:

代码语言:javascript
复制
 @Override
  public boolean isSameRM(XAResource xaResource) {
-    // Typically used by transaction manager to "join" transactions. We do not support joins,
-    // so always return false;
+    if (xaResource instanceof MariaXaResource) {
+      MariaXaResource other = (MariaXaResource) xaResource;
+      return connection
+          .getProtocol()
+          .getUrlParser()
+          .equals(other.connection.getProtocol().getUrlParser());
+    }
+    return false;
  }

此修补程序包含在MariaDB连接器/J 2.7.0。中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63666604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档