The Integration Service writes recovery information to a recovery ignore list when a session with a JMS or WebSphere MQ source fails. The Integration Service writes recovery information to the list if there is a chance that the source did not receive an acknowledgement. For example, the session fails before the Integration Service sends an acknowledgement to the source but after it writes messages to the target. In this case, the source can rollback the current transaction, but the messages in that transaction may not be immediately available. If the messages are included in the recovery session, data duplication can occur. To prevent data duplication, the Integration Service creates the recovery ignore list.
The recovery ignore list stores message IDs that the Integration Service wrote to the target for the failed session. The Integration Service creates the recovery ignore list in the storage type that is used for that session, such as the recovery file, recovery table, recovery queue, or recovery topic. During recovery, the Integration Service uses the recovery ignore list and the storage type to determine if it wrote the messages to the target. It verifies the messages IDs against the recovery ignore list and the storage type to ensure that no data is duplicated.
When the session fails, the Integration Service writes the message to the recovery ignore list and adds a time stamp. By default, the Integration Service deletes the message from the recovery ignore list one hour after the time stamp. If the Integration Service finds the message in the source within the default time period, it deletes the message from the recovery ignore list.
If you restart a stopped or failed session in cold start mode, targets may receive duplicate rows. Restart the session with recovery to prevent data duplication. Or, restart the session in cold start mode if you can ensure that the messages that were in the recovery ignore list are removed from the source. Use the session log to view the message IDs. The Integration Service writes the message IDs from the recovery ignore list to the session log if you configure verbose data tracing.