In Solaris 10, the IPC (shared memory and semaphores) parameters for setting IPC resource limits are not set in /etc/system and are no longer system-wide.
The IPC parameters are now called "resource controls" and are allocated per-user, but the parameters are not stored directly in the user database. Instead, Solaris 10 has introduced new administrative units called projects, and the IPC allotments are added as project attributes and set within the project.
Note that Solaris 10 does not recognize the set-user-id (-s in the sp_cop permissions), and SharePlex does not have its own default project, so the resource limit has to be set for any user that might start SharePlex.
The only resource limit required for SharePlex is the maximum amount of shared memory. The resource name and values are:
privileged = only superuser can change;
4GB = 4GB maximum shared memory. This is the limit for 32 bit processes;
deny = terminate process if this resource is not available.
All users have a project associated with their login. To find the project for a user, login as the user and execute the following command:
$ id -p
uid=6059(jsmith) gid=6006(users) projid=3(default)
In this example, user jsmith belongs to the default group.
To assign this resource limit:
A separate project for SharePlex users:
If the project does not exist, create the project, as superuser, with command projadd:
# projadd -p -K "project.max-shm-memory=(privileged,4GB,deny)" user.
= any unique number to use as the projct ID;
= the name of the user that will belong to this project. This project will be the project for this user upon the user's next login.
If the project already exists and is in use by a logged-in user use command prctl:
# prctl -n project.max-shm-memory -t privileged -v 4GB -e deny -I project user.
SharePlex will be started by the Oracle user:
Oracle creates its own project called group.dba, which should have the shared memory resource limit set to the maximum. If project group.dba exists and the shared memory resource limit is set to the recommended value, no additional changes are required.
SharePlex users belong to default project
The shared memory resource limit can be set for the default project via the prctl command:
# prctl -n project.max-shm-memory -t privileged -v 4GB -e deny -I project default
This change will become active immediately. Note that if the default project is changed, all users who use the default project will have the new limit.