繁体   English   中英

WSO2 ESB 4.8.1作为JMS使用者超时

[英]timeout of WSO2 ESB 4.8.1 as a JMS Consumer

我有这里描述的代理

代理的传输是JMS。 代理从jms提供消息,然后通过http将消息发送到后端。 在后端回答之后,代理将回答发送回JMS。

一切正常。

有时后端处理消息的时间超过30秒。 在这种情况下,代理无法发送回响应。

wso2carbon.log包含

TID:[0] [ESB] [2015-04-28 09:32:42,250]错误{org.apache.axis2.transport.jms.JMSSender}-无法为org.apache.axis2.transport创建JMSMessageSender。 jms.JMSOutTransportInfo@3b486731 {org.apache.axis2.transport.jms.JMSSender} org.apache.activemq.DestinationDoesNotExistException:目标temp-queue:// ID:debcat-ng.hq.cinvest.chel.su-48732- 1429525869210-13397:1:1不存在。
在arg.apache.activemq.broker.region.AbstractRegion.addDestination(AbstractRegion.java:148)在org.apache.activemq.broker.region.RegionBroker.addDestination(RegionBroker.java:277)在org.apache.activemq.broker org.apache.activemq.broker.Broker.BrokerFilter.addDestination(BrokerFilter.addDestination(BrokerFilter.java:145)上的org.apache.activemq.advisory.AdvisoryBroker.addDestination(AdvisoryBroker.java:174)上的.BrokerFilter.addDestination(BrokerFilter.java:145) org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)位于org.apache.activemq.broker.MutableBrokerFilter.addDestination(MutableBrokerFilter.java:151)位于org.apache.activemq.broker.region.RegionBroker。 org.apache.activemq.broker.BrokerFilter.addProducer(BrokerFilter.java:93)上的org.apache.activemq.broker.jmx.ManagedRegionBroker.addProducer(ManagedRegionBroker.java:252)上的addProducer(RegionBroker.java:324) org.apache.activemq.broker.CompositeDestinationBro的.apache.activemq.advisory.AdvisoryBroker.addProducer(AdvisoryBroker.java:162) org.apache.activemq.broker.MutableBrokerFilter.addProducer(MutableBrokerFilter.java:99)的org.apache.activemq.broker.BrokerFilter.addProducer(BrokerFilter.java:93)的ker.addProducer(CompositeDestinationBroker.java:56) org.apache.activemq.command.ProducerInfo.visit(ProducerInfo.java:105)上的.apache.activemq.broker.TransportConnection.processAddProducer(TransportConnection.java:566)在org.apache.activemq.broker.TransportConnection.service(TransportConnection .java:329),位于org.apache.activemq.broker.TransportConnection $ 1.onCommand(TransportConnection.java:184),位于org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50),位于org.apache.activemq org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:288)上的.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)在org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83 )org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpT org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:196)处的ransport.java:214)java.lang.Thread.run(Thread.java:662)处的TID:[0] [ESB] [2015-04-28 09:32:42,253]错误{org.apache.synapse.core.axis2.Axis2Sender}-发回邮件的意外错误{org.apache.synapse.core.axis2.Axis2Sender} org.apache.axis2 .AxisFault:无法为org.apache.axis2上的org.apache.axis2.transport.base.AbstractTransportSender.handleException(AbstractTransportSender.java:226)上的org.apache.axis2.transport.jms.JMSOutTransportInfo@3b486731创建JMSMessageSender org.apache.axis2.transport.base.AbstractTransportSender.invoke(AbstractTransportSender.java:119)上的.transport.jms.JMSSender.sendMessage(JMSSender.java:139)在org.apache.axis2.engine.AxisEngine.send(AxisEngine) .java:442),位于org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:163),位于org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:321)。 apache.synapse.mediators.built org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77)中的SendMediator.mediate(SendMediator.java:94),org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:47)中在org.apache.synapse的org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:268)的org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131)处。 org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:170)上的.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:488)在org.apache.axis2.engine.AxisEngine.receive(AxisEngine。 :180),位于org.apache.axis2,位于ru.chelinvest.wso2esb.transport.XGateSender.sendMessage(XGateSender.java:205),位于org.apache.axis2.transport.base.AbstractTransportSender.handleIncomingMessage(AbstractTransportSender.java:148)。 org.apac上的transport.base.AbstractTransportSender.invoke(AbstractTransportSender.java:112) he.axis2.engine.AxisEngine $ TransportNonBlockingInvocationWorker.run(AxisEngine.java:626)在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor。 java:615),位于java.lang.Thread.run(Thread.java:724)

关键是:

org.apache.activemq.DestinationDoesNotExistException:目标临时队列:// ID:debcat-ng.hq.cinvest.chel.su-48732-1429525869210-13397:1:1不存在。

发回邮件时发生意外错误{org.apache.synapse.core.axis2.Axis2Sender}

无法为org.apache.axis2.transport.jms.JMSOutTransportInfo@3b486731创建JMSMessageSender

为什么在处理消息的时间超过30秒时会发生这种情况? 如何延长该超时时间?

在github上找到了类JMSSender 显然,我应该定义一个属性JMS_WAIT_REPLY。 我已经在发送方的端点中定义了它。 临时队列的响应超时时间已延长。 这是我发送的端点:

<endpoint xmlns="http://ws.apache.org/ns/synapse" name="xgate">
   <address uri="jms:/....">
      <suspendOnFailure>
         <progressionFactor>1.0</progressionFactor>
      </suspendOnFailure>
      <markForSuspension>
         <retriesBeforeSuspension>0</retriesBeforeSuspension>
         <retryDelay>0</retryDelay>
      </markForSuspension>
      <timeout>
         <duration>60000</duration>
         <responseAction>fault</responseAction>
      </timeout>
   </address>
   <property name="CHARACTER_SET_ENCODING" value="Windows-1251" scope="axis2"/>
   <property name="CONNECTION_TIMEOUT" value="120000" scope="default"/>
   <property name="messageType" value="application/xml" scope="axis2"/>
   <property name="JMS_WAIT_REPLY" value="60000" scope="axis2"/>
   <property name="SO_TIMEOUT" value="120000" scope="default"/>
</endpoint>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM