Hi Folks,


We have a bunch of legacy apps that send/receive messages using JMS with 
HornetQ 2.4.0.
We wonder to what extent it is possible to migrate the HornetQ server to 
ActiveMQ Artemis, ideally without changing anything other than the 
configuration of these applications.

Our JMS clients typically include hornetq-core-client.jar, hornetq-commons.jar, 
netty.jar, hornetq-jms-client.jar and jboss-jms-api.jar on the classpath.
We look up the JMS resources (that's JMS Queue, Topic, and ConnectionFactory 
instances) from the JNDI server co-located with the HornetQ standalone server 
(to do that, we also need the jnp-client.jar on the client classpath).

The use of JNDI API along with JMS to make available the JMS objects is purely 
a convention.
As far as I understand, Artemis (at least in standalone mode) chose to not have 
a JNDI server, and instead advocates for the direct instantiation of JMS Queue, 
Topic and ConnectionFactory instances.
Does it mean that only HornetQ 2.4 clients that do not use JNDI at all and 
directly instantiate these objects are supported out of the box? I saw some 
test cases under /tests/extra-tests/protocols/hornetq that tend to demonstrate 
it.

Artemis still provides "a client-side JNDI implementation that relies on 
special properties set in the environment to construct the appropriate JMS 
objects. In other words, no objects are stored in JNDI on the Artemis server, 
instead they are simply instantiated on the client based on the provided 
configuration." 
Therefore, and for the purpose of modifying only the JNDI configuration, we 
still must change the HornetQ jars to artemis-jms-client.jar, at least to look 
up the JMS connection factory ActiveMQInitialContextFactory, right!?

Finally, is it possible to integrate Artemis with a JNDI server (for instance, 
within an application server like Wildfly)? We would declare some queues and 
topics in the broker.xml and make them available via the JNDI API. In this 
case, how to make Artemis aware of the JNDI server? In this case, we would have 
nothing to change on the client side, right!?

Thanks for your support,

Pascal GILLET


   

Reply via email to