An "unable to create new native thread" error usually indicates that the operating system ran out of memory (in other words, this is not a the-JVM-heap-is-full message). How much RAM do you have? How much swap space? Is it a 32-bit or 64-bit OS? If 32-bit OS, are you running with an option to allocate 3GB of user memory? What is the memory usage on the system (how much free memory)?
32 bit OS, with 4GB. The 3GB option is on. There is ~3GB free memory, JavaService is only at 1GB. Could it be that the 3GB option is causing the problem.
Have also seen this error message
2008-04-03 14:55:27,508 ERROR [org.jboss.util.threadpool.BasicThreadPool] org.jboss.util.threadpool.ThreadPoolFullException: java.lang.OutOfMemoryError: unable to create new native thread
org.jboss.util.threadpool.ThreadPoolFullException: java.lang.OutOfMemoryError: unable to create new native thread
The 3GB option is the problem. That option allocates 3GB to apps and only 1GB to the OS. Any memory allocated by the OS (such as the memory necessary for the OS to manage a thread), comes out of that 1GB. We have found that when we use the 3GB option that it severely restricts the amount of OS resources, such as threads, that we can make use of. Unless you have some really good reasons for using the 3GB option, you should turn it off.