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()
