Hmm...
Looks fine for a start to me. I would like to be very sure that not one of the commits could trigger a fatal error, which would terminate the script before rolbacks are done. Maybe a __DIE__ handler could help here, or a DESTROY sub if you're wrapping your script in an OO package. These all would be futile in case of network failure, though.

Maybe you could create something with temporary records, or at least make backups of the changes. An audit log comes to mind...

Also, make sure that the rollback order (reversed commit order) is always OK and there are no cross dependencies which prevent this from working.

Good luck!

--
Cheers, Joe


In reply to Re: how to build a transaction? by joe++
in thread how to build a transaction? by bronto

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.