[Zope-dev] Prototype Zope mxODBC DA
Andrew M. Kuchling
akuchlin@mems-exchange.org
Tue, 12 Oct 1999 17:42:57 -0400 (EDT)
Michel Pelletier writes:
>Use the TM_THUNKED mixin instead of TM. This will serialize *all* of
>your database requests across all database adapters at the transaction
>boundary (the old kludgy SybaseDA does this). Guaranteed to be safe,
>but not very scalable. The only way I can think of Zope trying to
This seems too paranoid to me -- across *all* database adapters? (Or
do you mean it serializes requests across all DA objects of a given
class, or for a single DA object?)
The function which opens a connection looks like this:
def __init__(self,connection):
self.connection=connection
# XXX this is really only correct for Solid
L = split(connection)
connstr = join(L[0:3], ' ')
user = L[3] ; password=L[4]
db=self.db=self.Database_Connection(connstr, user, password)
self.cursor=db.cursor()
This is for Oracle, where it's OK to do multiple queries at a time
with the same connection. For mxODBC, where that isn't possible,
I was thinking that it would be sufficient to just have a dictionary
mapping thread IDs to a specific database connection for that thread.
Hmm... we're using PCGI. Does PCGI actually support multiple Zope
threads? (A quick look through pcgi_publisher.py suggests not, so it
might be academic until we start using ZServer.)
--
A.M. Kuchling http://starship.python.net/crew/amk/
Capax is dead. There is no doubt of that. There is nothing in his space but
darkness and cold and silence.
-- Delirum checks on their quarry, in SANDMAN #44: "Brief Lives:4"