OutOfMemoryException by whatever JVM service is a popular error message. What strives me is the fact it does not get logged somewhere in the system. Also the JVM does not report the underlying reason. Mostly the application hosted is bad by design and needs fixing. However in my special case the problem arose as migrating from 32 to a 64 bit environment. The application was simply the same and the error did not occur in the 32 environment. There are numbers of reasons which limits might be hit. The web is full of explanations like file limits, process limits, stack sizes and so on. There are multiple borders which might be hit.
In my case it is a openSuse 42.3 running a 4.4.x 64 bit kernel with systemd event logging. The JVM is a Oracle 1.8 (does not matter if 32 or 64). In journalctl there is nothing reported nor it is in any other logfile in /var/log nor in dmesg.
Do you know how to activate logging of such an event?
This is a typical error message by the JVM without any further explanation:
*Caused by: java.lang.OutOfMemoryError: unable to create new native thread at java.lang.Thread.start0(Native Method) at java.lang.Thread.start(Thread.java:717) at x.x.x.run(ThreadWorker.java