cancel
Showing results for 
Search instead for 
Did you mean: 

xMII call to XI robustness

Former Member
0 Kudos

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

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

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

Former Member
0 Kudos

Thank you Sara,

really interesting suggestion.

The only 'drawback' I see is that I would have preferred to manage the guaranteed delivery of messages natively in MII (but probably it doesn't support it) instead of developing a custom solution (typically prone to errors)

Mauro

Former Member
0 Kudos

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

agentry_src
Active Contributor
0 Kudos

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

Answers (0)