Implement Queue for resubmission of documents in case of error

Hi
I am developing an interface between two systems. The current architecture is
System A-JDBC adapter(insert notifications) - Enterprise Server-ES/ISBridge-IS(Integration server)-TN(Trading Networks)-System B
TN delivers document to System B through HTTP Post. In case System B is down then we need to develop a mechanism for Queuing up the messages and the moment when System B comes up all the messages are delivered without much manual intervention.
The following are different approaches
Approach 1: Resubmission through TN. Change the user status to error and resubmit all the messages thr TN by setting the criteria as User Status-ERROR.
Problem:The load will be 1000 at a run so it will be difficult to resubmit from TN one at a time all 1000 messages
Approach 2: Implement some private queue at TN.
This seems to be OK but can someone give me an idea how to implement the same.
Approach 3: Stop the ES-IS listener the moment first error is received and a automatic mail will go to the support team for notifying them.
Now when the System B will come up then the support team will just have to start the listener and the message will be delivered automatically as they will be in queue.
Problem: The maximum load is 2000 . Will ES broker can queue up message to that particular load? And can this anyways affect other interfaces?

Please let me know your suggestions

Thanks and Regards
Deepali

I am curious to know which approach you have chosen finally.

Thanks
Srinivas

Srinivas we are using the Approach1…
Approach 2 I dont have the idea to implement…If you have an idea then do let me know?
Approach3 for rejected by the architecture team as according to them this may affect the performance for other interfaces.

Thanks
Deepali

I am assuming you are setting the delivery protocol to delivery via HTTP/HTTPS. For all docs in TN, there will be a delivery task for handling the delivery of the doc to system B. Instead of the manual re-submit in TN for all failed msgs, you can create a service which can restart all failed delivery tasks. This will retry the delivery of the msgs to system B. This service then can be scheduled to run every hour or so.