OpenEJB/TomEE 中的 ActiveMQ 初始化器

ActiveMQ initializer in OpenEJB/TomEE

我需要在 OpenEJB 中以 "paused" 状态启动一个队列,这样在某些相关数据可用之前,消费者不会处理任何消息。我可以通过编程方式暂停队列,如图所示 , so if there was some initializer function that is called when a queue is created I could use that method. The queue configuration documentation 似乎不支持设置暂停状态。关于如何在创建时配置队列有什么想法吗?

如果您阅读了线程,您 link 您会看到队列没有暂停,但代理可以。

在 TomEE 中,代理是使用 spi 从工厂创建的(在 tomee 类加载器中,默认情况下 tomee/lib),因此如果这是一个选项,您可以编写自己的代理,当您准备好时以编程方式启动。

现在我怀疑您不想启动容器的连接器,但启动代理不是问题。换句话说,您不希望通过 JMS 连接到任何其他机器而收不到任何东西,但是如果 JMS 已启动并部署就可以了。

在这种情况下,您可以不在代理上配置任何连接器,并在准备就绪时添加它们。您可以找到经纪人:

new org.apache.openejb.resource.activemq.ActiveMQ5Factory().getBrokers()