• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Difference between JMS Queue and MQ queue

 
Ranch Hand
Posts: 110
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi,

I would like to know what is the difference between JMS queue and MQ queue. When should i use and what? Where as i know we can connect MQ queue and JMS queue by using JMS API.

Could you please explan me in more clear?


Appreciate your help.


 
Ranch Hand
Posts: 558
2
Hibernate Spring Java
  • Likes 2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

murali kankanala wrote:Hi,

I would like to know what is the difference between JMS queue and MQ queue. When should i use and what? Where as i know we can connect MQ queue and JMS queue by using JMS API.

Could you please explan me in more clear?


Appreciate your help.




JMS is the specification provided by Sun for messaging. MQ Queue is the IBM's implementation of JMS. Similary JBoss has its own implementation. JMS Queue is the generic term. MQ Queue is the concrete implementation provided by IBM.
 
murali kankanala
Ranch Hand
Posts: 110
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Kumar Raja,

I understood what you said. But could you please refer this link http://www.ibm.com/developerworks/websphere/library/techarticles/0610_bicheno/0610_bicheno.html
Here what is JMS Server means? I knew what is MQ Server.

I will give one scenario: Lets I have WebSphere and IBM MQ Server seperately. I want to send messages to MQ Server and receive messages from MQ Server to my MDB. For this MQ folks configured MQ server. We do get Host Name, Queue Manager and Queue names. Now in in the WebSphere i have to create a Queue Connection Factory and Queues. Here are we creating any Physical Queues in WebSphere or just we are trying to create a JNDI with which we can connect to actual MQ Queue Manager/Queues?

If you see diagram in the link that i have provided they are explaning JMS Server and MQ Server are different.

Could you please explain me?


Thank you.
 
Kumar Raja
Ranch Hand
Posts: 558
2
Hibernate Spring Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Murali,

I went through the link you provided and it seems to discuss about configuring JMS Nodes which I assume to be specific to IBM's implementation. I did not use much of MQ, so we need to wait for some one else to explain this. I would be glad to know this architecture. If you come across the answer, please post it back here, so that people like me can be benefited.
 
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Kumar Raja wrote:

murali kankanala wrote:Hi,

I would like to know what is the difference between JMS queue and MQ queue. When should i use and what? Where as i know we can connect MQ queue and JMS queue by using JMS API.

Could you please explan me in more clear?


Appreciate your help.




JMS is the specification provided by Sun for messaging. MQ Queue is the IBM's implementation of JMS. Similary JBoss has its own implementation. JMS Queue is the generic term. MQ Queue is the concrete implementation provided by IBM.



Let's say we have a JMS server. And we have an MQ Queue. Can we consume the MQ Queue from the JMS server ? how?
 
Ranch Hand
Posts: 123
Hibernate Spring Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Receiving Message from MQ Queue
========================

MQ Manager
========
MQ Queue

Wespher Server
===========
Listener Port
JMS Queue - Referring the MQ Queue and Listener Port
JMS Queue Connection Factory - Referring the MQ Q Manager and Listener Port

Java Code
==========
MDB will listen to the JMS Queue (given above)
MDB will receive message from JMS Queue (JMS Queue will receive message from MQ Queue ) and will process.

Sending Message to MQ Queue
====================
Use com.ibm.mq api to connect to
1. MQ Queue Manager
2. MQ Queue
3. Send Message in Queue
4. Close the session.

 
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Queue or Topic are physical in nature and stored in hard drive (Similar to file but the management process of queues is different).
Queue/Topic can be provided by any Middleware (Middleware is a software like JVM) vendor such as Apache MQ Artemis (Apache) or WebSphere MQ (IBM).

Queues/Topics provided by the Middleware vendors are managed by Queue Manager (Physical Object).

Queue is meant for 1-to-1 communication.

Topic is meant for 1-to-M communication.

JMS is just API similar to JDBC API's. These JMS API's are specific for JAVA EE.

What is API? It is a glue software written for communication between 2 different disparate applications using specification language 'Interface Definition Language'.

JMS API's have encapsulated both Queues/Topics. It does not provide any protocol either. The Middleware such as 'IBM MQ' that your enterprise is providing for your application takes care of Application Layer protocol.

All you need to do as a programmer is to adhere&use the JMS API and pass parameters for establishing connection and communication.
If you are a Java programmer you just focus on language and decide whether to use JNI or CORBA or JMS or WebService or JDBC or File System to communicate with another another application which could be Java or C or .NET running within intranet or internet.
 
Ranch Hand
Posts: 44
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
When you say IBM WebSphere Message Broker 6.1 you mean IBM WebSphere Application Server (6.1) built-in MQ for example when you install Sun Application Server 8.XX it has its own MQ which is Sun MQ 3.7 and IBM WebSphere MQ is an standalone entity which you can install and use as a separate instance on your machine.

Difference between these queues as much as i know is NOTHING they act same. Broker and IBM Websphere MQ Listner are almost same aprt from extra functionality in broker.

When you use these two in contension in same application then you have to map your application server JMS queues to MQ queues.For Example:

Application Message --> Application Server JMS Queue --> MQ Queue
 
Saloon Keeper
Posts: 27763
196
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
JMS is the Enterprise Java standard for messaging. I suppose now that it has been spun off from Oracle, it belongs to the Jakarta project. Point being that if you code according to the spec and using the spec-defined API. it's "write once/run anywhere". In this particular case "anywhere" means to any server(s) that implement the server-side parts of the JMS spec. Which includes, but is not limited to WebSphere MQ.

Systems like RabbitMQ and WebSphere MQ are messaging implementations and it is their option whether to support JMS and/or other messaging interfaces. And, of course, since in an ideal world (according to IBM), you'd be doing JMS from CICS applications written in Java and running on a mainframe, they're quite happy to support JMS.
 
Don't get me started about those stupid light bulbs.
reply
    Bookmark Topic Watch Topic
  • New Topic