Solved

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

Posted on 2014-04-03
7
360 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 34

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
Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

 
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 34

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

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Suggested Solutions

Welcome my friends to the second instalment and follow-up to our Minify and Concatenate Your Scripts and Stylesheets (http://www.experts-exchange.com/Programming/Languages/.NET/ASP.NET/A_4334-Minify-and-Concatenate-Your-Scripts-and-Stylesheets.html)…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
This video gives you a great overview about bandwidth monitoring with SNMP and WMI with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're looking for how to monitor bandwidth using netflow or packet s…

757 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

19 Experts available now in Live!

Get 1:1 Help Now