jms如何与tibco合作?

时间:2013-04-25 16:41:08

标签: jms tibco tibco-ems

我有一个Java应用程序订阅了一个JMS主题应用程序,它偶尔会引发以下异常:

javax.jms.JMSException: Connection has been terminated
at com.tibco.tibjms.Tibjmsx.buildException(Tibjmsx.java:470)
at com.tibco.tibjms.TibjmsConnection._onDisconnected(TibjmsConnection.java:1946)
at com.tibco.tibjms.TibjmsxLinkTcp$LinkReader.work(TibjmsxLinkTcp.java:314)
at com.tibco.tibjms.TibjmsxLinkTcp$LinkReader.run(TibjmsxLinkTcp.java:250)

这段代码在未被触及2年之后就被交给了我。我的JMS知识非常有限。它是maven-ized,但它没有任何参考任何tibco库。我试图了解在代码库中没有tibco参考时如何获得tibco异常?

但我确实看到一个名为LD_LIBRARY_PATH的系统变量集,它指向一些tibco库。

有经验的JMS可以了解一下这里可能发生的事情吗? 搜索代码库显示没有tibco导入,只有javax.jms。

它们是否有可能使用jni或其他东西用LD_LIBRARY_PATH包装?

2 个答案:

答案 0 :(得分:8)

JMS标准是API标准。使用该标准编写的应用程序不需要引用任何特定JMS实现的类。相反,JNDI用于获取connection factoryexample)。目的是通过配置可以更改所使用的JMS实现,而不必更改代码。

关于LD_LIBRARY_PATH,EMS使用JNI并且需要LD_LIBRARY_PATH,因此应用程序使用的EMS jar可以找到本机库。

答案 1 :(得分:0)

  

连接已终止

     

是不是意味着你的jms代码只是有一些问题,EMS服务器是   由于心跳等其他问题而切断连接   问题等。