Sponsored Content
Full Discussion: Message queues
Top Forums Programming Message queues Post 71895 by blowtorch on Monday 16th of May 2005 11:49:36 PM
Old 05-17-2005
You can go for a client-server sort of model: The server can have two message queues that are known to all client systems.
One will be a control queue - when a client comes up it will create a new message queue and send the message queue id that is obtained to the server over the control queue. The server will store the msqids-pid(of the client) pairs - where these will be used will be seen later.
The second message queue will be the data queue - this queue will be the one where all clients send their data messages. The message type here must be something unique, the pid of the client process will be perfect.
The server can read messages from the data queue in the order that they are available - msgtyp=0 can be used. The server will then send messages to all the queues that are known to it (the msqid - pid pairs stored before will be used here), except to the pid that sent the message to it. Here you can use msgtyp=1 - you will never get the pid of any client equal to 1.

In cleanup, the server will remove the control and data message queues, the clients will delete the message queues that they created.

I know that the programming part may be a bit complicated, but with an unknown number of clients connecting, I think that this would be the best way to go.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

message queues

let 3 processes a, b and c are sharing msgs using msg queues.process 'a' sending msg to 'c' and in turn 'c' send sthat msg to 'b'.if something happens to c how can 'a' and 'b' know that 'c' is not available?????? (2 Replies)
Discussion started by: sukaam
2 Replies

2. Solaris

rogue message queues solaris 9

We have message queues created from our ERP system to our tax system via an application api written by the ERP software vendor. Occasionally when a user does not gracefully exit the ERP application, the message queue hangs. After a few months, this becomes a problem as the queues are all used... (2 Replies)
Discussion started by: MizzGail
2 Replies

3. Linux

maximun number of message queues

how to check the maximun number of message queues in current linux enviornment? is there any command ? (4 Replies)
Discussion started by: princelinux
4 Replies

4. Programming

shared memory and message queues

Hi, According to my understanding.. When message queues are used, when a process post a message in the queue and if another process reads it from the queue then the queue will be empty unlike shared memory where n number of processess can access the shared memory and still the contents remain... (2 Replies)
Discussion started by: rvan
2 Replies

5. UNIX for Advanced & Expert Users

UNIX Message Queues vs. Sockets

If I use sockets for IPC, and can easily distribute my applications. UNIX Message Queues are local to the processor. As I understand it, Message Queues still incur system call overhead, just like socket calls. What advantage does a UNIX Message Queue provide versus a TCP or UDP Socket,... (2 Replies)
Discussion started by: zen29sky
2 Replies

6. UNIX for Advanced & Expert Users

message queues

#include <sys/ipc.h> #include <sys/msg.h> int main() { int qid; int t; struct msgbuf mesg; qid=msgget(IPC_PRIVATE,IPC_CREAT); mesg.mtype=1L; mesg.mtext=1; t=msgsnd(qid,&mesg,1,0); printf("%d",t); } the program prints -1 as the result of msgsnd ,which means that msgsnd doesn't... (1 Reply)
Discussion started by: tolkki
1 Replies

7. UNIX for Dummies Questions & Answers

message queues

can any body provide a tutorial that explains the concept of message queues in UNIX in great detail (1 Reply)
Discussion started by: asalman.qazi
1 Replies

8. Programming

Persisting message queues to disk

Hi, I have searched the forums and could not find a relavant thread discussing my use case, hence the new post. Basically am trying to pass on work to dummy worker instances from controller which will pass on work to workers (client) To make use of host capacity, am planning to serialize... (2 Replies)
Discussion started by: matrixmadhan
2 Replies

9. Shell Programming and Scripting

Cleaning Message Queues

i have an application installed on AIX 5.3 and i have made a script that shutdown a proccesses that exceeded 10000kb of memory usage but i have a problem with cleaning the message queues of these proccesses after shutting them down. Is there any way to clean the message queues for this particular... (8 Replies)
Discussion started by: Portabello
8 Replies

10. UNIX for Advanced & Expert Users

Performance calculation for Message Queues

i have a program(C++ Code) that sends/receives information through queue's (Uses MQ) Is there any UNIX/LINUX tool that calculates the load and performance time for the same. If not how do i design the program that calculates the performance time. i know that time.h can be used but it gives... (2 Replies)
Discussion started by: vkca
2 Replies
qmail-queue(8)                                                System Manager's Manual                                               qmail-queue(8)

NAME
qmail-queue - queue a mail message for delivery SYNOPSIS
qmail-queue DESCRIPTION
qmail-queue reads a mail message from descriptor 0. It then reads envelope information from descriptor 1. It places the message into the outgoing queue for future delivery by qmail-send. The envelope information is an envelope sender address followed by a list of envelope recipient addresses. The sender address is preceded by the letter F and terminated by a 0 byte. Each recipient address is preceded by the letter T and terminated by a 0 byte. The list of recipient addresses is terminated by an extra 0 byte. If qmail-queue sees end-of-file before the extra 0 byte, it aborts without placing the message into the queue. Every envelope recipient address should contain a username, an @ sign, and a fully qualified domain name. qmail-queue always adds a Received line to the top of the message. Other than this, qmail-queue does not inspect the message and does not enforce any restrictions on its contents. However, the recipients probably expect to see a proper header, as described in qmail-header(5). Programs included with qmail which invoke qmail-queue will invoke the contents of $QMAILQUEUE instead, if that environment variable is set. FILESYSTEM RESTRICTIONS
qmail-queue imposes two constraints on the queue structure: each mess subdirectory must be in the same filesystem as the pid directory; and each todo subdirectory must be in the same filesystem as the intd directory. EXIT CODES
qmail-queue does not print diagnostics. It exits 0 if it has successfully queued the message. It exits between 1 and 99 if it has failed to queue the message. All qmail-queue error codes between 11 and 40 indicate permanent errors: 11 Address too long. 31 Mail server permanently refuses to send the message to any recipients. (Not used by qmail-queue, but can be used by programs offering the same interface.) All other qmail-queue error codes indicate temporary errors: 51 Out of memory. 52 Timeout. 53 Write error; e.g., disk full. 54 Unable to read the message or envelope. 55 Unable to read a configuration file. (Not used by qmail-queue.) 56 Problem making a network connection from this host. (Not used by qmail-queue.) 61 Problem with the qmail home directory. 62 Problem with the queue directory. 63 Problem with queue/pid. 64 Problem with queue/mess. 65 Problem with queue/intd. 66 Problem with queue/todo. 71 Mail server temporarily refuses to send the message to any recipients. (Not used by qmail-queue.) 72 Connection to mail server timed out. (Not used by qmail-queue.) 73 Connection to mail server rejected. (Not used by qmail-queue.) 74 Connection to mail server succeeded, but communication failed. (Not used by qmail-queue.) 81 Internal bug; e.g., segmentation fault. 91 Envelope format error. SEE ALSO
addresses(5), envelopes(5), qmail-header(5), qmail-inject(8), qmail-qmqpc(8), qmail-send(8), qmail-smtpd(8) qmail-queue(8)
All times are GMT -4. The time now is 08:29 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy