I really need some help/direction, so I'll try to explain this as best I can.  

I have a PHP script that involves three very long running queries (2-3 minutes
each).  The users of my website kick this off from their webpage, so it runs as
"nobody" from inside Apache.  In order to prevent a user from running the same
script twice, I do a "GET_LOCK" call at the begining of the script, and return
a message if it is already running. 

Everything worked perfectly for the last few years with this method, until last
week when my web server was upgraded to a 2.4 kernel, Apache 2 and PHP 4.3.3
(from a 2.2 kernel, Apache 1.3 and PHP 4.1.2).  The database server (mysql
3.23.41) is running on a different machine has not changed.

Under the new system, the PHP script runs, and fires off the first of the three
queries.  Exactly 2 minutes into the script running (while the first query is
still running), Apache times out and returns a blank page (expected), and I
lose the GET_LOCK lock, but the PHP script continues to run, and in fact the
other two queries also run and complete under the same mysql connection ID.  So
I'm not losing the mysql connection, and the PHP script continues to run, so
why am I losing the lock? 

I've run all the queries from the command line, and I can't replicate the
problem.  Where can I look to find where/why mysql is giving up the lock, when
the PHP script continues to run under the same connection ID?  (I can
understand the problem if the mysql connection dies and the script
auto-re-connects, but that isn't happening.).

Thanks,

-Hank





__________________________________
Do you Yahoo!?
New Yahoo! Photos - easier uploading and sharing.
http://photos.yahoo.com/

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to