Solved

What is the best way to pull the messages from MQ queue.

Posted on 2014-04-03
7
376 Views
Last Modified: 2014-04-07
I have written a C# Win service to pull the messages from Websphere MQ queue. I have a question here on the approach to be followed.

1. Open the connection only once to the queue and pull all the messages and keep checking for the messages forever and never close the connection.

2. Establish the connection to queue and then pull the message and then close it immediately. And do the same for every message.

What is the best way? And why?

I have opeted the 2nd one, but one of my friend suggest the 1st one. Please suggest me which is the best way.
0
Comment
Question by:GouthamAnand
7 Comments
 
LVL 52

Assisted Solution

by:Carl Tawn
Carl Tawn earned 125 total points
ID: 39975671
I would go with the first option as there is no need to keep connecting and disconnecting, plus the is a lot of additional overhead with doing so. I'd only consider closing the connection each time if there is any chance of hitting the concurrent connection limit.
0
 
LVL 16

Assisted Solution

by:Easwaran Paramasivam
Easwaran Paramasivam earned 125 total points
ID: 39975849
It depends. If your frequency to hit MSMQ is less then go for second option. Otherwise choose first option.

One more point is that if your MSMQ is being modified rarely then better save the result of first hit in a Cache object. So that you no need to read each time the MSMQ.

Analyze based on your requirement and go for it. There is no hard rule to say which one is correct approach.
0
 
LVL 35

Accepted Solution

by:
Gary Patterson earned 200 total points
ID: 39977566
In a high-volume application, option 1 is probably "more right".

Repeatedly opening and closing a connection creates overhead on both the client and the server.

When using this model, you'd MQGET with a relatively long or unlimited timeout interval (read the docs if you use MQ from IMS apps).  MQGET blocks on an empty queue, so you don't burn a lot of CPU while waiting for the next entry.  If you MQGET with a short timeout, you burn a lot of cycles dealing with NO_MSG_AVAILABLE.

Only close if you are shutting the application down or need to disconnect for some reason.

In a low volume application, it doesn't make that much difference, but remember that low-volume applications have a tendency to occasionally and suddenly become high volume applications.
0
Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

 
LVL 5

Assisted Solution

by:lgacs
lgacs earned 50 total points
ID: 39980499
Previous comments are correct, but ...

If the queue manager is remote, you must manage connection failures in case 1 or choose case 2 if performance is not a key issue.
0
 
LVL 35

Expert Comment

by:Gary Patterson
ID: 39980645
Why would you design-in poor performance to an application?
0
 
LVL 5

Expert Comment

by:lgacs
ID: 39983418
Reliability first !
0
 

Author Closing Comment

by:GouthamAnand
ID: 39983648
Thanks a lot to every one for replying to my question.
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Suggested Solutions

Introduction Hi all and welcome to my first article on Experts Exchange. A while ago, someone asked me if i could do some tutorials on object oriented programming. I decided to do them on C#. Now you may ask me, why's that? Well, one of the re…
For those of you who don't follow the news, or just happen to live under rocks, Microsoft Research released a beta SDK (http://www.microsoft.com/en-us/download/details.aspx?id=27876) for the Xbox 360 Kinect. If you don't know what a Kinect is (http:…
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

807 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