|Programming Data-Aware Procedures and Result Processors / Using the Procedure Provider API|
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.