High Availability for GemFire XD Procedures

If an error occurs before a procedure has returned any rows to the client, then GemFire XD automatically re-executes the procedure.

Procedure and result processor implementations can use the isPossibleDuplicate() method to determine if GemFire XD re-executed a procedure after a GemFire XD member failed. This type of detection is necesary for certain implementations that perform write operations that can lead to duplicate entries on procedure re-execution.

If an error occurs after rows have been returned to the client, then GemFire XD throws an exception but does not attempt to retry the procedure.