Q: Why error "java.lang.OutOfMemoryError: unable to create new native thread" occurs when running SuperMap iPortal?
A: When creating thread in the pool, a physical thread will be created in the operating system. For certain machines with inadequate memory, the memory needed for operating system to create physical thread will compete with Java virtual machine heap memory when the amount of registered data and visits are large, and the system needs to deal with high concurrent requests, resulting in creating threads failed (The maximum memory of Java virtual machine of iPortal 32-bit package is assigned 512M by default, the maximum thread number is 300). To solve the problem, you can:
(1) Reduce the memory assigned to Java virtual machine by changing Java virtual machine parameter. For example, changing JAVA_OPTS " in %SuperMap iPortal_HOME%/bin/catalina.bat to a smaller value like -Xmx512.
(2) Reduce the active threads of Tomcat connection pool by changing maxThreads in %SuperMap iPortal_HOME%/conf/server.xml to a smaller value.