• Post Reply Bookmark Topic Watch Topic
  • New Topic

JMS vs MQSeries  RSS feed

 
Ronald Schindler
Ranch Hand
Posts: 50
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hope I have the right forum.
To make a long story short, I ran into a question the other day which I'm hoping someone can help me with. The question was:
"MQ Series guarantees delivery of its messages. How can guaranteed delivery be accomplished with JMS?"
I actually looked more toward the app server for this answer but I'm not sure if that was correct. Can anyone provide me with a link to the answer or the answer itself?
Thanks.
 
Andres Gonzalez
Ranch Hand
Posts: 1561
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
[B}"MQ Series guarantees delivery of its messages. How can guaranteed delivery be accomplished with JMS?"
[/B]

Hi ronald.
An application that implements the JMS specification must guarantee the delivery of the message. So, either if you use MQ Series, Fiorano, OpenJMS, and so on, they all must provide this feature.
Guaranteed message delivery is accomplished using a persistent storage (textfile, database, etc., again, it depends on the vendor, for example OpenJMS uses JDBM as a persistant storage, but you can use MySQL, Oracle, etc.). When the receiver is not active (the receiver must be a durable subscriber), the JMS server guarantees that it will keep the message in a persistent storage until the receiver becomes online or when the message has expired (using the expiration date).
Hope this helps...
cheers
 
Andres Gonzalez
Ranch Hand
Posts: 1561
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I also forgot to mention:
When you create a message you can define the delivery mode (persistent or non_persistent).
Check JMSDeliveryMode in the specification.
Persistent means that the message is delivered once and only once.
Non_persistent means that messages are delivered "at most once".
 
raj sekhar
Ranch Hand
Posts: 117
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Does that mean, on persistant mode we need to store all messages in a DB or ONLY the ones that are waiting to be sent are stored?
In effect my question is,
Are the messages stored even after they are sent in the persistant mode?
Thanks
RS
 
Andres Gonzalez
Ranch Hand
Posts: 1561
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Does that mean, on persistant mode we need to store all messages in a DB or ONLY the ones that are waiting to be sent are stored?
In effect my question is,
Are the messages stored even after they are sent in the persistant mode?

Hi raj.
As far as I know the JMS specification does not mention this. I'm using OpenJMS and they manage it this way:
<extracted-from-mailing-list>

OpenJMS does not delete persistent message as they are acknowledged. You either need to configure Database Garbage Collection or do it through the Admin Console. Having said that we are looking at providing a mechanism to allow users to delete messages on the fly (i.e. once they have been acked), which will be enabled through the configuration file.

</extracted-from-mailing-list>
I do not know how other JMS providers handle this.
Hope it helps
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!