亦寒网络 2022-12-27 15:13
浏览 11
已结题

MongoWriteException,事务

定时任务中出现MongoWriteException
mongoTemplate.upsert时出现事务问题, 一年了才出现一次
2022-12-24 08:01:07.647 ERROR [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#0-1] RefreshBiConsumer Cannot perform operations on transaction 31 on session b9b4372d-672e-4ec5-86cb-cfcc00af95f9 - h2bWdsUhBq
7rD4bV2W3xOzISU2J3H5/7iNpJwm6m0cI= because a different transaction -1 is now active.; nested exception is com.mongodb.MongoWriteException: Cannot perform operations on transaction 31 on session b9b4372d-672e-4ec5-86cb-cfcc
00af95f9 - h2bWdsUhBq7rD4bV2W3xOzISU2J3H5/7iNpJwm6m0cI= because a different transaction -1 is now active.
org.springframework.dao.DataIntegrityViolationException: Cannot perform operations on transaction 31 on session b9b4372d-672e-4ec5-86cb-cfcc00af95f9 - h2bWdsUhBq7rD4bV2W3xOzISU2J3H5/7iNpJwm6m0cI= because a different transa
ction -1 is now active.; nested exception is com.mongodb.MongoWriteException: Cannot perform operations on transaction 31 on session b9b4372d-672e-4ec5-86cb-cfcc00af95f9 - h2bWdsUhBq7rD4bV2W3xOzISU2J3H5/7iNpJwm6m0cI= becau
se a different transaction -1 is now active.
        at org.springframework.data.mongodb.core.MongoExceptionTranslator.translateExceptionIfPossible(MongoExceptionTranslator.java:117) ~[spring-data-mongodb-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.springframework.data.mongodb.core.MongoTemplate.potentiallyConvertRuntimeException(MongoTemplate.java:2874) ~[spring-data-mongodb-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:568) ~[spring-data-mongodb-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.springframework.data.mongodb.core.MongoTemplate.doUpdate(MongoTemplate.java:1625) ~[spring-data-mongodb-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.springframework.data.mongodb.core.MongoTemplate.upsert(MongoTemplate.java:1530) ~[spring-data-mongodb-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at com.ziyun.cloud.task.service.MachineDataArchieService.lambda$generateStatusStatisticsReport$11(MachineDataArchieService.java:456) ~[classes!/:1.2.9-SNAPSHOT]
        at java.util.ArrayList.forEach(ArrayList.java:1259) ~[?:1.8.0_281]
        at com.ziyun.cloud.task.service.MachineDataArchieService.generateStatusStatisticsReport(MachineDataArchieService.java:345) ~[classes!/:1.2.9-SNAPSHOT]
        at com.ziyun.cloud.task.service.MachineDataArchieService.lambda$execute$0(MachineDataArchieService.java:134) ~[classes!/:1.2.9-SNAPSHOT]
        at java.util.ArrayList.forEach(ArrayList.java:1259) ~[?:1.8.0_281]
        at com.ziyun.cloud.task.service.MachineDataArchieService.execute(MachineDataArchieService.java:132) ~[classes!/:1.2.9-SNAPSHOT]
        at com.ziyun.cloud.task.service.MachineDataArchieService$$FastClassBySpringCGLIB$$9f9c3783.invoke(<generated>) ~[classes!/:1.2.9-SNAPSHOT]
        at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.2.15.RELEASE.jar!/:5.2.15.RELEASE]
        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688) ~[spring-aop-5.2.15.RELEASE.jar!/:5.2.15.RELEASE]
        at com.ziyun.cloud.task.service.MachineDataArchieService$$EnhancerBySpringCGLIB$$a3a54a16.execute(<generated>) ~[classes!/:1.2.9-SNAPSHOT]
        at com.ziyun.cloud.task.mq.RefreshBiConsumer.process(RefreshBiConsumer.java:73) ~[classes!/:1.2.9-SNAPSHOT]
        at sun.reflect.GeneratedMethodAccessor443.invoke(Unknown Source) ~[?:?]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_281]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_281]
        at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:171) ~[spring-messaging-5.2.15.RELEASE.jar!/:5.2.15.RELEASE]
        at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:120) ~[spring-messaging-5.2.15.RELEASE.jar!/:5.2.15.RELEASE]
        at org.springframework.amqp.rabbit.listener.adapter.HandlerAdapter.invoke(HandlerAdapter.java:53) ~[spring-rabbit-2.2.18.RELEASE.jar!/:2.2.18.RELEASE]
        at org.springframework.amqp.rabbit.listener.adapter.MessagingMessageListenerAdapter.invokeHandler(MessagingMessageListenerAdapter.java:239) ~[spring-rabbit-2.2.18.RELEASE.jar!/:2.2.18.RELEASE]
        at org.springframework.amqp.rabbit.listener.adapter.MessagingMessageListenerAdapter.invokeHandlerAndProcessResult(MessagingMessageListenerAdapter.java:191) ~[spring-rabbit-2.2.18.RELEASE.jar!/:2.2.18.RELEASE]
        at org.springframework.amqp.rabbit.listener.adapter.MessagingMessageListenerAdapter.onMessage(MessagingMessageListenerAdapter.java:137) ~[spring-rabbit-2.2.18.RELEASE.jar!/:2.2.18.RELEASE]
        at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:1630) ~[spring-rabbit-2.2.18.RELEASE.jar!/:2.2.18.RELEASE]
        at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.actualInvokeListener(AbstractMessageListenerContainer.java:1549) ~[spring-rabbit-2.2.18.RELEASE.jar!/:2.2.18.RELEASE]
        at sun.reflect.GeneratedMethodAccessor442.invoke(Unknown Source) ~[?:?]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_281]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_281]
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344) [spring-aop-5.2.15.RELEASE.jar!/:5.2.15.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198) [spring-aop-5.2.15.RELEASE.jar!/:5.2.15.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) [spring-aop-5.2.15.RELEASE.jar!/:5.2.15.RELEASE]
        at org.springframework.retry.interceptor.RetryOperationsInterceptor$1.doWithRetry(RetryOperationsInterceptor.java:91) [spring-retry-1.2.5.RELEASE.jar!/:?]
        at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:287) [spring-retry-1.2.5.RELEASE.jar!/:?]
        at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:180) [spring-retry-1.2.5.RELEASE.jar!/:?]
        at org.springframework.retry.interceptor.RetryOperationsInterceptor.invoke(RetryOperationsInterceptor.java:115) [spring-retry-1.2.5.RELEASE.jar!/:?]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) [spring-aop-5.2.15.RELEASE.jar!/:5.2.15.RELEASE]
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) [spring-aop-5.2.15.RELEASE.jar!/:5.2.15.RELEASE]
        at org.springframework.amqp.rabbit.listener.$Proxy285.invokeListener(Unknown Source) [?:2.2.18.RELEASE]
        at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:1537) [spring-rabbit-2.2.18.RELEASE.jar!/:2.2.18.RELEASE]
        at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:1528) [spring-rabbit-2.2.18.RELEASE.jar!/:2.2.18.RELEASE]
        at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.executeListener(AbstractMessageListenerContainer.java:1472) [spring-rabbit-2.2.18.RELEASE.jar!/:2.2.18.RELEASE]
        at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.doReceiveAndExecute(SimpleMessageListenerContainer.java:977) [spring-rabbit-2.2.18.RELEASE.jar!/:2.2.18.RELEASE]
        at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.receiveAndExecute(SimpleMessageListenerContainer.java:923) [spring-rabbit-2.2.18.RELEASE.jar!/:2.2.18.RELEASE]
        at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.access$1600(SimpleMessageListenerContainer.java:83) [spring-rabbit-2.2.18.RELEASE.jar!/:2.2.18.RELEASE]
        at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.mainLoop(SimpleMessageListenerContainer.java:1298) [spring-rabbit-2.2.18.RELEASE.jar!/:2.2.18.RELEASE]
        at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1204) [spring-rabbit-2.2.18.RELEASE.jar!/:2.2.18.RELEASE]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_281]
