GitHub user panwuji edited a discussion: 阻塞本地事务(线程睡眠模拟),事务消息回查未触发,线程重新活跃后提交事务报错
服务端:5.1.1 客户端:rocketmq-client-java(5.0.5) 参考官网demo:https://rocketmq.apache.org/zh/docs/featureBehavior/04transactionmessage 修改为 `private static boolean doLocalTransaction() {` ` try {` ` Thread.sleep(60000);` ` } catch (InterruptedException e) {` ` throw new RuntimeException(e);` ` }` ` return true;` `}` > boolean localTransactionOk = doLocalTransaction(); if (localTransactionOk) { try { transaction.commit(); log.info("事务提交成功"); } catch (ClientException e) { // 业务可以自身对实时性的要求选择是否重试,如果放弃重试,可以依赖事务消息回查机制进行事务状态的提交 log.error("事务提交失败:", e); } } else { try { transaction.rollback(); log.info("事务回滚完成"); } catch (ClientException e) { // 建议记录异常信息,回滚异常时可以无需重试,依赖事务消息回查机制进行事务状态的提交 log.error("事务回滚失败:", e); } } 60s睡眠期后,正常提交,报错如下,期间没有进行事务回查 org.apache.rocketmq.client.apis.ClientException: [request-id=c936d307-6d8c-477d-a74e-a9eadaa95cd7, response-code=50001] org.apache.rocketmq.proxy.common.ProxyException: cannot found transaction data GitHub link: https://github.com/apache/rocketmq/discussions/6976 ---- This is an automatically sent email for dev@rocketmq.apache.org. To unsubscribe, please send an email to: dev-unsubscr...@rocketmq.apache.org