JDBC 11g: SQLException(“Io exception: Connection reset”)
October 7, 2019 Leave a comment
Problem:
Connection using 11g ojdbc was very slow and most of the time was failing with Connection reset
error after 60s (default inbound connection timeout). Database alert log contained WARNING: inbound connection timed out (ORA-3136)
errors.
Reason:
Oracle 11g JDBC drivers use random numbers during authentication. Those random numbers are generated by OS using /dev/random
and if there is faulty/slow hardware or not too much activity on the system this generation can be slow, which causes slowness during jdbc connection.
Solution:
Instead of /dev/random indicate non-blocking /dev/urandom as java command line argument:
# java -Djava.security.egd=file:/dev/urandom -cp ojdbc8.jar:. JDBCTest "stbyrac-scan.example.com"