web stats
Mirth Community - View Single Post - routeMessage and recursion
View Single Post
Old 04-13-2012, 11:37 PM
ncpunt ncpunt is offline
Mirth Newb
Join Date: Nov 2006
Posts: 6
Question routeMessage and recursion

I have a channel that uses a file reader as source and web service sender as destination. The destination uses persistent queues. In order to have more control over handling specific errors with the web service, I switched off the persistent queue (required for getting status info). After all, the files on disk already act as a queue.

In the postprocessor script I check the web service response. With specific errors I want to resend the message by rerouting it to the current channel:

router.routeMessageByChannelId(channelId, messageObject, false);

But from the Enter/Exit log pattern, I can tell that this results in a recursive call. That is no problem for an error for which let says 3 retries are allowed. But what if the web service is off-line for a longer period of time? Than this solution obviously fails.

In this forum I have seen a solution in which the channel is split in a queued front-end channel and a non-queued backend channel. I guess that calling routeMessage() to route to a different channel does not result in a recursive condition. However, this solution is to complex for maintainability reasons.

As a temporary solution I have created an error channel (javascript reader/writer) that triggers every 60 seconds looking for specific errored messages in the Mirth database. However, this approach may result in an out of order message confition.

Is there really no way to get the actual web service response in a queued channel? Could this be a new feature for a future release?
Reply With Quote