Communications link failure with MySQL db

Overview

An error message may be appended to JBoss's 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, please do the following steps:

  • Increase thewait_timeout in the MySQL db setting file my.ini (Windows) or my.cnf (Linux). For example, on Linux modify the value in your /etc/my.cnf file as follows:

    wait_timeout=2814400

    Then re-start the MySQL db.

  • Add the following hibernate properties in MySQL-Default master & staging in the Talend MDM db setting file jboss-4.2.2.GA\bin\datasources.xml, such as:

    <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 #:
3 of 3
Last update:
‎06-16-2017 12:02 PM
Updated by:
 
Labels (1)