On Fri, 16 Jul 2004 10:36:27 -0400, Brad Clements <[EMAIL PROTECTED]> wrote:

> The SAP  folks say their adapter is "multi-thread capable", but I've come to believe 
> that only
> means that it's ok to open a connection in one thread and use it in another, but NOT 
> to have
> 2 threads make requests on the same connection at the same time.

I would be surprised to find any database API that allowed that.
Generally "thread-safe" means that there are no global state
variables, i.e. all connection state is encapsulated in the connection
object/struct. Generally I would not try to share connections between
threads at all. To do it, you'd need to ensure that a thread performs
a commit or rollback on the connection before another thread can use
it, i.e. performs a complete transaction or none at all. Otherwise you
will have all sorts of interesting problems.

> Also, two threads can' t open a connection "at the same time" because their 
> connection table
> management isn't "thread safe".

That does suck, but it doesn't seem like an insurmountable problem for
a DA. You just need a per-DA instance mutex which you acquire before
opening a connection release afterwards.
Zope-Dev maillist  -  [EMAIL PROTECTED]
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope )

Reply via email to