on 08-22-2008 2:35 PM
Hi all,
we have a scenario where xMII will communicate with XI, probably using 'HTTP XI' action or 'Web Service XI'.
How can a robust communication mechanism can be implemented? I mean, we would like to assure that the message arrives to XI with 'exactly once' Quality of Service (I don't know now if the order is also important). If there's a communication problem between xMII and XI (e.g a broken network link) xMII should resubmit the message to XI.
How can we design such a solution? I've seen that xMII 12 provides buffering services, but I don't know if this feature is somehow applicable in this scenario.
Can someone provide some hints and suggestions?
Thank you, your help is really appreciated.
Mauro
You could persist your messages in database (and the actual message in file system) and later process the queued messages one at a time. If an error happens because of XI system being down, you could mark this record in database as to be retried. When the queued messages are processed by your scheduler later, the "retry" messages also will be tried once again.
We implement this similar approach in our product for the quranteed deliver of the message.
Thanks,
Sara
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Mauro,
I dont think you need a custom action block for implementing the Quaranteed Delivery. Store your messages in a table using MII transaction. Write a scheduler transaction to process these queued messages one at a time. The Queue table will have columns like FILE_PATH (the location of your message in your file system) and STATUS (various ststuses may be like 'QUEUED', "PASSED' 'FAILED', 'RETRY' etc..) etc..
Thanks,
Sara
Mauro,
It also does not have to be a table in a database. You could save the messages as xml files on the Web side of xMII. Perhaps have a folder or several under a project named MessageQueue or similar, which would hold the messages. Since the contents of those folders are actually in the NW database, you would get database reliability and administrative controls along with close availability from within MII. You could have different folders for unprocessed, completed, retry, fatalError, etc. to contain each message. If you don't have much volume, that would work for your purposes.
You could also do the same with actually saving the files in an external file folder structure, but why not do it inside MII.
My real preference would be an outside database as Sara mentioned. But sometimes they are not available (or authorized).
Good luck,
Mike
User | Count |
---|---|
11 | |
6 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.