Communications link failure with MySQL db

Overview

An error message may be appended to JBoss' log file while using Talend MDM (Master Data Management) with MySQL DB. This article describes this error and provides solutions to eliminate it.

 

Symptoms/Description

When using Talend MDM with MySQL DB, the following error may occur several times in the jboss server log file jboss-4.2.2.GA\server\default\log\server.log:

** BEGIN NESTED EXCEPTION ** 
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
MESSAGE: Communications link failure
Last packet sent to the server was 1 ms ago.
STACKTRACE:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
Last packet sent to the server was 1 ms ago.
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	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:406)
	at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
	at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3134)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1818)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1961)
	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2543)
	at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1737)

 

Resolution

To resolve the problem, follow these steps:

  1. Increase the wait_timeout in mysql db setting file my.ini (Windows) or my.cnf (Linux). e.g. On Linux, modify the value in /etc/my.cnf file as below:

    wait_timeout=2814400

    Then, re-start mysql db.

  2. Add the hibernate properties shown below in 'MySQL-Default' master & staging in Talend MDM db setting file jboss-4.2.2.GA\bin\datasources.xml:

    <datasource name="MySQL-Default">
        <master>
            <type>RDBMS</type>
            <rdbms-configuration>
            ...
            <properties>
            <property name="connection.autoReconnect">true</property>
            <property name="connection.autoReconnectForPools">true</property>
           	<property name="connection.is-connection-validation-required">true</property>
            <property name="hibernate.c3p0.acquire_increment">1</property>
            <property name="hibernate.c3p0.idle_test_period">0</property>
            <property name="hibernate.c3p0.timeout">0</property>
            <property name="hibernate.c3p0.validate">true</property>
            </properties>
            ... 
Version History
Revision #:
9 of 9
Last update:
‎04-18-2017 02:59 AM
Updated by:
 
Labels (1)
Tags (1)