Hi , Thank you for your feedback. For the database connection string with multiple IPs, you can change it to jdbc:mysql:loadbalance:// 192.168.10.41:19131,192.168.10.42:19131/assets
Warm regards, Ji Min 陈欢 <[email protected]> 于2024年4月29日周一 11:30写道: > 陈欢 > [email protected] > > > > 开发者,您好! > 本人在学习使用seata(AT模式)的过程中出现了一个奇怪的问题,目前没有找到解决办法,想请您帮助看一下。 > > > 问题描述如下: > Spring Cloud Alibaba 2.2.6.RELEASE + Spring Boot 2.3.2.RELEASE + seata > 1.5.2 + mysql8.0 > > > 有若干个服务,服务A、服务B、服务C,并配置了seata 1.5.2,且正常使用,使用AT模式。 > > > 在使用MySql集群时候出现问题,问题出现在服务A、服务B、服务C使用mysql集群连接串时候,全局事务出现如下错误, > > > 10:52:40.627 ERROR --- [Pool.commonPool-worker-11] > io.seata.server.coordinator.DefaultCore : Committing branch > transaction exception: BR:4323970364623622157/4323970364623622146 > No channel is available for resource[jdbc:mysql://192.168.10.41:19131, > 192.168.10.42:19131/assets] > ==> > java.lang.RuntimeException: rm client is not connected. dbkey:jdbc:mysql:// > 192.168.10.41:19131, > 192.168.10.42:19131/assets,clientId:assets:192.168.10.41:55934 > at > io.seata.core.rpc.netty.AbstractNettyRemotingServer.sendSyncRequest(AbstractNettyRemotingServer.java:69) > at > io.seata.server.coordinator.AbstractCore.branchCommitSend(AbstractCore.java:175) > at > io.seata.server.coordinator.AbstractCore.branchCommit(AbstractCore.java:165) > at > io.seata.server.coordinator.DefaultCore.lambda$doGlobalCommit$1(DefaultCore.java:204) > at > io.seata.server.session.SessionHelper.forEach(SessionHelper.java:244) > at > io.seata.server.coordinator.DefaultCore.doGlobalCommit(DefaultCore.java:192) > at > io.seata.server.coordinator.DefaultCoordinator.lambda$handleAsyncCommitting$4(DefaultCoordinator.java:441) > at > io.seata.server.session.SessionHelper.lambda$forEach$0(SessionHelper.java:223) > at > java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) > at > java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384) > at > java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) > at > java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291) > at > java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731) > at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) > at > java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1067) > at > java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1703) > at > java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:172) > <== > > > 看错误是在操作分支事务提交的时候,获取不到Channel,无法建立连接,在官网和官网的博客都没有查到类似问题,所以想麻烦您指点一下,谢谢!
