Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JNDI name format of JMS queue in wildfly10

Hi I am migrating to wildfly 10 from JBoss_6.1.0_final.

In JBoss for Queue name the format is like

<queue name="TEST_QUEUE">
  <entry name="/queue/TEST_QUEUE"/>
</queue>

and in MDB annotation is

@ActivationConfigProperty(propertyName = "destination",
                propertyValue = "queue/TEST_QUEUE")

Now in wildfly its like below. reference link

<jms-queue name="TEST_QUEUE" entries="jms/queue/TEST_QUEUE java:jboss/exported/jms/queue/TEST_QUEUE"/>

with activationproperty

@ActivationConfigProperty(propertyName = "destination",
                        propertyValue = "jms/queue/TEST_QUEUE")

In wildfly I have tried by removing the jms/ from queue name and from annotation, its working fine in wildfly with same queue name , like

<jms-queue name="TEST_QUEUE" entries="queue/TEST_QUEUE java:jboss/exported/queue/TEST_QUEUE"/>

Now my question is, Is JMS/ in queue name added purposefully.

it is good practice to write queue name without prefix jms/

like image 888
Hitesh Ghuge Avatar asked Sep 05 '17 08:09

Hitesh Ghuge


People also ask

What is JMS JNDI?

The Java™ Naming and Directory Interface (JNDI) API enables JMS clients to look up configured JMS objects. By delegating all the provider-specific work to administrative tasks for creating and configuring these objects, the clients can be completely portable between environments.

What is Consumer count in JMS queue?

consumer-count The number of consumers consuming messages from this queue.

How do I start a JMS queue?

Go to Resources > JMS > JMS Providers. From the Scope drop-down list select the server as your scope, and from the provider list select Default messaging provider. Under Additional Properties select Queues. Click New.


1 Answers

From the JEE JSR part EE.5.7.1.2 Programming Interfaces for Resource Manager Connection Factory References

This specification recommends, but does not require, that all resource manager connection factory references be organized in the subcontexts of the application component’s environment, using a different subcontext for each resource manager type. For example, all JDBC™ DataSource references should be declared in the java:comp/env/jdbc subcontext, all JMS connection factories in the java:comp/env/jms subcontext, all JavaMail connection factories in the java:comp/env/mail subcontext, and all URL connection factories in the java:comp/env/url subcontext. Note that resource manager connection factory references declared via annotations will not, by default, appear in any subcontext

the jms subcontext is not mandatory. It is just a best practice.

Servers can or not follow this pattern. JBoss was not following this, wildfly is, but ultimately, it is YOUR decision to do what you want. But this is a really good practice to follow as it is cleaner for everybody.

like image 111
wargre Avatar answered Sep 20 '22 15:09

wargre