I understand that webMethods is only real time data transfer, but when the source system sends data and target system is down, we need to persist this data is webMethods and when the target system is up the data should be reprocessed.
What are the best ways to use for persisting data.I donot use publish, it is single package which receives data and tansfers to target system.
You can use the retry facilities though TN makes the use of retry a bit easier. TN has settings for delivery retries: retry count, retry wait and retry factor. Using these, you can have delivery retry for minutes, hours or days before giving up. You can do something similar with plain IS services though I’m fuzzy on the details. Perhaps someone else can chime in?
i always use the pub.flow:throwExceptionForRetry. Here is an example:
FLOW_A publishes document
subscribing TRIGGER calls FLOW_B:
(map broker document)
SEQUENCE - MAIN - EXIT on SUCCESS
–SEQUENCE - TRY - EXIT on FAILURE
------(do adapter call, call a backend system or whatever)
–SEQUENCE - CATCH - EXIT on DONE
------ pub.flow.getLastError
--------(check if it is a transient error, when error is transient set variable "retry"to true)
BRANCH on /‘retry’
– when “true” pub.flow:throwExceptionForRetry
Some comments:
A transient error is caused by a resource unavailability due to network issues and the error may be resolved if the service is retried again later.
Configure Trigger properties: “Deliver Until”, “Max attemps” and “Retry interval” to your needs