You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

MySQL has some "Server System Variables".
One of these is wait_timeout, which has the value 28800 seconds as default.
Look at http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_wait_timeout for more information about wait_timeout.

wait_timeout is the number of seconds the server waits for activity on a noninteractive connection before closing it.
Unfortunately, the server doesn't tell the client wether the connection is closed so that the client use a closed connection which throws an error

 Lock wait timeout exceeded; try restarting transaction

or

 The last packet successfully received from the server was xxx,xxx,xxx milliseconds ago.  
 The last packet sent successfully to the server was xxx,xxx,xxx milliseconds ago. is longer than the server configured value of 'wait_timeout'.

You can increase the value of wait_timeout to avoid the problem but then you can get problems with the max. numbers of connections.

A workaround in the JobScheduler is to configure a job with a repeat interval in its schedule which is shorter than the wait_timeout value.
For example you can use the scheduler_dequeue_mail job in ./config/live/sos/housekeeping/scheduler_dequeue_mail.job.xml.

 <?xml version="1.0" encoding="iso-8859-1"?>
 
 <job title = "Send buffered mails from mail queue">
 
    <description>
       <include file = "jobs/JobSchedulerDequeueMailJob.xml"/>
    </description>
     
    <script language      = "java"
            java_class    = "sos.scheduler.job.JobSchedulerDequeueMailJob"/>
    
    &lt;!-- repeat dequeueing in the given interval of seconds (1 hour) --&gt;
    <run_time let_run = "yes"
              repeat  = "3600"/>
     
 </job>
  • No labels