[Zope] SQL connection isolation / multiplexing

Jason Byron jason_zope@yahoo.com
Tue, 5 Jun 2001 15:24:21 -0700 (PDT)


I'm not sure about the details myself, but I would
change your sql_register_1 to something like this:

insert into ...
<dtml-var sql_delimiter>
select last_insert_id() as lastinsertid

then your insert also gives the new id (as lastinsertid)
and I think you don't have to worry about the timing.

hth,
jason


--- Zope Fiend <zopefiend@netjunky.com> wrote:
> Hi everyone.  Hope this is the right place for this.
> 
> I have a data registration app running in zope that talks to a
> MySQL
> database.
> 
> When a new piece of data is submitted, i need to generate a
> unique ID from
> the database and then update several tables with that ID and
> other
> information.  I went about this by making 2 SQL methods:
> 
> sql_register_1
>  - inserts data into a table with an AUTO_INCREMENT field
> sql_register_2
>  - inserts data into a second table, calling LAST_INSERT_ID()
> 
> I know that SQL_LAST_INSERT() is connection-isolated in MySQL,
> i.e.
> inserting into table 1 from one connection will not alter
> LAST_INSERT_ID()'s
> value in another connection.
> 
> I don't know, however, how Zope handles Z MySQL Connections. 
> Looking at the
> open connections to the DB server, and the running processes,
> I would guess
> that each Zope child process maintains separate connections.
> 
> Does this mean that I am guaranteed to only have one parallel
> web request
> per DB connection?
> I am concerned that if two requests hit the server at the same
> time, the
> following will happen:
> 
> Request 1: sql_register_1
> Request 2: sql_register_1
> Request 1: sql_register_2
> 
> If these go over separate DB connections, no problem.  If they
> don't,
> kaboom.
> 
> Answers?
> 
> Thanks for any light.
> 
> ~ZF
> 
> 
> _______________________________________________
> Zope maillist  -  Zope@zope.org
> http://lists.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists - 
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope-dev )


__________________________________________________
Do You Yahoo!?
Get personalized email addresses from Yahoo! Mail - only $35 
a year!  http://personal.mail.yahoo.com/