locked
The exact meaning of checkpoints - how does it work when transactions were committed? RRS feed

  • Question

  • i can not wrap my finger behind the checkpoint functionality.

    When reading my course material it says it will start from the last point of failure.

    But I wondered when for instance 20000 transactions ran through the total package, and 20001 will give a deadly error within a component, what would happen to the package? are these previous 20000 rolled back? does it mean you always need to run at the highest transaction level?

    Thank you in advance

    Monday, December 24, 2012 2:45 PM

Answers

  • You should not enable the checkpoint in situations where you cannot reverse (undo) data manipulations. The typical scenario is either all committed or none.

    Having say the Sequence Container defeats the purpose of having the checkpints IMHO.

    If the package could not start there is no checkpoint recovery point being set.

    Concentrate on the point - if the package fails - the transactions get rolledback. This means if you set the checkpoint on the Sequence Container or Execute SQL Task, then they are ALL undone, there is no partial commit in here.


    Arthur My Blog

    • Proposed as answer by Eileen Zhao Thursday, December 27, 2012 9:14 AM
    • Marked as answer by Eileen Zhao Monday, December 31, 2012 6:31 AM
    Monday, December 24, 2012 3:38 PM

All replies

  • Do not mix transactions into checkpointing. What do you also mean under the highest transaction level? 

    The checkpointing works for any kind of failures, the transactions you need to use as a complementary if not separate design consideration.

    If you have a container with transactions enabled (a sequence container for example) then the previous transactions would rollback on error. So having a check point in this application may even appear harmful.


    Arthur My Blog

    Monday, December 24, 2012 2:54 PM
  • Hi Arthur, Thank you. Nevertheless a question remains. What If transactions have been committed, so the package ran to the end for a certain number of transactions, let's say for 20% of all transactions, does it mean the checkpoint will not work? so to say does checkpointing only work if the package did not start one or more components due to failure? this is not clear to me
    Monday, December 24, 2012 3:24 PM
  • You should not enable the checkpoint in situations where you cannot reverse (undo) data manipulations. The typical scenario is either all committed or none.

    Having say the Sequence Container defeats the purpose of having the checkpints IMHO.

    If the package could not start there is no checkpoint recovery point being set.

    Concentrate on the point - if the package fails - the transactions get rolledback. This means if you set the checkpoint on the Sequence Container or Execute SQL Task, then they are ALL undone, there is no partial commit in here.


    Arthur My Blog

    • Proposed as answer by Eileen Zhao Thursday, December 27, 2012 9:14 AM
    • Marked as answer by Eileen Zhao Monday, December 31, 2012 6:31 AM
    Monday, December 24, 2012 3:38 PM
  • Thank you this is exactly what I needed to know
    Thursday, January 3, 2013 9:25 AM