0

我已经完成了axis2文件中的所有更改并将jar文件放到了lib中我的消息过程工作正常并且当我向代理发送请求时也进行存储它没有处理我的配置文件

<proxy xmlns="http://ws.apache.org/ns/synapse" name="Message" transports="https,http" statistics="disable" trace="disable" startOnLoad="true">
   <target>
      <inSequence>
         <log level="full"/>
         <property name="faisal" value="faisal" scope="default" type="STRING"/>
         <property name="target.endpoint" value="JmsChecking" scope="default" type="STRING"/>
         <store messageStore="faisal5"/>
      </inSequence>
      <outSequence>
         <log level="full"/>
      </outSequence>
   </target>
   <description></description>
</proxy

和消息存储是

<messageStore name="faisal5" 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.destination">faisal5_Queue</parameter>
   <parameter name="store.jms.JMSSpecVersion">1.1</parameter>
   <parameter name="store.jms.cache.connection">false</parameter>
</messageStore>

和消息处理器

<messageProcessor name="faisal" class="org.apache.synapse.message.processors.forward.ScheduledMessageForwardingProcessor" messageStore="faisal5" xmlns="http://ws.apache.org/ns/synapse">
   <parameter name="interval">1000</parameter>
   <parameter name="max.delivery.attempts">4</parameter>
</messageProcessor>

和端点定义这是这样的及其条目

<endpoint xmlns="http://ws.apache.org/ns/synapse" name="JmsChecking">
   <address uri="http://localhost:8282/services/JmscheckingEndpoint" format="soap11">
      <suspendOnFailure>
         <progressionFactor>1.0</progressionFactor>
      </suspendOnFailure>
      <markForSuspension>
         <retriesBeforeSuspension>0</retriesBeforeSuspension>
         <retryDelay>0</retryDelay>
      </markForSuspension>
   </address>
</endpoint>

端点包含日志值代理

proxy xmlns="http://ws.apache.org/ns/synapse" name="JmscheckingEndpoint" transports="https,http" statistics="disable" trace="disable" startOnLoad="true">
   <target>
      <inSequence>
         <log level="custom">
            <property name="Message" value="JMs working fine"/>
            <property name="value" expression="//mail/text()"/>
         </log>
      </inSequence>
      <outSequence>
         <send/>
      </outSequence>
   </target>
   <description></description>
</proxy>

现在我正在发送我的请求,这个日志值是这样打印的

[2013-07-25 11:42:03,039]  INFO - LogMediator Message = JMs working fine, value = faisal.shaik@youtility.in
[2013-07-25 11:42:03,039]  INFO - LogMediator Message = JMs working fine, value = faisal.shaik@youtility.in
[2013-07-25 11:42:03,039]  INFO - LogMediator Message = JMs working fine, value = faisal.shaik@youtility.in
[2013-07-25 11:42:03,039]  INFO - LogMediator Message = JMs working fine, value = faisal.shaik@youtility.in

以及消息进程正在停用。如果我再发送一个请求,它只是存储其未处理的消息进程的 bcoz 处于停用状态此 JMS 仅像这样工作我的场景是如果端点可用,我将收到请求消息将传递和删除同样,如果端点不可用,消息将重试最大提及次数,即使端点不可用,它也会存储在消息存储中这个参数的用途是什么,请你解释一下我点击了这个链接http://docs.wso2.org /wiki/display/ESB460/Store+and+Forward+Using+JMS+Message+Stores 我在哪里可以找到这个 faisal5_Queue 存储点是否作为文件夹存在

   <parameter name="store.jms.destination">faisal5_Queue</parameter>
4

1 回答 1

1

不,它不会创建文件夹。当您使用 faisal5_Queue 提到“store.jms.destination”时,wso2 esb 将在您的消息代理(在您的情况下为 ActiveMQ)中使用您指定的名称“faisal5_Queue”创建一个队列。如果您没有明确提及,WSO2 esb 将使用“YourMessageStoreName_Queue”创建一个队列

您可以进一步参考这些博客以了解“消息存储”和“消息处理器”的行为

http://vanjikumaran.blogspot.com/2013/08/jms-store-and-jms-processor-behavior.html http://vanjikumaran.blogspot.com/2013/08/jms-messagenstore-and-jms-message .html http://vanjikumaran.blogspot.com/2013/08/jms-messagen-store-and-jms-message.html

于 2013-08-14T17:59:59.713 回答