-
1. Re: Tibco EMS Integration
kurtstam Oct 19, 2007 11:46 AM (in response to mwax)Hi MWax,
I just tried and it got it to work right away using the following parameter settings:jndi-URL="tcp://<ip>:7222? jndi-context-factory="com.tibco.tibjms.naming.TibjmsInitialContextFactory " connection-factory="QueueConnectionFactory" destination-type="queue" destination-name="<queue-name>"
and copying the tibco client jars into the jbossesb.sar/lib directory.
Hope that helps,
--Kurt -
2. Re: Tibco EMS Integration
kurtstam Oct 19, 2007 11:48 AM (in response to mwax)
jndi-URL="tcp://localhost:7222"
jndi-context-factory="com.tibco.tibjms.naming.TibjmsInitialContextFactory"
connection-factory="QueueConnectionFactory"
destination-type="queue"
destination-name="<queue-name>" -
3. Re: Tibco EMS Integration
mwax Oct 22, 2007 11:50 AM (in response to mwax)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 for
2007-10-22 11:42:33,404 DEBUG [org.jboss.soa.esb.listeners.message.MessageAwareListener] Courier Exception
org.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 more
Caused 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 more
2007-10-22 11:42:33,404 WARN [org.jboss.soa.esb.listeners.message.MessageAwareListener] Error processing courier, backing off for 2000 milliseconds -
4. Re: Tibco EMS Integration
kurtstam Oct 22, 2007 2:02 PM (in response to mwax)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.
--Kurt -
5. Re: Tibco EMS Integration
mwax Oct 22, 2007 5:03 PM (in response to mwax)Thanks. I had put in hostname:port in place of localhost:port, but I still see the above Courier exception. Any ideas?
-
6. Re: Tibco EMS Integration
kurtstam Oct 22, 2007 7:34 PM (in response to mwax)Well, if it says:
Failed to connect to the server at tcp://somehostname:7222
try to see if you can see it connect usingtelnet somehostname 7222
to see if you can 'see' that host, you may have firewall issues going on.
--Kurt -
7. Re: Tibco EMS Integration
mwax Oct 23, 2007 10:36 AM (in response to mwax)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@d8dc2e
2007-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/DeadMessageQueue
2007-10-23 10:30:32,680 INFO [org.jboss.internal.soa.esb.couriers.JmsCourier] >>>host: tcp://olpaws045.oldlane.corp:7222
2007-10-23 10:30:32,680 DEBUG [org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool] Creating a JMS Connection for
2007-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 Exception
org.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 more
Caused 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 more
2007-10-23 10:30:33,165 WARN [org.jboss.soa.esb.listeners.message.MessageAwareListener] Error processing courier, backing off for 1000 milliseconds
2007-10-23 10:30:34,196 INFO [org.jboss.internal.soa.esb.couriers.JmsCourier] >>>queue|queue/DataCollectorQueue
2007-10-23 10:30:34,196 INFO [org.jboss.internal.soa.esb.couriers.JmsCourier] >>>host: tcp://olpaws045.oldlane.corp:7222
2007-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) -
8. Re: Tibco EMS Integration
kurtstam Oct 23, 2007 12:46 PM (in response to mwax)In my case I also ran tibco on a different box, and I was successful. Can you do a search for 'tcp://localhost:7222'.You must have it still referenced somewhere!
--Kurt -
9. Re: Tibco EMS Integration
mwax Oct 23, 2007 4:29 PM (in response to mwax)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.
Where would you look? Could this end up in some jar? -
10. Re: Tibco EMS Integration
kurtstam Oct 23, 2007 5:42 PM (in response to mwax)This is what the provider section of my helloworld_action looks like:
<providers> <jms-provider name="Tibco" connection-factory="QueueConnectionFactory" jndi-URL="tcp://barentz:7222" jndi-context-factory="com.tibco.tibjms.naming.TibjmsInitialContextFactory" > <jms-bus busid="quickstartGwChannel"> <jms-message-filter dest-type="QUEUE" dest-name="myQueue" /> </jms-bus> <jms-bus busid="quickstartEsbChannel"> <jms-message-filter dest-type="QUEUE" dest-name="queue/B" /> </jms-bus> </jms-provider> </providers>
Note that my Queues are is called 'myQueue' and 'queue/B'
Maybe you need to run an 'ant clean' to make sure you have no old
artifacts laying around. Check your deploy directory!
Next I simply send in a message using the tibco sample code:java tibjmsMsgProducer -queue myQueue -user user1 User2
and the console shows:17:35:58,812 INFO [STDOUT] Message structure: 17:35:58,812 INFO [STDOUT] [User2]. 17:35:58,812 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 17:35:58,812 INFO [STDOUT] Body: User2 17:35:58,812 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 17:35:58,812 INFO [STDOUT] ConsoleNotifier 2007/10/23 05:35:58.812< BEFORE** User2 AFTER**
--Kurt -
11. Re: Tibco EMS Integration
mwax Oct 24, 2007 1:34 PM (in response to mwax)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?
-
12. Re: Tibco EMS Integration
kurtstam Oct 24, 2007 1:44 PM (in response to mwax)You can have as many JMS providers as you wish.
-
13. Re: Tibco EMS Integration
mwax Oct 25, 2007 9:48 AM (in response to mwax)What about the JBoss internal services that are configured with the jboss-esb.xml under jbossesb.seb/META-INF? I have been unable to point these to a remote TIBCO instance.
-
14. Re: Tibco EMS Integration
kurtstam Oct 25, 2007 9:55 AM (in response to mwax)For those services to run of tibco you'd have to change the jbossesb.esb/META-INF/jboss-esb.xml jms-provider section so it contains the tibco factory settings etc.
And even in one jboss-esb.xml you can have multiple jms-providers, so the ESB can function as a messaging bridge between JMS providers.
Do you want me to attach me helloworld_action for tibco to the wiki? I think you are making it more complicated then it is :).
Cheers,
--Kurt