Jared just did a blog post over at
Alagad on a feature request for named transactions. I have to chime in here and say that I
really, really, really, want this feature!
The current restriction of having transactions only within a <cftransaction></cftransaction> block is incredibly limiting from a OO perspective.
Something that I had on the radar for
Transfer
was to be able to control the Transactions at a database level with
your code, as well as automatically clearing from cache the relevant
objects if something went wrong.
Essentially it would go something like this:
transaction = getTransfer().getTransaction();
try
{
transaction.begin();
employee = getTransfer().get("employee", 1);
employee.setUsername(form.username);
getTransfer().save(employee);
manager = getTransfer().get("employee", 4);
manager.addEmployee(employee);
getTransfer().save(manager);
transaction.commit();
}
catch(Any exc)
{
transaction.rollback();
}
With
this code, if we got to the 'transaction.rollback()', not only would it
roll the DB data back, but it would also intelligently discard the
'employee' and the 'manager' objects from cache - thus ensuring that
there was no dirty data.
Currently, with ColdFusion transactions
structured the way they are, it's actually impossible for me to do
this, as there is no <cftransaction> block, and I have no hook to pick up when something goes wrong.
With a named Transaction block, I could internally handle how transactions where managed inside my Transaction.cfc, and and I could pick up the rollback() or commit() call as appropriate.
This would be an incredibly handy thing, so count me on a big
+1 for this feature!
Melbourne CFCAMP was last week, and I have to say, I think it went really, really well.
We had an attendance of about 50 people, so it made it a good intimate
environment, and everyone asked lots of questions from the presenters,
which was great to see.
It was also a great chance to catch up for drinks with the likes of
Geoff Bowers,
Robin Hilliard, and
Peter Bell, who may be local to Australia, but rarely are in the same place at the same time. (Albeit Peter is new to Australia).
We all went out for a few drinks after the CFCAMP events had finished,
and the conversation continued over wine and beer, and we had a pretty
good discussion about all sorts of things... including Robin's
calculations about the Red Bull challenge (which I don't think were
ever fully explained)
I'd like to say a big thanks to Mark Blair, and all the Adobe staff
that came down to support the event, it was really appreciated, a good
time was had by all, and we even learnt a thing or two.
If anyone is still sitting on the fence on whether or not to go to Perth, I would highly recommend it.
Just reminding everyone that the Melbourne CFCAMP is on
this Thursday!!!
The agenda has been locked down, and can be seen at
http://cfcamp.pbwiki.com/Agenda:+Melbourne and I have to say, it looks really exciting!
We're going to be seeing coverage of topics ranging from ColdFusion 8
(Obviously), Flex integration, AIR Integration, Farcry, Transfer ORM,
LiveCycle Data Services and Code Generation, not to mention its going
to be a great opportunity to catch up with all the local developers,
and see what is going on in the local development community.
If you have yet to
register,
I would highly recommend that you do! It's going to be a really good
day! And considering its all free, what have you got to lose?
I recently did a Connect presentation to the
IECFUG group, and it went really well!
I recently moved to a new ISP
at a higher speed, so this presentation is missing out on all the audio
clipping and dropouts of its predecessors, which I am really happy
about.
If you haven't managed to catch this presentation, and want to have a listen, the recording can be found
here.
On the 28th of November, 12pm UK time, I will be presenting via
Connect my 'Advanced' Transfer ORM talk, covering some of the
functionality of Transfer that is above and beyond the usual CRUD stuff.
This
includes things like the caching layer, the observable events,
Decorators, and Transfer Query Language, which aren't covered in the
introductory talk that I often do.
More details on the talk can be found
at the cfframeworks site.
I hope you all enjoy it,as I have yet to do this one online yet! So this will be the first! Should be good!!!