KB Article #191080

ActiveMQ error looking up JMS queue

Problem

When setting up an application pickup to poll from an ActiveMQ JMS server, B2Bi may have issues looking up the name of queue although it does exist. The following is an example of the <hostname>_te.log when the JMS queue is polled and fails for the queue name lookup:


2025-06-30 13:48:04,867 - WARN [Worker5-3768] (AnonymousConsumerDriver) - Error while attempting to consume a message
com.cyclonecommerce.tradingengine.transport.UnableToConnectException: JMS client unable to connect to JMS queue: com.cyclonecommerce.tradingengine.transport.jms.DefaultQueueUtil. Error looking up JMS queue: B2BiMessageQueue or queue connection factory ConnectionFactory
at com.cyclonecommerce.tradingengine.transport.jms.JmsClientImpl.connect(JmsClientImpl.java:218) ~[interchange-server.jar:26.15.0-5]
at com.cyclonecommerce.tradingengine.transport.system.consumption.active.consumers.JmsConsumer.connect(JmsConsumer.java:116) ~[interchange-server.jar:26.15.0-5]
at com.cyclonecommerce.tradingengine.transport.system.consumption.active.ConsumerDriver.connect(ConsumerDriver.java:48) ~[interchange-server.jar:26.15.0-5]
at com.cyclonecommerce.tradingengine.transport.system.consumption.active.AnonymousConsumerDriver.invoke(AnonymousConsumerDriver.java:124) [interchange-server.jar:26.15.0-5]
at com.cyclonecommerce.tradingengine.transport.system.consumption.active.tasks.AnonymousConsumerTask.execute(AnonymousConsumerTask.java:55) [interchange-server.jar:26.15.0-5]
at com.cyclonecommerce.util.task.TaskScheduler$WorkerThread.primRun(TaskScheduler.java:458) [interchange-server.jar:26.15.0-5]
at com.axway.cluster.extensions.thread.EventedThread.run(EventedThread.java:89) [interchange-threads.jar:26.15.0-5]
Caused by: com.cyclonecommerce.tradingengine.transport.jms.JmsQueueUtilException: Error looking up JMS queue: B2BiMessageQueue or queue connection factory ConnectionFactory
at com.cyclonecommerce.tradingengine.transport.jms.DefaultQueueUtil.init(DefaultQueueUtil.java:112) ~[interchange-server.jar:26.15.0-5]
at com.cyclonecommerce.tradingengine.transport.jms.DefaultQueueUtil.getQueueConnectionFactory(DefaultQueueUtil.java:60) ~[interchange-server.jar:26.15.0-5]
at com.cyclonecommerce.tradingengine.transport.jms.JmsClientImpl.connect(JmsClientImpl.java:145) ~[interchange-server.jar:26.15.0-5]
... 6 more
Caused by: javax.naming.NameNotFoundException: B2BiMessageQueue
at org.apache.activemq.jndi.ReadOnlyContext.lookup(ReadOnlyContext.java:235) ~[activemq-client-5.16.7.jar:5.16.7]
at java.naming/javax.naming.InitialContext.lookup(InitialContext.java:409) ~[?:?]
at com.cyclonecommerce.tradingengine.transport.jms.DefaultQueueUtil.init(DefaultQueueUtil.java:105) ~[interchange-server.jar:26.15.0-5]
at com.cyclonecommerce.tradingengine.transport.jms.DefaultQueueUtil.getQueueConnectionFactory(DefaultQueueUtil.java:60) ~[interchange-server.jar:26.15.0-5]
at com.cyclonecommerce.tradingengine.transport.jms.JmsClientImpl.connect(JmsClientImpl.java:145) ~[interchange-server.jar:26.15.0-5]
... 6 more


Resolution

One of the reasons for this issue could be due to the JNDI lookup of the queue name. A file needs to be added to the Interchange classpath that creates a directory interface mapping for the queue name. To achieve this, create a file named jndi.properties in the <B2Bi Shared>/local_te/jars folder and add the following text:


queue.(Queue Name) = (Queue Name)

For example, if the JMS queue is called B2BiMessageQueue, the jndi.properties file would contain:


queue.B2BiMessageQueue = B2BiMessageQueue


Once this file configuration is added a restart of the B2Bi services is required.