This article applies to all supported VMware GemFire versions. Java applications allocate thread stacks in native memory, which exists outside the JVM heap (Xmx). Consequently, standard heap tuning has no direct effect on the OS's ability to spawn new threads.
Native memory exhaustion typically occurs when the process hits OS-level limits or when the system lacks sufficient virtual memory to back new thread stacks. An application can encounter these errors even while having significant free heap space.
A java.lang.OutOfMemoryError with the message "unable to create new native thread" indicates the Operating System cannot allocate a new thread. This is a native resource issue, not a Java Heap (Xmx) issue.