# How to fix Tomcat 8 slow start issue

By Atta Ur Rehman Shah (https://attacomsian.com/about). Published Jan 10, 2019, updated Oct 7, 2022. Topics: DevOps.
Canonical URL: https://attacomsian.com/blog/fix-tomcat-8-slow-start

> Learn how to fix the Tomcat 8 slow start issue using the Haveged open-source library.

If you have installed Tomcat 8 on your Linux server and it is taking forever to (re)start, it is none of your faults. It happens when Java Runtime Environment (JRE) entropy source is short of entropy. 

Tomcat 8+ relies on the `SecureRandom` class to provide randomly generated values for its session ids and other places. JRE can cause delays during startup if the entropy source used to initialize `SecureRandom` is short of entropy. 

> **Note:** If you are using **Tomcat 9 with Java 11**, just install [Haveged](https://wiki.archlinux.org/index.php/Haveged) by typing `sudo apt install haveged` in your terminal, and you're all good. There is no need to modify JDK security files. It might also work for Tomcat 8 with Java 8 (~~not~~ tested and worked). 

To fix the entropy issue, replace the blocking entropy source with a non-blocking source in the `$JAVA_PATH/jre/lib/security/java.security` file. 

Depending on your installation of Java (headless JRE, Oracle Java, OpenJDK ...), `$JAVA_PATH` can be different. In my case (Java 8 OpenJDK on Ubuntu 18.04), it is `/usr/lib/jvm/java-8-openjdk-amd64`.

```bash
$ nano /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/java.security
```

Find the line with `securerandom.source=file:/dev/random` text and change it to `securerandom.source=file:/dev/./urandom`. Save the file and restart Tomcat 8. That's it.

You can also fix this issue by setting the following system property that will configure the JRE to use a non-blocking entropy source.

```bash
-Djava.security.egd=file:/dev/./urandom
```
