Out of Memory Problems on Oracle 10 / Solaris 10
Many kernel parameters have been replaced by so called resource controls in Solaris 10. It is possible to change resource controls using the prctl command. All shared memory and semaphore settings are now handled via resource controls, so any entries regarding shared memory or semaphores (shm & sem) in /etc/system will be ignored.
Here is the procedure we followed to modify the kernel parameters on Solaris 10 / Oracle 10.2.0.2.
Unlike earlier releases of Solaris, most of the system parameters needed to run Oracle are already set properly, so the only one you need is the maximum shared memory parameter. In earlier versions this was called SHMMAX and was set by editing the /etc/system file and rebooting. With Solaris 10 you set this by modifying a «Resource Control Value». You can do this temporarily by using prctl, but that is lost at reboot so you will need to add the command to the oracle user's .profile.
The other option is to create a default project for the oracle user.
# projadd -U oracle -K \ "project.max-shm-memory=(priv,4096MB,deny)" user.oracle
What this does:
Now you can also modify the max-sem-ids Parameter:
# projmod -s -K "project.max-sem-ids=(priv,256,deny)" \
Check the Paramters as User oracle
$ prctl -i project user.oracle