[Zope] sub-transaction in DTML?
Michel Pelletier
michel@digicool.com
Tue, 14 Mar 2000 09:19:28 -0800
"Jay, Dylan" wrote:
>
> I have a method that takes a long time on a system that uses a level 2 DA,
> therefore it blocks the entire site
To be more specific, it blocks all other requests through that and other
level 2 DAs. Non SQL related calls and level 3 DA calls will not get
blocked.
> (it also uses UserDB so everything uses
> the DB).
Yeah that kinda puts a damper on the whole site... but that's just
because every access is now an SQL related call.
> How can I put sub-transactions in my DTML to give others a chance
> to use the site?
This is not what ZODB sub-transactions do. Even if you were using a
relational database that has a notion of sub-transactions (Oracle has
'nested transactions' for example) that would not stop the blocking (of
course if you were using Oracle you would be using a level 3 DA...).
ZODB sub-transactions allow changed objects to get flushed to a temp
filestorage so that you can accumulate more object changes then can fit
in virtual memory. There is no mapping of sub-transaction semantics to
any of the DAs. In fact, if I remember correctly using ZODB
sub-transactions with SQL methods is Not A Good Thing. I don't remember
the exact details.
Solutions? Execute a shorter query or upgrade to a concurrent DA.
-Michel