Alfons Nonell-Canals wrote:
Hello,
I've developed a program using python that have to connect to a mysql
server several times.
In a local machine (running the program in the same machine where the
mysql server is) I have no problems. I can run several instances of the
program at the same time with no problem.
Them problem arrives when I try to distribute the tasks to different
machines, for example, in a cluster. In this situation, the machine that
runs the python program is different than the machine that hosts the
database.
If I run the python program only an other machine, only one run of the
program, there is no problem. But, If I run the program in different
machines, all of them connecting to the same database server, randomly,
it crash. Crash all running programs! at the same time.
The output is clear:
File "/cgl/programs/ChemBang/config.py", line 67, in mysql
db = MySQLdb.connect(host=HOST, user="USER",
passwd="PASSWD",db="DATABASE")
File "/usr/local/lib/python2.5/site-packages/PIL/__init__.py", line
74, in Connect
File "build/bdist.linux-x86_64/egg/MySQLdb/connections.py", line 170,
in __init__
_mysql_exceptions.OperationalError: (2003, "Can't connect to MySQL
server on 'HOST' (110)")
That's not a crash. That's a normal event when the server is out
of resources. You can catch the exception and retry.
If that's happening frequently, either there's a network problem,
or the server has inadequate socket or MySQL resources configured.
Do a SHOW PROCESSLIST on the server to see what it's doing.
You may have clients which are keeping idle connections open and
tying up server resources.
John Nagle
--
http://mail.python.org/mailman/listinfo/python-list