Recovers any In-Progress
events in the event store.
Syntax
public abstract int recoverInProgress();
Parameters
None.
Return values
An integer that indicates the outcome status of the recovery
operation. Compare this integer value with the following
outcome-status constants to determine the status:
-
CWConnectorConstant.SUCCEED
- The recovery of in-progress events succeeded.
-
CWConnectorConstant.FAIL
- The recovery of in-progress events failed.
Exceptions
- InvalidStatusChangeException
- Thrown when the status is being changed to an invalid status
value for the application.
- StatusChangeFailedException
- Thrown when the status change from IN_PROGRESS to
READY_FOR_POLL fails.
- AttributeNullValueException
- Thrown if the InDoubtEvents connector configuration
property is not defined and set.
Notes
The recoverInProgressEvents() method checks the event
store for any events that currently have the IN_PROGRESS status. An event might remain
in the event store with an event status of IN_PROGRESS if
the connector was unexpectedly shutdown.
- Note:
- The CWConnectorEventStore class does not
provide a default implementation for the
recoverInProgressEvents() method. Therefore, the
event-store class must implement this method to provide the
ability to recover In-Progress events at connector startup.
One possible way to implement recoverInProgressEvents()
is to base its actions on the
InDoubtEvents connector configuration property. If such events
exist, the method can take one of the following actions, based on
the value of this property:
Value of
InDoubtEvents |
Action for
recoverInProgressEvents() |
Reprocess |
Change all
events with the
IN_PROGRESS status to the
READY_FOR_POLL status so that they are sent to the
connector framework in subsequent poll calls. |
FailOnStartup |
Log a fatal
error and return a FAIL outcome status to
agentInit(), which in turn throws the
InProgressEventRecoveryFailedException exception. This
action also sends an automatic email, if
LogAtInterchangeEnd is set to True. |
LogError |
Log a fatal
error but do not return FAIL outcome status to
agentInit(). |
Ignore |
Ignore the
In-Progress events. |
- Note:
- For recoverInProgressEvents() to work as described,
the InDoubtEvents connector configuration property
must be defined. If InDoubtEvents is not
defined, recoverInProgressEvents() should throw the
AttributeNullValueException exception.
The recoverInProgressEvents() methods is usually called
as part of the connector initialization process, from within the
agentInit() method.
The agentInit() should check for the status from
recoverInProgressEvents() and catch any exceptions as
well. The agentInit() method should throw an exception in
either of the following cases:
- If recoverInProgressEvents() returns a FAIL
outcome status
- If recoverInProgressEvents() catches an exception
See also
agentInit()
