Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!uwvax!tank!ncar!dinl!noren From: noren@dinl.uucp (Charles Noren) Newsgroups: comp.unix.questions Subject: Re: Insufficient Resource Error on msgsnd Call Keywords: msgsnd, msgrcv, Ingres, UNIX, System V, message queues, Sun, SunOS4.0 Message-ID: <1031@dinl.mmc.UUCP> Date: 25 May 89 21:18:56 GMT References: <1023@dinl.mmc.UUCP> <589@biar.UUCP> <1026@dinl.mmc.UUCP> Reply-To: noren@dinl.UUCP (Chuck Noren) Organization: Martin Marietta I&CS, Denver CO. Lines: 51 The problem is solved and corrected. Thanks to all who have contributed so many good answers that opened up my understanding of message queues more. Particular thanks goes to Doug Looms and Fred DePalm for pointing out the correct Sun reference manual that tells how to resize the options, and to Keith Gregory who gave a brief tutorial on the important "#define" sizing constants for message queues. The quality of all the responses was great, which included some tips on improving my data flow and general information based on experience on what and what not to do on message queues. A summary of what I found out is: First an important Sun manual: SYSTEM V ENHANCEMNETS OVERVIEW (Sun part No. 800-1541-03). For Sun 3 systems, the configuration file needs to be modified (in directory /sys/sun3/conf) to include the following lines: options MSGPOOL=xxx ...where xxx is the size in k bytes of the system V message queue memory pool. It must be < 255. options MSGMNI=xxx ...where xxx is the number of possible message queues allowed by the system. options MSGTQL=xxx ...where xxx is the limit of the number of message packets in the system. options MSGMNB=xxx ...where xxx is the limit of the number of bytes that can be queued at a message queue. There are some other parameters described in the SYSTEM V ENHANCEMENTS OVERVIEW that pertain to the sizing of the message itself. Since we have the luxury of delivering a stand-alone system, we configured the message queues based on the mimimum size of messages so that the contraining factor will be MSGMNB (the maximum number of bytes queued at message queue). Since all the processes are actors, any process that blocks at a queue (the queue being full -- forced by the definition of the parameters) will have another process at the other side of the queue that is processing the messages, thus freeing up space in the queue. Thanks again for all the help. I was also particularly pleased with how quickly Sun (Fred DePalm) responded and pursued the problem until it was resolved. Thanks again!! -- Chuck Noren NET: ncar!dinl!noren US-MAIL: Martin Marietta I&CS, MS XL8058, P.O. Box 1260, Denver, CO 80201-1260 Phone: (303) 971-7930