消息驱动Bean与Java消息队列关闭

时间:2010-03-16 09:52:21

标签: java glassfish jms message-driven-bean openmq

我在部署应用程序时遇到以下问题。

它使用JMS和远程openMQ进行服务器之间的通信。问题是连接不完全可靠,因此它可以向上或向下。为了重新连接,我设置jms重新连接glassfish属性,以便在某些时候连接丢失时重新连接。当我尝试部署应用程序并且没有连接时出现问题。看起来它一直在重试连接但是在连接可用之前应用程序没有完成部署。

是否可以以部署继续的任何方式配置它,即使没有连接并继续重试,直到有连接可用?

非常感谢。

编辑:我正在尝试在另一个线程中运行MDB初始化。我试过了两个

我试图通过改变sun-ejb.jar.xml的两种方式为MDB分配不同的线程

        <bean-pool>
            <steady-pool-size>1</steady-pool-size>
            <resize-quantity>1</resize-quantity>
            <max-pool-size>1</max-pool-size>
            <pool-idle-timeout-in-seconds>60</pool-idle-timeout-in-seconds>
        </bean-pool>

以及

        <use-thread-pool-id>a-new-thread-pool</use-thread-pool-id>

但我没有运气。看起来它正在等待这个线程结束,因为看起来它正在获取新线程,但它等待该线程结束以完成启动应用程序,因此,在我的情况下,应用程序无法正确部署..

编辑2 我试图在另一个线程中运行jms服务......

asadmin create-resource-adapter-config --threadpools a-new-thread-pool jmsra

也没有运气。

2 个答案:

答案 0 :(得分:1)

使用glassfish默认的JMS提供程序,这是不可能的。我终于通过将JCA适配器更改为

来实现此目的

https://jmsjca.dev.java.net/

答案 1 :(得分:0)

您是否可以考虑生成一个连接到JMS的独立线程,以便主应用程序在不被阻止的情况下继续运行。