To run WebLogic domains especially if one server is hosting multiple WebLogic domains (for ADF, Forms, OAM, etc.), the server must have enough resources to handle all the processes required for WebLogic and all of the Oracle Fusion Middleware components. In Linux, it is not just the amount of available RAM which can prevent additional services including WebLogic servers from starting but also the maximum user processes a specific OS user can have (ulimit –u). If the OS user, e.g. oracle, reaches the maximum user process limit when attempting to start a WebLogic server, WebLogic will fail to start due to the following error:

“java.lang.OutOfMemoryError: unable to create new native thread”

Also, other errors may (but not always) get produced in the server to where you are unable to run anything in the shell or start a new SSH terminal (unless you use the exec command) due to the following error:

“-bash: fork: retry: Resource temporarily unavailable”

image

To solve this problem, you will need to increase the maximum user process limit for the OS user who is starting WebLogic. To increase the limit, please follow these steps:

1. Verify what you have set for ulimit –u by running ulimit -u

2. Log into the server as root

3. Go to /etc/security and make a backup of limits.conf

4. Open up limits.conf in VI

5. At the end of the file, add the following line:

<OS_USER> – nproc # (where # is a value higher than what you currently have set under ulimit –u)

Example: oracle – nproc 4096

image

6. Save and close the file.

7. Close all SSH windows and log back into the server.

8. Verify the change by running ulimit –u. The value should have increased. If not, please reboot the Linux server.

9. If you were trying to start any managed WebLogic servers at the time of the error, please restart any associating AdminServers and Node Managers.

After applying the steps above, you should be able to start up WebLogic normally.