I've created a working application loosely based on this example:
http://remark.wordpress.com/articles/transactional-message-processing-with-activemq-and-nms/
I'm able to publish and consume messages just fine although I haven't done
any performance testing.
My general requirements are
* Use NMS ActiveMQ in a C# project
* Another department will publish to the queue and I will consume the
message
* I need to acknowledge the message was successfully processed - retry
processing if a failure occurred
* There will be a high volume of messages
General questions
1) consumer.Receive() vs. consumer.Listener += OnMessage;
Obviously receive will block and the event is asynchronous.
Other than that is there a reason to use one over the other (i.e.
performance )?
2) AcknowledgementMode - ClientAcknowledge / IndividualAcknowledge /
Transactional
I know the response coding is different
message.Acknowledge();
session.Commit();
session.Rollback();
I've read the description:
http://activemq.apache.org/nms/msdoc/1.6.0/vs2005/Output/html/T_Apache_NMS_AcknowledgementMode.htm
Individual and Client seem to be the same except that Client could
acknowledge multiple messages
at a time. What I can't seem to figure out is why would I choose one
methodology over the other
when they all seem to do the same thing?
3) Consumer selector
The example code has: session.CreateConsumer(this.queue, "2 > 1");
This ** seems ** similar to 2 > 1 which redirects stderr to stdout.
What exactly is this "2 > 1" selector doing and is it really necessary
as there is an overload
that doesn't take a selector?
4) RedeliveryPolicy.MaximumRedeliveries
After the maximum number of retries occurs, what happens to the message?
5) High volume
I currently don't have a number for what this would look like, but in
general, is there
any setting, etc. that I should be looking at to ensure that I can
handle ** receiving **
a large volume of data?
Thanks
http://remark.wordpress.com/articles/transactional-message-processing-with-activemq-and-nms/
I'm able to publish and consume messages just fine although I haven't done
any performance testing.
My general requirements are
* Use NMS ActiveMQ in a C# project
* Another department will publish to the queue and I will consume the
message
* I need to acknowledge the message was successfully processed - retry
processing if a failure occurred
* There will be a high volume of messages
General questions
1) consumer.Receive() vs. consumer.Listener += OnMessage;
Obviously receive will block and the event is asynchronous.
Other than that is there a reason to use one over the other (i.e.
performance )?
2) AcknowledgementMode - ClientAcknowledge / IndividualAcknowledge /
Transactional
I know the response coding is different
message.Acknowledge();
session.Commit();
session.Rollback();
I've read the description:
http://activemq.apache.org/nms/msdoc/1.6.0/vs2005/Output/html/T_Apache_NMS_AcknowledgementMode.htm
Individual and Client seem to be the same except that Client could
acknowledge multiple messages
at a time. What I can't seem to figure out is why would I choose one
methodology over the other
when they all seem to do the same thing?
3) Consumer selector
The example code has: session.CreateConsumer(this.queue, "2 > 1");
This ** seems ** similar to 2 > 1 which redirects stderr to stdout.
What exactly is this "2 > 1" selector doing and is it really necessary
as there is an overload
that doesn't take a selector?
4) RedeliveryPolicy.MaximumRedeliveries
After the maximum number of retries occurs, what happens to the message?
5) High volume
I currently don't have a number for what this would look like, but in
general, is there
any setting, etc. that I should be looking at to ensure that I can
handle ** receiving **
a large volume of data?
Thanks