We have 2 services.
Service_1 is the main service which publish a document on UM.
Service _2 subscribes those messages residing on UM.
I noticed when Service_2 is run and it takes off the message from UM thereafter target system webservice is called.
In case there is network issue for fraction of seconds on the target system and on the same time service_2 is processing published document , it will result in message from UM getting lost.
How can we ensure in case of above issue we can re-write the message on UM and next time subscriber service is called it can process the lost message.
Hi Sushant,
can you provide your UM Trigger settings as well as an outline how you handle your webservice errors in your service?
At latest when your Service_2 completes with success the document will be acked to UM indicating that it has been processed.
You should make sure that your service ends with failure when there has been an issue on the webservice call.
When the UM document is pulled without an trigger you can republish the document to UM but this will break the order of documents.
Regards,
Holger
Hi Holdger
Please find the trigger settings in PNG attached.
Also the subscriber service screenshot attached.In our case it is going to unknown fault.
Thanks
Sushant
Hi Sushant,
is this a SOAP WebService or just plain HTTP-Service invocation?
In the first case you should evaluate the SOAP-Fault instead of the transportInfo.
Soap-Status = 0 → Success (HTTP-Code 200)
Soap-Status = 1 → HTTP-Transport failure
Soap-Status = 2 → Real Soap-Fault (logical error inside the WebService).
You might want to consider using pub.flow:throwExceptionForRetry after handling unsuccessful transport issues.
Regards,
Holger
Hi Holger
It’s a SOAP UI and we have imported WSDL.
But the issue is our UM message getting lost when it encounters any fault as subscriber service takes off UM message before SOAP UI of target system is called in the same service.
Is it possible to ensure document on UM remains there in case any fault is encountered.
Thanks
Sushant
Hi,
If the UM trigger handler service (service_2?) returns with an exception, the message should be returned to the UM for retriggering.
Is that what you do, or do you just mask all possible exceptions?
Best regards,
Hi Gerardo
Service_2 takes off the message from UM which was published by Service_1.
Service_2 invokes webservice of target application and it may return exception.
If there is exception return from target web service then UM message is no longer available when next time service_2 is run.
How can we ensure in case of exception return from web service in service_2 , the message remains there on UM.
Thanks
Sushant
You should use “Transient Error Handling for Trigger Preprocessing and Building a Resource Monitoring Service”
Refer the guide and let me know if you have any questions.
Hello Sushant
I concur with Mahesh on transient error handling and resource monitoring service, but for this to work you must handle errors appropriately and when there is a connection issue to the web service, Service_2 must end with a throwExceptionForRetry.
Yunus.