JDBC error "(SQLState = 08006) - java.sql.SQLRecoverableException: IO Error: Connection reset" and "/dev/random" file

JDBC error "(SQLState = 08006) - java.sql.SQLRecoverableException: IO Error: Connection reset" and "/dev/random" file

book

Article ID: KB0095217

calendar_today

Updated On:

Products Versions
TIBCO ActiveMatrix BusinessWorks -
Not Applicable -

Description

Description:
This articles describes the impact of "/dev/random" file in resolving  JDBC error: (SQLState = 08006) - java.sql.SQLRecoverableException: IO Error: Connection reset.
Symptoms:
When starting numerous applications simultaneously the following error may be encountered :

"JDBC error reported: (SQLState = 08006) - java.sql.SQLRecoverableException: IO Error: Connection reset".

          at com.tibco.plugin.jdbc.JDBCActivity.eval(Unknown Source)

          at com.tibco.pe.plugin.Activity.eval(Unknown Source)

          at com.tibco.pe.core.TaskImpl.eval(Unknown Source)

          at com.tibco.pe.core.Job.a(Unknown Source)

          at com.tibco.pe.core.Job.k(Unknown Source)

          at com.tibco.pe.core.JobDispatcher$JobCourier.a(Unknown Source)

          at com.tibco.pe.core.JobDispatcher$JobCourier.run(Unknown Source)

caused by: java.sql.SQLRecoverableException: IO Error: Connection reset

          at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:421)

Cause:
This error is seen because the JDBC thin clients uses /dev/random for security purposes and the amount of activity determines how fast /dev/random can deliver random numbers. By default, JDBC uses /dev/random and could cause the JDBC connection creation to hang when /dev/random cannot generate random numbers fast enough.

Issue/Introduction

JDBC error "(SQLState = 08006) - java.sql.SQLRecoverableException: IO Error: Connection reset" and "/dev/random" file

Resolution

JDBC could be made to use /dev/urandom by specifying it as a system property (triple "/" is needed). Add the following property in the application tra file and restart the application:

java.extended.properties -Djava.security.egd=file:///dev/urandom
 

Additional Information

http://en.wikipedia.org/?title=/dev/random