Page History
...
Code Block |
---|
java.lang.RuntimeException: Timeout reached (30s) for process: |
then you are probably are being hit by a problem with your entropy pool or network settings. This problem can occur with any JDBC database connection and with any operating system. This problem It is not related to the JOC Cockpit or to the DBMS.
The article explains why this happens and what you can do about it.
...
The JDBC interface requires random numbers to encrypt the connection. Java releases before 1.12 use the /dev/random
file for a high randomness quality of randomness. However, when the entropy pool is is falling falls below the number of 64 units then /dev/random
will block while reading random numbers.
The JDBC interface might be configured to read from the file /dev/urandom
to get random numbers. The difference with the /dev/random
file being between the two files is that /dev/urandom
does not block if random numbers are are not immediately available.
...
If the "entropy_avail" result is too small (JDBC needs 40 bytes of secure random numbers) then you have to increase the pool by producing some environmental noise. This could be a hurdle , when you operate a headless server (no console) as the noise is produced by the keyboard, mouse, login etc.
...
The /dev/random
file will deliver the next random number when the pool has reached more than 64 entropy units and otherwise blocks any application applications from accessing the entropy pool. Such blocks can delay e.g. , for example, a JDBC connection to a database and may result in timeouts being exceeded.
...
Monitor Entropy Pool Use
You can check the use of random numbers by running the following commands in two separate console windows:
...
Java holds the security configuration, for example with , in the ./jre/lib/security/java.security
or ./conf/security/java.security
files. You can modify this file to point to /dev/urandom
instead of /dev/random
like this:
...
Code Block | ||||
---|---|---|---|---|
| ||||
set JAVA_OPTIONS="-Djava.security.egd=file:///dev/urandom" |
Operation
For the permanent operation of the JOC Cockpit on Unix, add the following setting to your /home/<user-account>/.jocrc
file:
Code Block | ||||
---|---|---|---|---|
| ||||
export JAVA_OPTIONS="-Djava.security.egd=file:///dev/urandom" |
For the permanent operation of the JOC Cockpit on Windows, modify or add the following setting to your /home/<user-account>/.jocrc
file:
When operating the JOC Cockpit as a Windows Service then run the following from the .\service
directory of the installation run:
- for JOC Cockpit:
js7_jocw.exe
- Example:
C:\Program Files\sos-berlin.com\js7\joc\service\js7_jocw.exe
- Example:
- This brings up a utility that which allows Java options to be specified:
For further information see see the JS7 - How To - Apply Java Options article.
Network Issues
A wrong network configuration can cause delays when executing Java and when accessing a database , e.g. - for example, if host name resolution takes too long.
For Unix check the /etc/resolv.conf
configuration file if whether entries for name servers and host name resolution are correct in the /etc/resolv.conf
configuration file.
Oracle® DBMS Issues
The Oracle® FAN functionality provides enhanced high availability by allowing very fast detection of failures. However, if the FAN functionality is not set up correctly then , this can result in a denial of connection though although the Oracle listener is accessible, e.g. for example, by tnsping
.
To check this root cause the FAN can be disabled by use of using a Java option like this:
Code Block | ||||
---|---|---|---|---|
| ||||
export JAVA_OPTIONS="-Doracle.jdbc.fanEnabled=false" |
...