簡體   English   中英

如何在Mule ESB中保留包含Java消息的隊列?

[英]How to persist a queue which contains Java Message in Mule ESB?

我在我的Mule應用程序中使用JMS端點和Apache ActiveMQ(我遵循了一個教程,但是不確定我是否依靠JMS作為端點做正確的事情)

<jms:activemq-connector  name="jms-connector" brokerURL="${BrokerURL}" disableTemporaryReplyToDestinations="true" specification="1.1"/>

<jms:endpoint connector-ref="jms-connector" exchange-pattern="one-way" name="UnsortedOrders" queue="UnsortedOrders"/>                
<jms:endpoint connector-ref="jms-connector" exchange-pattern="one-way" name="DestinationEMC" queue="DestinationEMC" />                
<jms:endpoint connector-ref="jms-connector" exchange-pattern="one-way" name="DestinationOriginal" queue="DestinationOriginal"/>  

在這一點上,我需要自動存儲(持久化在磁盤上)與之關聯的隊列,以使電源故障和其他故障不會殺死未完成的永恆過程,並且只要m子再次出現,該過程就會繼續。

我以前使用過帶有標記的ObjectStore,但是我不知道如何將其與JMS端點隊列綁定。 這就是我之前使用ObjectStore的方式:

    <spring:bean id="objectStore" class="org.mule.util.store.QueuePersistenceObjectStore"/>




    <until-successful objectStore-ref="objectStore" maxRetries="${MaximumRetry}" secondsBetweenRetries="${RetryInterval}">
        <http:outbound-endpoint address="${ECMURL}" exchange-pattern="one-way">             
            <transformer ref="contentTypeTextXML"/>
        </http:outbound-endpoint>
    </until-successful> 

您不能將對象存儲綁定到JMS端點。 那就是-如果您不重寫ObjectStore實現。

但是,您可以使用JMS持久性來實現相同的目的。 您必須使用交易。

<jms:inbound-endpoint queue="Destination.EMC" connector-ref="jms-connector">
    <jms:transaction action="ALWAYS_BEGIN"/>
</jms:inbound-endpoint>

<http:outbound-endpoint address="${ECMURL}" exchange-pattern="one-way">             
   <transformer ref="contentTypeTextXML"/>
</http:outbound-endpoint>

因此,如果將消息放入隊列,它將嘗試發布到HTTP,如果失敗,它將回滾到隊列並重試。 進行所有嘗試並且調用仍然失敗后,該消息將回滾到一個死信隊列,默認為ActiveMQ.DLQ

要控制將重試消息的次數以及重試之間的延遲,可以使用重新交付策略

您可以將重新交付策略詳細信息添加到代理URL。

tcp://localhost:61616?jms.redeliveryPolicy.maximumRedeliveries=${MaximumRetry}&jms.redeliveryPolicy.redeliveryDelay=${RetryIntervalInMilliseconds}

在Mule ESB 博客上可以找到有關如何將ActiveMQ重新交付與Mule ESB一起使用的很好的解釋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM