Lets say we have a senarion - wM is communicating with SAP, Oracle and other systems. What happens if one of these resources is down (for outage) does wM report an error OR can it store the documents (if it has a Broker) and process when the system is up.
Assuming you mean Integration Server when you say wM, you can have it do either of these things. Use of Broker to implement store and forward is one way to go but is not required.
The key is that you need to design your integrations to take the appropriate action when the target system is unavailable. You could:
Have the integration fail and report an error (write to a log, write to a DB, send an e-mail, publish an error event, etc.).
Use IS and Broker to ‘nak’ the document on the Broker, at which point it will try again and again.
Use IS and Trading Networks to provide “reliable” delivery in which TN will retry delivery a configured number of times over a configured period of time. After a time, it can give up and report an error (using one of the techniques mentioned above). You might set the period of time to be sufficiently high such that eventually the document will be delivered when service is restored.
Use IS and Modeler to model integrations. On error, you can repeat execution of (delivery) steps. One approach is retry forever, assuming that the resource availability will eventually be restored. The benefit is that no manual intervention is required to retry.
The main point–you’ll have to do some design work and figure out what you want your integrations to do in the face of resource outages.
You could also use a Guaranteed Delivery transaction (probably async). Personally, I like to use Process Models. It allows you to easily build in retries where it makes sense and can avoid re-execution of potentially “expensive” steps. Whatever solution you choose, make sure it does not involve doing a Thread.sleep() in a loop…
Pay attention when having retry forever, you should first make sure that the facing system is enough robust to handle all kind of requests particularly for functional errors that could occured.
Thank you all for your detailed explanation…