I have an application that makes heavy use of IPCs for message passing between a producer and multiple consumers. The producer app picks data from the DB and puts them on a queue. The program creates a shared memory segment for each item placed on the message queue. The problem is that, given 5000 records the program processes up to 1074 records and fails to allocate shared memory for the remainder.
I'm running on SUN Solaris 5.8.
Here are my current IPC settings:
*
* IPC Messages
*
4194304000 max message size (MSGMAX)
4194304000 max bytes on queue (MSGMNB)
1000 message queue identifiers (MSGMNI)
65534 system message headers (MSGTQL)
*
* IPC Semaphores
*
32767 semaphore identifiers (SEMMNI)
32767 semaphores in system (SEMMNS)
8192 undo structures in system (SEMMNU)
8192 max semaphores per id (SEMMSL)
8192 max operations per semop call (SEMOPM)
8192 max undo entries per process (SEMUME)
32767 semaphore maximum value (SEMVMX)
16384 adjust on exit max value (SEMAEM)
*
* IPC Shared Memory
*
4294967295 max shared memory segment size (SHMMAX)
1 min shared memory segment size (SHMMIN)
32767 shared memory identifiers (SHMMNI)
32767 max attached shm segments per process (SHMSEG)
Is there any way I can modify the above parameters so that the app succeeds in allocating enough shared memory for processing?
Any assistance is highly appreciated.
I'm running on SUN Solaris 5.8.
Here are my current IPC settings:
*
* IPC Messages
*
4194304000 max message size (MSGMAX)
4194304000 max bytes on queue (MSGMNB)
1000 message queue identifiers (MSGMNI)
65534 system message headers (MSGTQL)
*
* IPC Semaphores
*
32767 semaphore identifiers (SEMMNI)
32767 semaphores in system (SEMMNS)
8192 undo structures in system (SEMMNU)
8192 max semaphores per id (SEMMSL)
8192 max operations per semop call (SEMOPM)
8192 max undo entries per process (SEMUME)
32767 semaphore maximum value (SEMVMX)
16384 adjust on exit max value (SEMAEM)
*
* IPC Shared Memory
*
4294967295 max shared memory segment size (SHMMAX)
1 min shared memory segment size (SHMMIN)
32767 shared memory identifiers (SHMMNI)
32767 max attached shm segments per process (SHMSEG)
Is there any way I can modify the above parameters so that the app succeeds in allocating enough shared memory for processing?
Any assistance is highly appreciated.