It took some time to found out what the cause was. It was the following combination. The servers are running on VMWare ESX server with Linux.
The cause was the behaviour of the '/dev/random' and '/dev/urandom' devices. Those devices are generating random numbers. It is the combination of VMWare and the '/dev/urandom' device, that causes problems. In this case the '/dev/urandom' is locked when a process is accessing it. That resultat that other processes must and will wait until the devices is available.
Off course, there is a solution for it. At last we found out that someone else also run into this issues! Credits and kuddos to Oleg Shpak!
We can solve this as follows, four solutions:
1) Change the java configuration in a way that '/dev/urandom' is not mapping directly to '/dev/random'. Change the file $JAVA_HOME/jre/lib/security/java.security:
securerandom.source=file:/dev/urandominto
securerandom.source=file:/dev/./urandom
2) Add an Java option during startup of the JVM: .
-Djava.security.egd=file:/dev/./urandom
3) Make sure that the /dev/random is always filled, via the rngd daemon. This solution works for all application running on the OS.
4) Not nice, but it works:
mv /dev/random /dev/random.org
ln -s /dev/urandom /dev/random