[Seaside] what objects can i register for backtracking?
avi at beta4.com
Thu Jan 8 19:37:09 CET 2004
On Jan 8, 2004, at 11:23 AM, radoslav hodnicak wrote:
> my question:
> it looks to me like my glorp session would be a good candidate for
> backtracking but - will this work reliably? (for those who don't know
> glorp just assume glorp session is a quite complex object, with caches,
> database accessors etc).
No, you don't want to do that. Objects get backtracked shallowly, so
it doesn't work as you would like for complex trees of objects. But
more to the point, backtracking is *only* meant for UI state - for
domain state, you should be using the transaction facilities of your
The answer to your question, however, is that since relational
databases don't like having multiple simultaneous transactions on one
connection, you want to be really careful about keeping transactions
open - the simplest and most reliable solution is to have each
transaction/unit of work only exist for a single request. Since it's
an issue in the external database, it's not something that any
backtracking strategy inside Seaside is going to be able to fix.
More information about the Seaside