Wso2 计划的邮件转发处理器在尝试X次传递后未停用

Wso2 计划的邮件转发处理器在尝试X次传递后未停用,wso2,esb,wso2esb,Wso2,Esb,Wso2esb,我正在Red Hat 2.6.32上运行WSO2 ESB 4.5.1和Sun Java SE 1.6.033,使用Apache ActiveMQ 5.5.1作为ESB的持久存储 我正在尝试编写一个流程: 1.从XML文件读取地址信息 2.在MQ队列中保存每个地址 3.让消息处理器从MQ读取并尝试传递到JMS端点 4.如果传递失败,消息处理器将尝试在停用自身之前再进行一次传递 当JMS端点(另一台服务器上运行的另一个ActiveMQ实例)启动时,一切正常,但如果我停止充当JMS端点的ActiveM

我正在Red Hat 2.6.32上运行WSO2 ESB 4.5.1和Sun Java SE 1.6.033,使用Apache ActiveMQ 5.5.1作为ESB的持久存储

我正在尝试编写一个流程:
1.从XML文件读取地址信息
2.在MQ队列中保存每个地址
3.让消息处理器从MQ读取并尝试传递到JMS端点
4.如果传递失败,消息处理器将尝试在停用自身之前再进行一次传递

当JMS端点(另一台服务器上运行的另一个ActiveMQ实例)启动时,一切正常,但如果我停止充当JMS端点的ActiveMQ,消息处理器不会像我预期的那样在一次重试后停用,而是不断尝试从消息存储重新发送相同的消息。出什么事了

以下是我的流程:

代理:

<proxy xmlns="http://ws.apache.org/ns/synapse" name="AddressPxy" transports="vfs" statistics="disable" trace="disable" startOnLoad="true">
<target>
  <inSequence>
     <property name="OUT_ONLY" value="true" scope="default" type="STRING"/>
     <property name="target.endpoint" value="AddressesEP" scope="default" type="STRING"/>
     <log level="full"/>
     <iterate expression="//addresses/address">
        <target>
           <sequence>
              <store messageStore="AddressesMS"/>
           </sequence>
        </target>
      </iterate>
    </inSequence>
  </target>
  <parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
  <parameter name="transport.PollInterval">15</parameter>
  <parameter name="transport.vfs.MoveAfterProcess">file:///home/esb/sent</parameter>
  <parameter name="transport.vfs.FileURI">file:///home/esb/addresses.xml</parameter>
  <parameter name="transport.vfs.MoveAfterFailure">file:///home/esb/fail</parameter>
  <parameter name="transport.vfs.ContentType">application/xml</parameter>
  <parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>
  <description></description>
</proxy>

希望有人能帮助我

在此版本的ESB中,消息处理器中的“max.delivery.attempts”参数有一个小问题。但您可以通过转到源代码视图并将“max.delivery.attempts”更改为“max.delivery.attempts”来实现这一点

<messageStore name="AddressesMS" class="org.wso2.carbon.message.store.persistence.jms.JMSMessageStore" xmlns="http://ws.apache.org/ns/synapse">
  <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
  <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
  <parameter name="store.jms.JMSSpecVersion">1.1</parameter>
  <parameter name="store.jms.cache.connection">false</parameter>
</messageStore> 
<messageProcessor name="AddressesMP" class="org.apache.synapse.message.processors.forward.ScheduledMessageForwardingProcessor" messageStore="AddressesMS" xmlns="http://ws.apache.org/ns/synapse">
  <parameter name="interval">10000</parameter>
  <parameter name="max.delivery.attempts">1</parameter>
</messageProcessor> 
<endpoint xmlns="http://ws.apache.org/ns/synapse" name="AddressesEP">
  <address uri="jms:/Addresses?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&java.naming.provider.url=tcp://rhdev001:61616&transport.jms.DestinationType=queue">
  </address>
</endpoint>
TID: [0] [ESB] [2012-11-07 02:58:07,396] ERROR {org.apache.axis2.transport.jms.JMSSender} -  Unable to create a JMSMessageSender for : null {org.apache.axis2.transport.jms.JMSSender}  
javax.jms.JMSException: Could not connect to broker URL: tcp://rhdev001:61616. Reason: java.net.ConnectException: Connection refused  
TID: [0] [ESB] [2012-11-07 02:58:07,398] ERROR {org.apache.synapse.message.processors.forward.BlockingMessageSender} -  Error sending Message to url : jms:/Addresses?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&java.naming.provider.url=tcp://rhdev001:61616&transport.jms.DestinationType=queue {org.apache.synapse.message.processors.forward.BlockingMessageSender}  
org.apache.axis2.AxisFault: Unable to create a JMSMessageSender for : null  
TID: [0] [ESB] [2012-11-07 02:58:07,399] ERROR {org.apache.synapse.message.processors.forward.ForwardingJob} -  Error Forwarding Message  {org.apache.synapse.message.processors.forward.ForwardingJob}  
java.lang.Exception: Error while Sending Message