seata 无法存储 branch XID -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

seata 无法存储 branch XID

一人吃饱,全家不饿 2021-02-02 11:32:14 330

有时会报错

io.seata.core.exception.RmTransactionException: Response[ TransactionException[Failed to store branch xid = 192.168.111.211:8092:2040756175 branchId = 2040756185] ]
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '2040756185' for key 'PRIMARY'
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
at com.mysql.jdbc.Util.getInstance(Util.java:384)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1039)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4232)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4164)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2838)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2082)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2334)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2262)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2246)
at com.alibaba.druid.pool.DruidPooledPreparedStatement.executeUpdate(DruidPooledPreparedStatement.java:256)
at io.seata.core.store.db.LogStoreDataBaseDAO.insertBranchTransactionDO(LogStoreDataBaseDAO.java:348)
... 22 common frames omitted
存储
分享到
取消 提交回答
全部回答(1)
  • 一人吃饱,全家不饿
    2021-02-02 11:48:24

    注意一下-n这个说明

    源码启动: 执行Server.java的main方法

    命令启动: seata-server.sh -h 127.0.0.1 -p 8091 -m db -n 1 -e test

    -h: 注册到注册中心的ip

    -p: Server rpc 监听端口

    -m: 全局事务会话信息存储模式,file、db,优先读取启动参数

    -n: Server node,多个Server时,需区分各自节点,用于生成不同区间的transactionId,以免冲突

    -e: 多环境配置参考 http://seata.io/en-us/docs/ops/multi-configuration-isolation.html

    0 0
+ 订阅

我们开放源码,更相信社区的力量。

推荐文章
相似问题
推荐课程
链接