<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.6000.16397" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=559240923-12032007><FONT face=Calibri>While looking into a way
to make the V-M class instantiation work better, I did some digging in JDBI
transactions. I got to thinking about it and was thinking that it would be nice
to have a transaction system that could do the following:</FONT></SPAN></DIV>
<OL>
<LI><SPAN class=559240923-12032007><FONT face=Calibri>Truly nested
transactions: If a rollback is nested within a commit, the code of that
rollback is removed from the ultimate commit (which is not currently the case,
as far as I can tell).</FONT></SPAN></LI>
<LI><SPAN class=559240923-12032007><FONT face=Calibri>The ability to store
code as part of a transaction that gets run on ultimate commit or on ultimate
rollback.</FONT></SPAN></LI>
<LI><SPAN class=559240923-12032007><FONT face=Calibri>Creating a "transaction
{ }" wrapper method that will execute a coderef and perform automatic
rollback on exception or automatic commit otherwise.</FONT></SPAN></LI>
<LI><SPAN class=559240923-12032007><FONT face=Calibri>Encapsulating
transactions in objects that could be manipulated in a straightforward
manner---rather than as a collection of methods on
Jifty::DBI::Handle.</FONT></SPAN></LI></OL>
<DIV><SPAN class=559240923-12032007><FONT face=Calibri>I looked around on CPAN
to see if there was already a module for helping with this, but the modules
either require wrapping DBI (e.g., DBIx::Transaction) or don't really work the
way I have described (e.g., DBIx::Roles::Transaction). All the transaction
modules I see are also tied to some specific file- or DBI-based task and don't
provide tools to help with the execute on commit/rollback
feature.</FONT></SPAN></DIV>
<DIV><SPAN class=559240923-12032007><FONT
face=Calibri></FONT></SPAN> </DIV>
<DIV><SPAN class=559240923-12032007><FONT face=Calibri>Ideas or
comments?</FONT></SPAN></DIV>
<DIV><SPAN class=559240923-12032007><FONT
face=Calibri></FONT></SPAN> </DIV>
<DIV><SPAN class=559240923-12032007><FONT
face=Calibri>Cheers,</FONT></SPAN></DIV>
<DIV><SPAN class=559240923-12032007><FONT
face=Calibri>Andrew</FONT></SPAN></DIV>
<DIV><SPAN class=559240923-12032007><FONT
face=Calibri></FONT></SPAN> </DIV>
<DIV> </DIV>
<DIV align=left><STRONG><FONT face=Calibri size=2>--</FONT></STRONG></DIV>
<DIV align=left><STRONG><FONT face=Calibri size=2>Andrew Sterling
Hanenkamp</FONT></STRONG></DIV>
<DIV align=left><FONT face=Calibri size=2>Interaction Developer</FONT></DIV>
<DIV align=left><FONT face=Calibri size=2>Boomer Consulting, Inc.</FONT></DIV>
<DIV align=left><FONT face=Calibri size=2></FONT> </DIV>
<DIV align=left><FONT face=Calibri size=2>1.785.537.2358 ext. 17</FONT></DIV>
<DIV align=left><FONT face=Calibri size=2>1.888.266.6375 ext. 17</FONT></DIV>
<DIV align=left><FONT face=Calibri size=2>1.785.537.4545 (fax)</FONT></DIV>
<DIV align=left><FONT face=Calibri size=2></FONT> </DIV>
<DIV align=left><FONT face=Calibri size=2>610 Humboldt</FONT></DIV>
<DIV align=left><FONT face=Calibri size=2>Manhattan, KS 66502</FONT></DIV>
<DIV align=left><FONT face=Calibri size=2></FONT> </DIV>
<DIV align=left><A
href="http://www.boomer.com/about/team/andrew-hanenkamp.html"><FONT face=Calibri
size=2>http://www.boomer.com/about/team/andrew-hanenkamp.html</FONT></A></DIV>
<DIV align=left><FONT face=Calibri size=2><A
href="mailto:andrew.hanenkamp@boomer.com">andrew.hanenkamp@boomer.com</A></FONT><A
href="http://www.boomer.com/"></A></DIV>
<DIV> </DIV></BODY></HTML>