All methods for reliable RPC are available on the interface object. See Standard Wrapper Properties for details. The methods are
RPCService.Reliable (put and get)
RPCService.ReliableCommitRPCService.ReliableRollbackRPCService.MessageIDRPCService.get_StatusOfMessageCreate Broker object and interface object:
// DCOM Wrapper Object MAILClass mail; mail.Logon();
Disable reliable RPC:
mail.Reliable = mail.RELIABLE_OFF;
Enable reliable RPC with AUTO_COMMIT or CLIENT_COMMIT:
mail.Reliable = mail.RELIABLE_AUTO_COMMIT; mail.Reliable = mail.RELIABLE_CLIENT_COMMIT;
The first RPC message:
mail.SENDMAIL("mail receiver", "Subject 1", "Text 1");
Check the status: get the message ID first and use it to retrieve the status:
String messageID = mail.MessageID;
String messageStatus = mail.get_StatusOfMessage(messageID);
System.out.println("Status: " + messageStatus + ", id: " + messageID);
The second RPC message:
mail.SENDMAIL("mail receiver", "Subject 2", "Text 2");
Commit the two messages:
mail.ReliableCommit();
Check the status again for the same message ID:
messageStatus = mail.get_StatusOfMessage(messageID);
System.out.println("Status: " + messageStatus + ", id: " + messageID);
The third RPC message.
mail.SENDMAIL("mail receiver", "Subject 3", "Text 3");
Check the status: get the new message ID and use it to retrieve the status:
messageID = mail.MessageID();
messageStatus = mail.get_StatusOfMessage(messageID);
System.out.println("Status: " + messageStatus + ", id: " + messageID);
Roll back the third message and check status:
mail.ReliableRollback();
messageStatus = mail.getStatusOfMessage(messageID);
System.out.println("Status: " + messageStatus + ", id: " + messageID);
mail.logoff();
All program calls that are called in the same transaction
(CLIENT_COMMIT) must be in the same IDL library.
It is not allowed to switch from CLIENT_COMMIT to AUTO_COMMIT in a
transaction.
Messages (IDL programs) must have only IN parameters.
Not applicable.