Some folks report much longer "hang" times...
I've also installed Apache Tomcat 9.0.0.M9 on a different laptop (Windows 7) - and the start-up is normal (~1+ second)
On my primary development laptop (MSI, Windows 10, Java 1.8.0_102-b14) - the start-up takes ~1 minute+
I happened across this article:
which suggested changing the protocol from "HTTP/1.1" to "org.apache.coyote.http11.Http11NioProtocol"
Problem solved - for now - until I have time to dig into this more and determine root cause.
Some folks have suggested this problem is due to a lack of entropy in the OS...
- http://wiki.apache.org/tomcat/HowTo/FasterStartUp#Entropy_Source
- "Djava.security.egd=file:/dev/./urandom"
- "replacing the blocking entropy source (/dev/random) with a non-blocking one actually reduces security because you are getting less-random data"
- http://security.stackexchange.com/questions/89/feeding-dev-random-entropy-pool
- http://www.labouisse.com/misc/2014/06/19/tomcat-startup-time-surprises
- https://support.run.pivotal.io/entries/59869725-Java-Web-Applications-Slow-Startup-or-Failing
- http://stackoverflow.com/questions/20315022/java-slow-entropy-related-issue
- http://stackoverflow.com/questions/137212/how-to-solve-performance-problem-with-java-securerandom/2325109#2325109
- "if you want a cryptographically strong random number in Java, you use SecureRandom. Unfortunately, SecureRandom can be very slow"
Given the above, the recent Python 3.6 release included a change that caught my eye
- PEP 524 -- Make os.urandom() blocking on Linux
- https://www.python.org/dev/peps/pep-0524/