-
Notifications
You must be signed in to change notification settings - Fork 8.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
seata2.1.0 服务端用mysql+SqlServer业务端 主键使用雪花算法,回滚事务报没有标识属性。无法执行 SET 操作 #6449
Comments
当前undolog内容和表结构给个示例 |
-- rf_collection 的表结构 IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[rf_collection]') AND type IN ('U')) CREATE TABLE [dbo].[rf_collection] ( ALTER TABLE [dbo].[rf_collection] SET (LOCK_ESCALATION = TABLE) EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty EXEC sp_addextendedproperty -- Primary Key structure for table rf_collection ALTER TABLE [dbo].[rf_collection] ADD CONSTRAINT [PK_rf_collection] PRIMARY KEY CLUSTERED ([id]) |
父服务上加@GlobalTransactional,子服务中是否需要@transactional? 服务端用的2.1.0,客户端还是用2.0.0,有影响么? |
能否加下微信 |
当前版本AT模式的SqlServer在执行Delete场景回滚的时候会默认执行 The current version of SqlServer in AT mode will execute |
什么时候会升级解决这个问题? |
2024-03-28 13:52:50.385 ERROR 11556 --- [_RMROLE_1_16_16] i.seata.rm.datasource.DataSourceManager : [stacktrace]branchRollback failed. branchType:[AT], xid:[192.168.1.5:8091:6629803150973841558], branchId:[6629803150973841560], resourceId:[jdbc:sqlserver://sqlserver:1433;databaseName=DL_CP_WMS_DEVICE], applicationData:[null]. reason:[Branch session rollback failed and try again later xid = 192.168.1.5:8091:6629803150973841558 branchId = 6629803150973841560 表 'rf_collection' 没有标识属性。无法执行 SET 操作。]
io.seata.core.exception.BranchTransactionException: Branch session rollback failed and try again later xid = 192.168.1.5:8091:6629803150973841558 branchId = 6629803150973841560 表 'rf_collection' 没有标识属性。无法执行 SET 操作。
at io.seata.rm.datasource.undo.AbstractUndoLogManager.undo(AbstractUndoLogManager.java:370)
at io.seata.rm.datasource.DataSourceManager.branchRollback(DataSourceManager.java:122)
at io.seata.rm.AbstractRMHandler.doBranchRollback(AbstractRMHandler.java:125)
at io.seata.rm.AbstractRMHandler$2.execute(AbstractRMHandler.java:67)
at io.seata.rm.AbstractRMHandler$2.execute(AbstractRMHandler.java:63)
at io.seata.core.exception.AbstractExceptionHandler.exceptionHandleTemplate(AbstractExceptionHandler.java:131)
at io.seata.rm.AbstractRMHandler.handle(AbstractRMHandler.java:63)
at io.seata.rm.DefaultRMHandler.handle(DefaultRMHandler.java:68)
at io.seata.core.protocol.transaction.BranchRollbackRequest.handle(BranchRollbackRequest.java:35)
at io.seata.rm.AbstractRMHandler.onRequest(AbstractRMHandler.java:150)
at io.seata.core.rpc.processor.client.RmBranchRollbackProcessor.handleBranchRollback(RmBranchRollbackProcessor.java:63)
at io.seata.core.rpc.processor.client.RmBranchRollbackProcessor.process(RmBranchRollbackProcessor.java:58)
at io.seata.core.rpc.netty.AbstractNettyRemoting.lambda$processMessage$2(AbstractNettyRemoting.java:280)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 表 'rf_collection' 没有标识属性。无法执行 SET 操作。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:262)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1624)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:594)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:524)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7194)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2979)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:248)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:223)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeUpdate(SQLServerPreparedStatement.java:473)
at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_executeUpdate(FilterChainImpl.java:3254)
at com.alibaba.druid.filter.FilterAdapter.preparedStatement_executeUpdate(FilterAdapter.java:1075)
at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_executeUpdate(FilterEventAdapter.java:486)
at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_executeUpdate(FilterChainImpl.java:3252)
at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.executeUpdate(PreparedStatementProxyImpl.java:192)
at com.alibaba.druid.pool.DruidPooledPreparedStatement.executeUpdate(DruidPooledPreparedStatement.java:241)
at io.seata.rm.datasource.undo.AbstractUndoExecutor.executeOn(AbstractUndoExecutor.java:137)
at io.seata.rm.datasource.undo.AbstractUndoLogManager.undo(AbstractUndoLogManager.java:317)
... 16 common frames omitted
2024-03-28 13:52:50.385 INFO 11556 --- [_RMROLE_1_16_16] io.seata.rm.AbstractRMHandler : Branch Rollbacked result: PhaseTwo_RollbackFailed_Retryable
2024-03-28 13:52:51.372 INFO 11556 --- [h_RMROLE_1_1_16] i.s.c.r.p.c.RmBranchRollbackProcessor : rm handle branch rollback process:BranchRollbackRequest{xid='192.168.1.5:8091:6629803150973841558', branchId=6629803150973841560, branchType=AT, resourceId='jdbc:sqlserver://sqlserver:1433;databaseName=DL_CP_WMS_DEVICE', applicationData='null'}
The text was updated successfully, but these errors were encountered: