Shuttle / shuttle-esb

Documentation for the Shuttle.Esb free open-source .NET/Core enterprise service bus.
http://shuttle.github.io/shuttle-esb/
127 stars 44 forks source link

Messages always falls to error queue when sending from Outbox and the destination is not available #51

Closed ltvan closed 9 years ago

ltvan commented 9 years ago

There is a configuration for DurationToIgnoreOnFailure on OutboxPipeline but the DeferTransportMessageObserver is not included. This makes the outbox feature less tolerant with network failure.

eben-roux commented 9 years ago

Well, not really ;)

It does have an impact on the processing of the outbox queue but the DurationToIgnoreOnFailure is not tied to a deferred queue at all. When there is no deferred queue (such as with the outbox) the message is returned to the same queue on error and marked to ignore until a certain future date as determined by DurationToIgnoreOnFailure. After the configured number of retries the message will be moved to the error queue.

ltvan commented 9 years ago

I'm not saying about the deferred queue. The DeferTransportMessageObserver is about to check if the IgnoreTillDate is due and put it back to the work queue. Without it, the message will be retried immediately no matter how we configure the DurationToIgnoreOnFailure.

eben-roux commented 9 years ago

Ah, I see. I misunderstood you :)

Thank you so much for picking up on this. It will be included in the next release.

https://github.com/Shuttle/shuttle-esb-core/commit/5ddadf406884ded40e1bbdb84de5c4db10d8ef90