Solved

How to set IPC limits in Solaris 2.51

Posted on 1997-09-07
2
425 Views
Last Modified: 2013-12-26
Hi:

I've got a little program that is trying to add (about) 1000 messages to
an IPC message
queue that it has created.  I've set the following system parameters in
Solaris
2.51 in /etc/system to:  

        set msgsys:msginfo_msgtql = 65560
        set msgsys:msginfo_msgmnb = 1024000

This should set the maximum number of messages in any queue to be 65K,
and the total
number of bytes for a message queue to 1M.

The program is running on an Ultra 1 with 128 meg of memory, and the
system is not taxed.
The program is to add a finite number of messages to the queue, and a
reader
is to later read the messages from the queue.

I am able to create ONLY 341 messages before I get the error EAGAIN
(errno == 11),
and strerror() prints the text:  "Resource temporarily unavailable".  I
limit at 341
regardless of whether IPC_NOWAIT is set in the flags or not.

I have changed the msgtql from 65560 to 512, and I can still add only
341 messages
before croaking.  Does anyone know what's going on here?  

One other simple question:  Do Solaris Message Queues have built-in
semaphore protection
(unlike Shared Memory where you have to roll  your own semaphores)?
That is to say,
can multiple processes add to and remove from a particular Message Queue
without
having to implement a semaphore?

Any help would be most gratefully appreciated.  Please respond to the
news group or to: mshack@interaccess.com.

Thanks.

Mark

PS:

What I'm trying to do is to obtain timing information from a
transactional processing
system.  I want to track a number (say, 1000) of transactions through
their lifetimes
in the system.  Each application type will create a message recording
the transaction type, their application type, and the time that the
transaction was
acted upon by the application. Each of these "timings" are then to be
added to
the message queue.  For 1000 records, the message queue needs to be able
to hold about
5000 21-byte messages.  We are using a message queue because we want to
be able
to "live" store a number of "timing records" with as little trouble and
impact (ala
Heisenberg) as possible.  Once all the transactions have been processed,
we
want to dump the message queue out via a reader and analyze the timings.
If you have any suggestions as to how this can be better done by
something other
than message queues, please let me know.  I'm using message queues
because
they have IPC, a record-based structure capable of storing more than one
message/record easily, and because I think it has built-in semaphore
support.
Please advise if there are caveats to that last assumption.
0
Comment
Question by:mshack090797
2 Comments
 

Expert Comment

by:runt
ID: 1294799
There is also a system inposed limit on the total number of messages that can be in queues, have you checked what your system has it set to?
0
 
LVL 3

Accepted Solution

by:
EricKaplan earned 50 total points
ID: 1294800
Check out the limits on: datasize, stackzize & memorysize
-Eric.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
sumNumber challenge 16 110
Line meaning 9 81
AIX 5.x set up arrow to recall 11 46
How to clone solaris 10 machine 33 112
Introduction: Hints for the grid button.  Nested classes, templated collections.  Squash that darned bug! Continuing from the sixth article about sudoku.   Open the project in visual studio. First we will finish with the SUD_SETVALUE messa…
Have you tried to learn about Unicode, UTF-8, and multibyte text encoding and all the articles are just too "academic" or too technical? This article aims to make the whole topic easy for just about anyone to understand.
Learn how to navigate the file tree with the shell. Use pwd to print the current working directory: Use ls to list a directory's contents: Use cd to change to a new directory: Use wildcards instead of typing out long directory names: Use ../ to move…
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.

911 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

23 Experts available now in Live!

Get 1:1 Help Now