向activemqMuleESB发送jms时出现Bitronix异常



我正在处理一个MuleESB项目,在该项目中,我从ActiveMQ接收消息,其中包含Base64编码的图片,当我处理完消息后,我试图将其发送到另一个队列,但随后我收到以下错误。有人知道为什么会发生这种异常吗:

错误2016-03-11 14:00:24168[Active_MQ.scheduler.04]org.mule.exception.CatchMessagingException策略:********************************************************************************消息:事务已标记为仅回滚(bitronix.tm.internal.BitronixRollbackException)类型
:org.mule.api.transaction.TransactionException代码
:mule_ERROR--2 JavaDoc:http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/transaction/TransactionException.html********************************************************************************异常堆栈为:1.事务已标记为仅回滚(bitronix.tm.internal.BitronixRollbackException)
bitronix.tm。BitronixTransaction:116(null)2.事务已标记为仅回滚(bitronix.tm.internal.BitronixRollbackException)(org.mule.api.transaction.TransactionException)
org.mule.transaction.XaTransaction:315(http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/transaction/TransactionException.html)********************************************************************************根异常堆栈跟踪:bitronix.tm.internal.BitronixRollbackException:事务已仅在标记为回滚bitronix.tm.BitronixTransaction.lislandResource(BitronixTransaction.java:116)在com.mulesoft.mule.bti.transaction.TransactionWrapper.listiResource(TransactionWrapper.java:53)在org.mule.transaction.XaTransaction.silalResource(XaTransaction.java:311)在com.mulesoft.mule.bti.jms.BitronixSessionInvocationHandler.resolit(BitronixSessionInvocationHandler.java:110)位于sun.reflect.GeneratedMethodAccessor123.reinvoke(未知源)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)在java.lang.reflect.Method.ioke(Method.java:606)com.mulesoft.mule.bti.jms.BitronixSessionInvocationHandler.invoke(BitronixSessionInvocationHandler.java:54)网址:com.sun.proxy.$Proxy116.登记(未知来源)org.mule.transaction.XaTransaction.bindResource(XaTransaction.java:287)在org.mule.transport.AbstractConnector.getTransactionalResource(AbstractConnector.java:2041)在org.mule.transport.jms.transformers.AbstractJmsTransformer.getSession(AbstractJmsTransformer.java:199)在org.mule.transport.jms.transformers.AbstractJmsTransformer.transformToMessage(AbstractJmsTransformer.java:65)在org.mule.transport.jms.transformers.ObjectToJMSMessage.transformMessage(ObjectToJMSMMessage.java:54)在org.mule.transformer.AbstractMessageTransformer.transform.(AbstractMessage transformer.java:141)在org.mule.transformer.AbstractMessageTransformer.transform.(AbstractMessage transformer.java:89)在org.mule.DefaultMuleMessage.transformMessage(DefaultMuleMMessage.java:1602)在org.mule.DefaultMuleMessage.applyAllTransformers(DefaultMuleMMessage.java:1509)在org.mule.DefaultMuleMessage.applyTransformers(DefaultMuleMMessage.java:1487)在org.mule.DefaultMuleMessage.applyTransformers(DefaultMuleMMessage.java:1470)在org.mule.transport.AbstractMessageDispatcher.applyOutboundTransformers(AbstractMessageDisptcher.java:205)在org.mule.transport.jms.JmsMessageDispatcher.applyOutboundTransformers(JmsMessageDispatcher.java:506)在org.mule.transport.AbstractMessageDispatcher.process(AbstractMessageDisptcher.java:71)在org.mule.transport.AbstractConnector$DispatcherMessageProcessor.process(AbstractConnector.java:2662)在org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.exexecute在org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:107)在org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44)在org.mule.processor.BlockingProcessorExecution.executeNext(BlockingProcessorExecutor.java:94)在org.mule.processor.BlockingProcessorExecution.execute(BlockingProcessorExecutior.java:56)在org.mule.processor.AncInterceptingMessageProcessor.produle(AsyncInterceptionMessageProcessor.java:102)在org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.exexecute在org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:107)在org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44)在org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.exexecute在org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:107)在org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44)在org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.exexecute在org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:107)在org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44)在org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.exexecute在org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44)在org.mule.processor.BlockingProcessorExecution.executeNext(BlockingProcessorExecutor.java:94)在org.mule.processor.BlockingProcessorExecution.execute(BlockingProcessorExecutior.java:56)在org.mule.endpoint.outbound.OutboundResponsePropertiesMessageProcessor.process(OutboundResponse PropertiesMessage Processor.java:35)在org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.exexecute在org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.ja…

我假设您的消息处理是成功的(它没有抛出任何异常)。因此,一个潜在的原因可能是交易超时。我建议您启用bitronix事务日志(可能是通过将入站队列的并发接收方计数减少到一,这样您的日志就不会那么混乱)。

此外,请回答以下问题:

1。所有消息都会出现此异常?还是间歇性的?2.处理入站消息需要多长时间?3.您的交易超时是多少?4.你用的是哪个版本的骡子?

我之所以这么问,是因为我遇到了非常相似的事情,并找到了根本原因。如果我能得到以上问题的答案,我可以在进一步的更新中更加具体。

更新:

这很可能是根本原因。看一看

https://www.mulesoft.org/jira/browse/MULE-8964

更新

如果您的许可证是EE,v3.7.3中提供了该问题的修复程序。这是他们为修复该问题而添加的内容。

https://github.com/mulesoft/mule/commit/1b1bfafda3e8dc16b596a150fc2a8b518382cd20#diff-1

以下是问题摘要:

Mule轮询JMS消息,轮询超时与配置的xa事务超时相同(默认值:60秒)。因此,轮询线程等待消息到达队列的时间最多为60秒。XA事务在轮询开始时开始。考虑一个场景,其中轮询线程在非常接近轮询超时的时候接收到消息;比如在第59秒(XA事务在这里接近超时,因为它是在启动轮询时开始的)。若消息处理再花费5秒,XA事务的总时间将是64秒(59+5)。在处理完成之前,事务管理器会终止事务,因为它超过了XA超时。

相关内容

  • 没有找到相关文章

最新更新