KB-1132 "No operations allowed after connection closed... Caused by: java.net.SocketException: Broken pipe"

Symptoms

Users are unable to access a MySQL business datasource even though the credentials are correct and the database is running. The following messages may be seen in the application server log or application server log:

INFO  [stdout] (ajp-/0.0.0.0:8009-11) com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
INFO  [stdout] (ajp-/0.0.0.0:8009-11) Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 871,835,427 milliseconds ago.  The last packet sent successfully to the server was 871,835,427 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.
INFO  [stdout] (ajp-/0.0.0.0:8009-11) Caused by: java.net.SocketException: Broken pipe

Cause

This may be caused by a separate datasource which opens a large number of idle connections that are not automatically cleaned up.

If there is a datasource that is failing to connect for some reason, this can be seen in the server logs. This could be an old datasource that was used during testing and is now offline.

Action

To correct this issue, perform the following:

  1. Stop JBoss.
  2. In the *-ds.xml file, remove the problematic business datasource and any unused business data sources.
  3. Restart JBoss and check to see if all of the configured datasources are bound.

Affected Versions

This article applies to all versions of Appian using JBoss EAP as an application server.

Last Reviewed: February 2017

Related
Recommended