To troubleshoot and workaround this issue take the following steps:
1. On target, see how many files post is trying to open by running
ls -l $SP_SYS_VARDIR/rim | wc -l
or on a Sun Server, you can also run:
./usr/proc/bin/pfiles -f < post Pid >
2. Arrive at an approximation of transaction concurrency (show post sessions detail for number of sessions or show capture detail and look for HWM value on source): multiply this value by 3 to determine the number of file-descriptors used by each session to Oracle.
3. Divide the soft ulimit <nofiles> by 3 to determine the number of file-descriptors required by the queue files.
4. If the sum of the number of file-descriptors used for Oracle sessions and those used by the queue-logic exceeds the soft ulimit <nofiles>, increase ulimit <nofiles> to a value that covers the sum and leaves at least (64 + 10) file-descriptors available for general use.
run this as root to find out the nofiles hard limit on the server
run this as SharePlex O/S user to find out the nofiles soft limit for the SharePlex O/S user
ulimit -n 8192 or ulimit -n 16384 to change the soft limit for the SharePlex O/S user. You must bounce SharePlex sp_cop for the new file limit to take effect. If the hard limit is lower, then you have to increase the hard limit first which may require a server bounce.
5. If ulimit <nofiles> seems sufficient, verify that nscd is running on the target.
You can do a ps -ef | grep nscd to check if the daemon is running.
Shareplex needs the configuration settings for nscd to have cache enabled for passwd, group, hosts, ipnodes.
If modifications to nscd.conf are made, nscd service has to be restarted as follows.
Shutdown and startup shareplex as well
For more information on nscd refer to Solution 16944 - "NSCD (Name Server Cache Daemon)":