• Index
  •  » Talend Open Studio for Data Integration » Usage, Operation
  •  » mysql error last packet sent when job not used for the night

#1 2012-05-10 08:36:57

arjenvanharen
Member
Registered: 2012-01-04
Posts: 27

mysql error last packet sent when job not used for the night

I have 3 jobs all using a MySQL database for stats capture, this is setup in the project properties. Everything works fine, however after every night in the morning the jobs are not working anymore.

I already added the autoreconnect setting to the myssql connection, but that does not work.

How to fix this? it seems like a talend bug to me, I see the following errors in the log:


The last packet successfully received from the server was 58,829,997 milliseconds ago.  The last packet sent successfully to the server was 58,829,997 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.Exception in component connectionStatsLogs
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 55,505,558 milliseconds ago.  The last packet sent successfully to the server was 55,505,558 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
    at sun.reflect.GeneratedConstructorAccessor429.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1118)
    at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3321)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1940)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2562)
    at com.mysql.jdbc.ConnectionImpl.setAutoCommit(ConnectionImpl.java:4956)
    at bus001test.updateorderservicejob_1_0.updateOrderServiceJob.connectionStatsLogsProcess(updateOrderServiceJob.java:8888)
    at bus001test.updateorderservicejob_1_0.updateOrderServiceJob.preStaLogConProcess(updateOrderServiceJob.java:1456)
    at bus001test.updateorderservicejob_1_0.updateOrderServiceJob.runJobInTOS(updateOrderServiceJob.java:11346)
    at org.talend.esb.job.controller.internal.RuntimeESBProviderCallback.run(RuntimeESBProviderCallback.java:120)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Caused by: java.net.SocketException: Broken pipe
    at java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
    at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
    at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3302)
    ... 11 more
Exception in component talendStats_DB
java.lang.NullPointerException
    at bus001test.updateorderservicejob_1_0.updateOrderServiceJob.talendStats_STATSProcess(updateOrderServiceJob.java:10036)
    at bus001test.updateorderservicejob_1_0.updateOrderServiceJob.runJobInTOS(updateOrderServiceJob.java:11359)
    at org.talend.esb.job.controller.internal.RuntimeESBProviderCallback.run(RuntimeESBProviderCallback.java:120)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)

Offline

#2 2012-05-10 09:26:34

pedro
Member
Registered: 2011-11-17
Posts: 3682

Re: mysql error last packet sent when job not used for the night

Hi

Which version of TOS? Which OS?
Please upload some screenshots about your jobs.
The error info above is limited for troubleshooting.

Regards,
Pedro


Only Paranoid Survive.

Offline

#3 2012-05-10 10:03:44

arjenvanharen
Member
Registered: 2012-01-04
Posts: 27

Re: mysql error last packet sent when job not used for the night

I am using the latest stable version: 5.0.2.r78327. In Talend ESB I used the stats_logs settings in the Project Settings. (See screenshot).

OS is CentOs 32 bits



In some key components I enabled the tStatCatcher statistics checkbox.


Uploaded Images

Last edited by arjenvanharen (2012-05-10 11:28:43)

Offline

#4 2012-05-10 12:00:10

pedro
Member
Registered: 2011-11-17
Posts: 3682

Re: mysql error last packet sent when job not used for the night

Hi

I try to reproduce this issue under TOS for ESB 5.0.2 but failed.
Please alter a new database(e.g. SQL Server) and test Stats_Logs feature again.
If everything is OK this time, I think this is due to your mysql server.

Regards,
Pedro


Only Paranoid Survive.

Offline

#5 2012-05-10 12:24:27

janhess
Member
Company: Newcastle University
Registered: 2009-05-19
Posts: 1123

Re: mysql error last packet sent when job not used for the night

How do you get the connection to start working again?
Is there a backup of the database running overnight or something that would break the connection?

Offline

#6 2012-05-11 08:26:19

arjenvanharen
Member
Registered: 2012-01-04
Posts: 27

Re: mysql error last packet sent when job not used for the night

No, when I look at the error then the problem is that there was interaction anymore, making the connection invalid. I need to stop and start the jobs, after that the work again.

Our current setup is done on a new test server, all freshly installated with the latest MySql version.

Using a different database provider is not realy an option for me, although for the monitoring and logging part of the jobs I could try a H2 in memory database.

As I am pressed for time right now I switched back to using log files, not as nice as using the database but it will do for now.

Offline

  • Index
  •  » Talend Open Studio for Data Integration » Usage, Operation
  •  » mysql error last packet sent when job not used for the night

Board footer

Powered by FluxBB