Thanks for the insight.
I have gone ahead to implement the Transactional Client EIP pattern.
However, I noticed that my transaction is redelivered only 4 times. I used
JMSTransactionManager as my transaction manager and my redelivery properties
says maxredelivery is 6. Also, my timetolive is 24hrs, but my failed
transaction is retried just 4 times.
How do I modify the number of time it is redelivered?
See my config below:
<bean id="redeliveryPolicy" class="org.apache.activemq.RedeliveryPolicy">
<property name="initialRedeliveryDelay" value="5000"/>
<property name="maximumRedeliveries" value="6"/>
<property name="useCollisionAvoidance" value="false"/>
<property name="useExponentialBackOff" value="false"/>
</bean>
<bean id="jmsConnectionFactory"
class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="alwaysSessionAsync" value="false"/>
<property name="alwaysSyncSend" value="true"/>
<property
name="brokerURL"><value>${plusone-block-request-queue-url}</value></property>
<property name="clientID" value=""/>
<property name="closeTimeout" value="15000"/>
<property name="copyMessageOnSend" value="true"/>
<property name="disableTimeStampsByDefault" value="false"/>
<property name="dispatchAsync" value="false"/>
<property name="objectMessageSerializationDefered"
value="false"/>
<property name="optimizeAcknowledge" value="false"/>
<property name="optimizedMessageDispatch" value="true"/>
<property name="password" value=""/>
<property name="producerWindowSize" value="0"/>
<property name="statsEnabled" value="false"/>
<property name="useAsyncSend" value="false"/>
<property name="useCompression" value="false"/>
<property name="useRetroactiveConsumer" value="false"/>
<property name="userName" value=""/>
<property name="watchTopicAdvisories" value="true"/>
<property name="sendTimeout" value="0"/>
<property name="redeliveryPolicy" ref="redeliveryPolicy"/>
</bean>
<bean id="jmsTransactionManager"
class="org.springframework.jms.connection.JmsTransactionManager">
<property name="connectionFactory" ref="jmsConnectionFactory" />
</bean>
<bean id="jmsConfig"
class="org.apache.camel.component.jms.JmsConfiguration">
<property name="connectionFactory" ref="jmsConnectionFactory"/>
<property name="transactionManager" ref="jmsTransactionManager"/>
<property name="transacted" value="true"/>
<property name="concurrentConsumers" value="2"/>
<property name="timeToLive" value="86400000"/>
<property name="deliveryPersistent" value="true"/>
<property name="explicitQosEnabled" value="true"/>
<property name="priority" value="9"/>
<property name="transactedInOut" value="true"/>
</bean>
<bean id="PROPAGATION_REQUIRED"
class="org.apache.camel.spring.spi.SpringTransactionPolicy">
<property name="transactionManager" ref="jmsTransactionManager"/>
<property name="propagationBehaviorName"
value="PROPAGATION_REQUIRED"/>
</bean>
<bean id="jms" class="org.apache.camel.component.jms.JmsComponent">
<property name="configuration" ref="jmsConfig"/>
</bean>
What else do I watchout for?
kr.
Claus Ibsen-2 wrote:
>
> You can use transactions - ack mode TRANSACTED
>
> And then you need to setup a TX manager.
>
> Chapter 9 in the Camel in Action book. (and find examples in the
> source code for the book)
> Or check the Transactional Client EIP pattern at Camel wiki.
>
>
>
> On Wed, Apr 14, 2010 at 2:50 PM, lekkie <[email protected]> wrote:
>>
>> I have this scenario where I 'd like to keep a message in the queue until
>> the
>> flow in my route has returned.
>>
>> See explanation below:
>>
>> <route>
>> <from uri="jms:${queue}"/>
>> <to uri="nmr:Webservice"/>
>> </route>
>>
>> I'd like to finish processing <to uri="nmr:Webservice"/> - which means
>> the
>> message is successfully sent to nmr:Webservice - before an ack is sent to
>> my
>> message broker (jms:${queue}).
>>
>> What acknowledgement mode will ensure an ack is only sent after camel
>> application returns from the <to uri="nmr:Webservice"/> call?
>>
>> In the case of an exception, I believe an ack will not be sent to the
>> broker. Is my assumption correct?
>>
>>
>> kr.
>> --
>> View this message in context:
>> http://old.nabble.com/JMS-Message-Acknowledgement---Persistence-in-Camel-tp28242166p28242166.html
>> Sent from the Camel - Users (activemq) mailing list archive at
>> Nabble.com.
>>
>>
>
>
>
> --
> Claus Ibsen
> Apache Camel Committer
>
> Author of Camel in Action: http://www.manning.com/ibsen/
> Open Source Integration: http://fusesource.com
> Blog: http://davsclaus.blogspot.com/
> Twitter: http://twitter.com/davsclaus
>
>
--
View this message in context:
http://old.nabble.com/JMS-Message-Acknowledgement---Persistence-in-Camel-tp28242166p28245266.html
Sent from the Camel - Users (activemq) mailing list archive at Nabble.com.