Hello once again :)

Here are some additional questions arisen from your answers.
1) As there are java example that does not make use of JMS objects, I suppose 
that QPID also furnish another AMQP implementation that is independent from JMS?
2) If it is, are both implementations equivalent and compliant with AMQP the 
same way? I am asking because using JMS, when you create a Consumer on a queue 
that is not declared as an administered object, this queue is created in the 
broker. I believe this a a normal JMS behaviour, but I have read somewhere that 
in AMQP, queues must be explicitly declared, what I understood by "if queues 
are not explicitly declared, they cannot be used".

Thank you.


Best regards
-----Message d'origine-----
De : Gordon Sim [mailto:[email protected]] 
Envoyé : mercredi 19 août 2009 17:22
À : [email protected]
Objet : Re: Mixing up AMQP QPID and JMS

Leglise Yann wrote:
> Thank you Gordon.
> 
> Your answers helped, but I want to make it a little bit clearer about the 
> relation between QPID and JMS.
> I can only see 2 possible interpretation of the relation between JMS and QPID 
> (one will necessarily be wrong):
> 1)  QPID relies on (i.e. make use of) a JMS implementation in order to 
> use the JMS services to satisfy the AMQP purposes,
> 2)  QPID actually IS a JMS implementation that directly includes the AMQP 
> required behaviour.

Option 2 is the correct one.

> This is confusing for me since in my java program, I am linked to a jms.jar 
> (gotten from the J2EE SDK), in association with the qpid jars, and I suppose 
> this jms.jar contains a JMS implementation (leading to the first 
> interpretation).
> 
> So in the case 1), I cannot understand how a JMS object (that does not "know" 
> I am using a QPID jar) can interact with an AMQP broker (I mean, when I 
> invoke a send API on a javax.jms.MessageProducer, how is it that Wireshark 
> detects AMQP frames? The meaning of my question in my previous mail was to 
> understand how could the JMS objects (defined, according to me, in the 
> jms.jar) could interact with the QPID jars (I supposed that the AMQP frames 
> are sent by some classes of the QPID jars) since nothing is (apparently) made 
> to link JMS object with QPID classes).
> 
> In case 2), why should I need using the jms.jar if the implementation already 
> exists in the QPID jars?
> 
> The only explanation I can imagine is that the jms.jar is used only for the 
> interfaces like Connection, Session etc. some implementors of which resides 
> in QPID library that are used because using 
> org.apache.qpid.jndi.PropertiesFileInitialContextFactory in JNDI. Then, as 
> every used object (ConnectionFactory, Destination ...) are obtained through a 
> first QPID class implementing the InitialContext, this implementing class 
> also choose a QPID class implementing those interfaces (and so on for 
> Connection, Queue ...). This is what I guess, but I would like to have a 
> confirmation from someone who "knows".

Yes, assuming you mean the geronimo-jms_1.1_spec-1.0.jar, that is correct. It 
contains only the interface definitions.

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to