Guaranteed message delivery

in Help Center
In some situations data sent between systems costs very much, so developer need to be very sure data was sent. Regardless of disconnection and time system was diconnected or even shut down. The only decision is to keep data to be sent persistent until receiving side confirms delivery. Can ICE store serialized methods' calls in nonvolatile memory and keep them persistent until delivery confirmed? In COM+ this feature is implemented and seems useful. Any comments?
0
Comments
AMI Interface. In particular section 6.15.7 Flow Control might be relevant. However, I think it is not a trivial task to implement it in reliable production quality way.
I will confine my answers to .NET as I am familiar with it.
You can solve (a) by using two way invocations. You can solve (b) by using an object database which can store native objects. I would not recommend using a RDBMS because it would involve unpacking each object to fit into a non-object oriented database structure. A great example of an object database is db4o. Its one line: ".Add(object)" to write a complete object to the database, the object may contain collections, sub-objects, etc. Another example is .NET Caching Library from Kellerman. Another example is MongoDb which can pesist an object with one function call.