<!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&nbsp; 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>&nbsp;</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>&nbsp;</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>&nbsp;</DIV>
<DIV>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</DIV></BODY></HTML>