Caused by: com.mongodb.MongoWriteException: Cannot perform operations on transaction 31 on session b9b4372d-672e-4ec5-86cb-cfcc00af95f9 - h2bWdsUhBq7rD4bV2W3xOzISU2J3H5/7iNpJwm6m0cI= because a different transaction -1 is n
ow active.
        at com.mongodb.client.internal.MongoCollectionImpl.executeSingleWriteRequest(MongoCollectionImpl.java:1015) ~[mongodb-driver-sync-4.0.6.jar!/:?]
        at com.mongodb.client.internal.MongoCollectionImpl.executeUpdate(MongoCollectionImpl.java:992) ~[mongodb-driver-sync-4.0.6.jar!/:?]
        at com.mongodb.client.internal.MongoCollectionImpl.updateOne(MongoCollectionImpl.java:577) ~[mongodb-driver-sync-4.0.6.jar!/:?]
        at org.springframework.data.mongodb.core.MongoTemplate.lambda$doUpdate$19(MongoTemplate.java:1652) ~[spring-data-mongodb-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:566) ~[spring-data-mongodb-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        ... 46 more

未找到具体原因
希望找到原因并规避这一问题
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 1月4日
    • 创建了问题 12月27日

    悬赏问题

    • ¥20 c#使用NPOI向word表格中添加字段导致word有概率警告不可识别
    • ¥15 怎么使用hxe16进制编码器修改视频数据和图片一样!求教程!
    • ¥15 怎么用python模拟光的折射,反射,和全反射
    • ¥15 python打印机打印word和PDF文件出来的是乱码
    • ¥15 求达梦8数据库安装包
    • ¥15 YOLOv8模型网络结构更改后报错
    • ¥15 深度学习中梯度为None
    • ¥15 zynq烧写程序到flash后不运行
    • ¥15 裸板ESD问题的思考与实验
    • ¥15 electron+python