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.