带有 JMS (ActiveMQ) 的 Wildfly 10

Wildfly 10 with JMS (ActiveMQ)

我成功配置了带有 ActiveMQ 作为流的 Wildfly 服务器

    <subsystem xmlns="urn:jboss:domain:messaging-activemq:1.0">
        <server name="default">
            <security enabled="false"/>
            <http-connector name="http-connector" socket-binding="http" endpoint="http-acceptor"/>
            <http-acceptor name="http-acceptor" http-listener="default"/>
            <jms-queue name="UpdateQueue" entries="java:/jms/UpdateQueue java:jboss/exported/jms/UpdateQueue"/>
            <connection-factory name="ConnectionFactory" entries="java:jboss/exported/jms/ConnectionFactory" connectors="http-connector"/>
        </server>
    </subsystem>

消息 send/receive 使用默认本机 javax.jms 实现从队列成功。

我使用以下配置访问 JMS 队列 send/receive。

String EX_JNDI_FACTORY = "org.jboss.naming.remote.client.InitialContextFactory";
    String SERVER_URL = "http-remoting://127.0.0.1:8080";
    String JMS_FACTORY = "jms/ConnectionFactory";
    String QUEUE_NAME = "jms/UpdateQueue";

大多数情况下,消息在发送和接收之间花费的时间太长,有时在发送和接收消息之间花费了 3 分钟,我不知道这种行为的原因。有什么想法吗?

我class 多次接收但没有关闭接收器、会话和连接。我在 qreceiver.receive(0) 之后添加了以下代码,一切正常 运行。

    try{
        if (qreceiver != null){
            qreceiver.close();
            qreceiver = null;
        }

        qsession.close();
        qcon.close();
    }catch (JMSException e) {
        e.printStackTrace();
    }