Thursday, October 25, 2007

Increasing Progress SonicMQ Client Performance

Progress SonicMQ is a Java Message Service (JMS) implementation. The client performance can be improved by using prefetch and prefetch_threshold parameters. The default values for the parameters are 3 and 1 respectively.

What these parameters are used for is to reduce the network traffic by grapping 3 messages (if available) from the queue with one network request instead of 1 message per request. The threshold is used for filling the local client buffer before the next message processing requests a message.

One misconception with this is that, if there are two receivers for one destination, and lets say 6 messages in it, the first receiver will get the first 3 messages and the second one will get the next 3 messages from the queue. This does not mean the message is processed, but just retreived from the queue. If the client does not acknowledge these message, they are returned back to the queue.

1 comment:

Anonymous said...

People should read this.