How Do I Fix Random Oracle Login Connection Timeouts?

On Linux systems the Oracle JDBC driver has a login dependency on the random number generator “/dev/random”. Under certain circumstances, the “/dev/random” generator can take an inordinate amount of time to generate a random number — this can cause unpredictable timeouts when logging into Oracle.

CopyStorm releases after 8.40.1 patch 28-Nov-2017 have fixed this problem internally. If you are on an earlier release, this article describes how to fix the issue.

Workaround for CopyStorm Versions On or BeforeĀ  8.40.1 Patch Level 28-Nov-2017

Open the CopyStorm.sh script in a text editor and add the flagĀ “-Djava.security.egd=file:/dev/./urandom” to the command that launches CopyStorm.

For example, in our tests we added this flag using the following changes to the CopyStorm.sh script:

RAND=
if [ -e “/dev/urandom” ]; then
RAND=”-Djava.security.egd=file:/dev/./urandom”
fi

“$JAVA” -cp “$MYROOT/lib/*” $RAND -Dcopystorm.root=”$MYROOT” -Dhttps.protocols=”$MYPROTOCOLS” $MYAPPLICATION -license $MYLICENSE $*

If you are not familiar with Linux scripting, the changes say:

  • Set the local RAND variable to blank.
  • If the system has the faster “/dev/urandom” character device:
    • Set the RAND variable to the Java setting which will make Java’s random number generator use “/dev/urandom”.
  • Add the RAND variable to the Java command that launches CopyStorm.