[Design of JBoss ESB] - Re: Failover MessageRedelivery
by kurt.stam@jboss.com
Well this should not happen between actions in the pipeline, but only when routing between services. The code base is now refactored (well almost) to always use the ServiceInvoker for sending messages between services. Now look at the code in asyncDelivery:
| message.getProperties().setProperty(MessageStore.CLASSIFICATION, MessageStore.CLASSIFICATION_RDLVR);
| message.getProperties().setProperty(DELIVER_TO, service);
| deliverToDeadLetterService(message);
|
If delivery fails it sets the TO service in a property as well as telling it to store it in the MessageStore under classification RDLVR.
Now the Redeliver Service periodically wakes up and tries to redeliver all the messages in the RDLVR classification. It uses the setting for the TO service to figure out where to send it. Note that this is bound to the service address and not the EPR. For each retry it will pull the latest EPR information for that service.
Going to work on making the maxRedeliveries configurable now :).
Does that help?
--Kurt
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4074005#4074005
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4074005
18 years, 7 months
[Design of JBoss ESB] - Re: Failover MessageRedelivery
by beve
Hi Kurt,
this looks nice! :)
We are going to use this but I'm a little bit confused about how the messages that we want redelivered should be added to the MessageStore.
We have actions pipelines and when an error occurs and it makes sense to attempt to redeliver, do we simply add the message to the store using a classification name for the pipeline in question.
And then configure a redelivery service like this:
| <service category="JBossESB-Internal" name="RedeliverService" description="Scheduled Service to Redeliver Messages">
| <listeners>
| <scheduled-listener name="redeliver-scheduled-listener" scheduleidref="5-min-trigger" composer="org.jboss.soa.esb.schedule.RedeliverEventMessageComposer" />
| </listeners>
| <actions>
| <action name="RedeliverMessagesAction" class="org.jboss.soa.esb.actions.MessageRedeliverer">
| <property name="classification" value="process1"/>
| </action>
| </actions>
| </service>
|
Is this the way we should be doing this?
Thanks,
Daniel
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4073993#4073993
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4073993
18 years, 7 months