I'm not sure I understand this part? Do you mean if you have an internal error which does not complete the intended transaction but doesn't throw that through the 'with-transaction' statement then you get bad data?

It seems that you may be expecting too much of the database. If you are protecting complex web transactions that may take many different paths, some correct and some not, there really is no way to resolve all this from a context created at a higher point in the stack.

We allow nesting to make default transaction behavior easy - the outer transaction determines the commit unit. Do you want an option to catch an unexpected internal nesting?

I'll look at the rest of this tonight and comment.

Cheers,
Ian

On Feb 20, 2008, at 5:14 PM, Alex Mizrahi wrote:

additionally, i've found some problems with "separatist" error handlers
i.e.:

(ele:with-transaction ()
(handler-case (work-with-database)
  (error () (pring "we have a no-go")))

if work-with-database produced some error, with-transaction will not able to
know about this and thus could commit erroneous data.

of course this is a problem of application, but sometimes such handlers are installed by web framework or dictated by architecture in some way. and it
will be nice to be able to deal with such cases.
_______________________________________________
elephant-devel site list
elephant-devel@common-lisp.net
http://common-lisp.net/mailman/listinfo/elephant-devel

Reply via email to