I have created a Topic using MSMQ.
The publisher is connected to WebSphere MQ Adapter.
The subscriber is connected to WCF service End point. A process is created to convert message to a SOAP message.
When WebSphere MQ Adapter send a message, subscriber send that to WCF service and message disappears from MSMQ.
When WCF service is not available the message stays on MSMQ and when service comes online it sends it and message disappears from MSMQ.
The issue is;
When subscriber try to send the message to WCF service and WCF service throws an exception, the message stays on the Subscriber Queue and keep retrying. After exactly 5 minutes, the message is discarded, so that the message is lost.
What need to be configured is, the message has to be retain in the MSMQ if the WCF service throws any exception.
Please let me know how do I Configure this on Neuron ESB.
You need to configure the policy associated with the service endpoint. On the policy there is “Failure Actions” tab. Configure the Msmq Topic section for the number of retries and delays that you would like. Once that is done, you can sync that with the MSMQ topic transport. Goto the network transport properties of the topic and set the “Use Policies for Retries” to true. This will enable the policy drop down box. Then select the policy and save everything