We have a
number of SSIS packages that routinely fail for various reasons such as a
particular file is not found, an external FTP server is unavailable, etc.
In most cases these error conditions are just a temporary situation and we can
simply rerun the package at a later time and it will be successful. The
issue, however, is that we do not want to rerun the tasks in the package that
have have already completed successfully. Is there a way that we can
restart an SSIS package at the point of failure and skip any tasks that were
successfully completed in the previous execution of the package?
a Checkpoint capability which allows a package to restart at the point of
failure. The Checkpoint implementation writes pertinent information to an
XML file (i.e. the Checkpoint file) while the package is executing to record
tasks that are completed successfully and the values of package variables so
that the package's "state" can be restored to what it was when the
package failed. When the package completes successfully, the Checkpoint
file is removed; the next time the package runs it starts executing from the
beginning since there will be no Checkpoint file found. When a package
fails, the Checkpoint file remains on disk and can be used the next time the
package is executed to restore the values of package variables and restart at
the point of failure.