I have been trying to make JBoss ESB 4.2 work with Tibco EMS with no success. I have tried using both JBoss AS + JBoss ESB, and the bundled AS-ESB, and have been unsuccessful with both. (It took about 15 minutes to make JBoss AS alone work with Tibco, so I'm not completely in the dark.) Any tips?

As long as it is localhost, I have made it work doing what you suggest, but I also modified jndi.properties to add com.tibco.jms.naming to java.namingfactory.url.pkgs. Is this unnecessary?

What I cannot do is use a remote Tibco server. I am getting the following error message; any suggestions?

2007-10-22 11:42:32,404 DEBUG [org.jboss.internal.soa.esb.couriers.JmsCourier] Error from JMS system.javax.jms.JMSException: Failed to connect to the server at tcp://localhost:7222 at com.tibco.tibjms.TibjmsxLinkTcp._createSocket(TibjmsxLinkTcp.java:817) at com.tibco.tibjms.TibjmsxLinkTcp.connect(TibjmsxLinkTcp.java:913) at com.tibco.tibjms.TibjmsConnection._create(TibjmsConnection.java:1002) at com.tibco.tibjms.TibjmsConnection.(TibjmsConnection.java:2699) at com.tibco.tibjms.TibjmsQueueConnection.(TibjmsQueueConnection.java:36) at com.tibco.tibjms.TibjmsxCFImpl._createImpl(TibjmsxCFImpl.java:159) at com.tibco.tibjms.TibjmsxCFImpl._createConnection(TibjmsxCFImpl.java:239) at com.tibco.tibjms.TibjmsXAQueueConnectionFactory.createQueueConnection(TibjmsXAQueueConnectionFactory.java:148) at org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool.addAnotherSession(JmsConnectionPool.java:126) at org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool.getSession(JmsConnectionPool.java:183) at org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool.getQueueSession(JmsConnectionPool.java:206) at org.jboss.internal.soa.esb.couriers.JmsCourier.createMessageConsumer(JmsCourier.java:420) at org.jboss.internal.soa.esb.couriers.JmsCourier.pickup(JmsCourier.java:316) at org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl.pickup(TwoWayCourierImpl.java:223) at org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl.pickup(TwoWayCourierImpl.java:205) at org.jboss.soa.esb.listeners.message.MessageAwareListener.waitForEventAndProcess(MessageAwareListener.java:268) at org.jboss.soa.esb.listeners.message.MessageAwareListener.doRun(MessageAwareListener.java:252) at org.jboss.soa.esb.listeners.lifecycle.AbstractThreadedManagedLifecycle.run(AbstractThreadedManagedLifecycle.java:115) at java.lang.Thread.run(Thread.java:595)2007-10-22 11:42:32,825 DEBUG [org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool] Creating a JMS Connection for2007-10-22 11:42:33,404 DEBUG [org.jboss.soa.esb.listeners.message.MessageAwareListener] Courier Exceptionorg.jboss.soa.esb.couriers.CourierException: Unable to create Message Consumer at org.jboss.internal.soa.esb.couriers.JmsCourier.pickup(JmsCourier.java:327) at org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl.pickup(TwoWayCourierImpl.java:223) at org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl.pickup(TwoWayCourierImpl.java:205) at org.jboss.soa.esb.listeners.message.MessageAwareListener.waitForEventAndProcess(MessageAwareListener.java:268) at org.jboss.soa.esb.listeners.message.MessageAwareListener.doRun(MessageAwareListener.java:252) at org.jboss.soa.esb.listeners.lifecycle.AbstractThreadedManagedLifecycle.run(AbstractThreadedManagedLifecycle.java:115) at java.lang.Thread.run(Thread.java:595)Caused by: org.jboss.soa.esb.couriers.CourierException: javax.jms.JMSException: Failed to connect to the server at tcp://localhost:7222 at org.jboss.internal.soa.esb.couriers.JmsCourier.createMessageConsumer(JmsCourier.java:456) at org.jboss.internal.soa.esb.couriers.JmsCourier.pickup(JmsCourier.java:316) ... 6 moreCaused by: javax.jms.JMSException: Failed to connect to the server at tcp://localhost:7222 at com.tibco.tibjms.TibjmsxLinkTcp._createSocket(TibjmsxLinkTcp.java:817) at com.tibco.tibjms.TibjmsxLinkTcp.connect(TibjmsxLinkTcp.java:913) at com.tibco.tibjms.TibjmsConnection._create(TibjmsConnection.java:1002) at com.tibco.tibjms.TibjmsConnection.(TibjmsConnection.java:2699) at com.tibco.tibjms.TibjmsQueueConnection.(TibjmsQueueConnection.java:36) at com.tibco.tibjms.TibjmsxCFImpl._createImpl(TibjmsxCFImpl.java:159) at com.tibco.tibjms.TibjmsxCFImpl._createConnection(TibjmsxCFImpl.java:239) at com.tibco.tibjms.TibjmsXAQueueConnectionFactory.createQueueConnection(TibjmsXAQueueConnectionFactory.java:148) at org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool.addAnotherSession(JmsConnectionPool.java:126) at org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool.getSession(JmsConnectionPool.java:183) at org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool.getQueueSession(JmsConnectionPool.java:206) at org.jboss.internal.soa.esb.couriers.JmsCourier.createMessageConsumer(JmsCourier.java:420) ... 7 more2007-10-22 11:42:33,404 WARN [org.jboss.soa.esb.listeners.message.MessageAwareListener] Error processing courier, backing off for 2000 milliseconds

If your tibco EMS server is not running on localhost, then you need to put in the hostname/ip address of that host instead. You should only need to modify the settings in the jboss-esb.xml jms-provider section.

Thanks for the suggestion. I can connect, but the problem seems to be that ESB is picking up localhost from somewhere. I added some logging statements to JmsCourier and JmsConnectionPool, and I see the following:

2007-10-23 10:30:31,961 DEBUG [org.jbpm.svc.Services] closing service 'tx': org.jbpm.tx.TxService@d8dc2e2007-10-23 10:30:32,165 DEBUG [org.jboss.internal.soa.esb.couriers.JmsCourier] Error from JMS system.javax.jms.JMSException: Failed to connect to the server at tcp://localhost:7222 at com.tibco.tibjms.TibjmsxLinkTcp._createSocket(TibjmsxLinkTcp.java:817) at com.tibco.tibjms.TibjmsxLinkTcp.connect(TibjmsxLinkTcp.java:913) at com.tibco.tibjms.TibjmsConnection._create(TibjmsConnection.java:1002) at com.tibco.tibjms.TibjmsConnection.(TibjmsConnection.java:2699) at com.tibco.tibjms.TibjmsQueueConnection.(TibjmsQueueConnection.java:36) at com.tibco.tibjms.TibjmsxCFImpl._createImpl(TibjmsxCFImpl.java:159) at com.tibco.tibjms.TibjmsxCFImpl._createConnection(TibjmsxCFImpl.java:239) at com.tibco.tibjms.TibjmsXAQueueConnectionFactory.createQueueConnection(TibjmsXAQueueConnectionFactory.java:148) at org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool.addAnotherSession(JmsConnectionPool.java:127) at org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool.getSession(JmsConnectionPool.java:184) at org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool.getQueueSession(JmsConnectionPool.java:207) at org.jboss.internal.soa.esb.couriers.JmsCourier.createMessageConsumer(JmsCourier.java:425) at org.jboss.internal.soa.esb.couriers.JmsCourier.pickup(JmsCourier.java:316) at org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl.pickup(TwoWayCourierImpl.java:223) at org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl.pickup(TwoWayCourierImpl.java:205) at org.jboss.soa.esb.listeners.message.MessageAwareListener.waitForEventAndProcess(MessageAwareListener.java:268) at org.jboss.soa.esb.listeners.message.MessageAwareListener.doRun(MessageAwareListener.java:252) at org.jboss.soa.esb.listeners.lifecycle.AbstractThreadedManagedLifecycle.run(AbstractThreadedManagedLifecycle.java:115) at java.lang.Thread.run(Thread.java:595)2007-10-23 10:30:32,680 INFO [org.jboss.internal.soa.esb.couriers.JmsCourier] >>>queue|queue/DeadMessageQueue2007-10-23 10:30:32,680 INFO [org.jboss.internal.soa.esb.couriers.JmsCourier] >>>host: tcp://olpaws045.oldlane.corp:72222007-10-23 10:30:32,680 DEBUG [org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool] Creating a JMS Connection for2007-10-23 10:30:32,680 INFO [org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool] >>>{java.naming.provider.url=tcp://olpaws045.oldlane.corp:7222, java.naming.factory.initial=com.tibco.tibjms.naming.TibjmsInitialContextFactory, connection-factory=QueueConnectionFactory, destination-type=queue}2007-10-23 10:30:33,165 DEBUG [org.jboss.soa.esb.listeners.message.MessageAwareListener] Courier Exceptionorg.jboss.soa.esb.couriers.CourierException: Unable to create Message Consumer at org.jboss.internal.soa.esb.couriers.JmsCourier.pickup(JmsCourier.java:327) at org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl.pickup(TwoWayCourierImpl.java:223) at org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl.pickup(TwoWayCourierImpl.java:205) at org.jboss.soa.esb.listeners.message.MessageAwareListener.waitForEventAndProcess(MessageAwareListener.java:268) at org.jboss.soa.esb.listeners.message.MessageAwareListener.doRun(MessageAwareListener.java:252) at org.jboss.soa.esb.listeners.lifecycle.AbstractThreadedManagedLifecycle.run(AbstractThreadedManagedLifecycle.java:115) at java.lang.Thread.run(Thread.java:595)Caused by: org.jboss.soa.esb.couriers.CourierException: javax.jms.JMSException: Failed to connect to the server at tcp://localhost:7222 at org.jboss.internal.soa.esb.couriers.JmsCourier.createMessageConsumer(JmsCourier.java:462) at org.jboss.internal.soa.esb.couriers.JmsCourier.pickup(JmsCourier.java:316) ... 6 moreCaused by: javax.jms.JMSException: Failed to connect to the server at tcp://localhost:7222 at com.tibco.tibjms.TibjmsxLinkTcp._createSocket(TibjmsxLinkTcp.java:817) at com.tibco.tibjms.TibjmsxLinkTcp.connect(TibjmsxLinkTcp.java:913) at com.tibco.tibjms.TibjmsConnection._create(TibjmsConnection.java:1002) at com.tibco.tibjms.TibjmsConnection.(TibjmsConnection.java:2699) at com.tibco.tibjms.TibjmsQueueConnection.(TibjmsQueueConnection.java:36) at com.tibco.tibjms.TibjmsxCFImpl._createImpl(TibjmsxCFImpl.java:159) at com.tibco.tibjms.TibjmsxCFImpl._createConnection(TibjmsxCFImpl.java:239) at com.tibco.tibjms.TibjmsXAQueueConnectionFactory.createQueueConnection(TibjmsXAQueueConnectionFactory.java:148) at org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool.addAnotherSession(JmsConnectionPool.java:127) at org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool.getSession(JmsConnectionPool.java:184) at org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool.getQueueSession(JmsConnectionPool.java:207) at org.jboss.internal.soa.esb.couriers.JmsCourier.createMessageConsumer(JmsCourier.java:425) ... 7 more2007-10-23 10:30:33,165 WARN [org.jboss.soa.esb.listeners.message.MessageAwareListener] Error processing courier, backing off for 1000 milliseconds2007-10-23 10:30:34,196 INFO [org.jboss.internal.soa.esb.couriers.JmsCourier] >>>queue|queue/DataCollectorQueue2007-10-23 10:30:34,196 INFO [org.jboss.internal.soa.esb.couriers.JmsCourier] >>>host: tcp://olpaws045.oldlane.corp:72222007-10-23 10:30:35,196 DEBUG [org.jboss.internal.soa.esb.couriers.JmsCourier] Error from JMS system.javax.jms.JMSException: Failed to connect to the server at tcp://localhost:7222 at com.tibco.tibjms.TibjmsxLinkTcp._createSocket(TibjmsxLinkTcp.java:817) at com.tibco.tibjms.TibjmsxLinkTcp.connect(TibjmsxLinkTcp.java:913) at com.tibco.tibjms.TibjmsConnection._create(TibjmsConnection.java:1002) at com.tibco.tibjms.TibjmsConnection.(TibjmsConnection.java:2699) at com.tibco.tibjms.TibjmsQueueConnection.(TibjmsQueueConnection.java:36) at com.tibco.tibjms.TibjmsxCFImpl._createImpl(TibjmsxCFImpl.java:159) at com.tibco.tibjms.TibjmsxCFImpl._createConnection(TibjmsxCFImpl.java:239) at com.tibco.tibjms.TibjmsXAQueueConnectionFactory.createQueueConnection(TibjmsXAQueueConnectionFactory.java:148) at org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool.addAnotherSession(JmsConnectionPool.java:127) at org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool.getSession(JmsConnectionPool.java:184) at org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool.getQueueSession(JmsConnectionPool.java:207) at org.jboss.internal.soa.esb.couriers.JmsCourier.createMessageConsumer(JmsCourier.java:425) at org.jboss.internal.soa.esb.couriers.JmsCourier.pickup(JmsCourier.java:316) at org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl.pickup(TwoWayCourierImpl.java:223) at org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl.pickup(TwoWayCourierImpl.java:205) at org.jboss.soa.esb.listeners.message.MessageAwareListener.waitForEventAndProcess(MessageAwareListener.java:268) at org.jboss.soa.esb.listeners.message.MessageAwareListener.doRun(MessageAwareListener.java:252) at org.jboss.soa.esb.listeners.lifecycle.AbstractThreadedManagedLifecycle.run(AbstractThreadedManagedLifecycle.java:115) at java.lang.Thread.run(Thread.java:595)

I expected that I had tcp://localhost:7222 somewhere, but I have not been able to find it. I have not even been able to find localhost (or 127.0.0.1), except where you would expect it, e.g., for smtp host.

I had changed the jboss-esb.xml file in deploy/jboss.esb/META-INF, and had not yet deployed any projects. This will not work, i.e., configuring the entire server instance to use Tibco? Would this then require that a second JMS provider exist for the DeadMessageQueue?