aspose file tools*
The moose likes Performance and the fly likes MQ Prorgamming with Java - Improving Performance Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Spring in Action this week in the Spring forum!
JavaRanch » Java Forums » Java » Performance
Bookmark "MQ Prorgamming with Java - Improving Performance" Watch "MQ Prorgamming with Java - Improving Performance" New topic

MQ Prorgamming with Java - Improving Performance

Gabbar singh

Joined: Nov 23, 2007
Posts: 11
Hi - We are in the process of writing a Java component that would read from an MQ. This Q would get around 20K messages per hour. Our Java program needs to read this Q, parse the data and process it.

Are there any guidelines/ performance improving techniques while programming Java with MQ for Txns of this volume ? Any tips or pointers to sites containing MQ Java tuning techniques would be helpful. Thanks
Peter Chase
Ranch Hand

Joined: Oct 30, 2001
Posts: 1970
What's an "MQ"?

For that matter, while I can guess, what's a "Q" and a "Txn"?

You'll have a better chance of getting useful replies if you UseRealWords.

Betty Rubble? Well, I would go with Betty... but I'd be thinking of Wilma.
Sreejith Sreekumar

Joined: Feb 04, 2008
Posts: 2
Try IBM developerworks site. It woudl have the complete spec of the mq api. and also a couple of red books on performance. But dont expect too much. 20K mesages should be pretty fine..Keep doing memory profiling to fine tune.
Ben Souther

Joined: Dec 11, 2004
Posts: 13410

"kutts kutt",
Please check your private messages.

Java API J2EE API Servlet Spec JSP Spec How to ask a question... Simple Servlet Examples jsonf
William Brogden
Author and all-around good cowpoke

Joined: Mar 22, 2000
Posts: 12806
Assigning a separate Thread to each message read might be a good idea, that way any hold-ups in message processing would not cause a buildup of messages in the queue.

Raees Uzhunnan
Ranch Hand

Joined: Aug 15, 2002
Posts: 126
A queue send/receive model enables better parallelism; so you are in the right track. to scale the processing; simply increase the instances of the queue receiver. have 10-12 threads/ JVM and have 1-3 JVM.

In your case is you need to process 20,000 messages / hour i.e.
Per second processing 20,000/3600 = 6
suppose your processing per transaction takes 1 second; all you need is 6 threads and one JMV. But in reality based on complexity of your message you should be taking less than one sec.

Sun Certified Enterprise Architect
Java Technology Blog
Don't get me started about those stupid light bulbs.
subject: MQ Prorgamming with Java - Improving Performance