带有JMS的Wildfly 10(ActiveMQ)

时间:2016-11-30 12:28:13

标签: jms activemq wildfly

我使用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>

使用默认的本机javax.jms实现从队列成功发送/接收消息。

我使用以下配置访问要发送/接收的JMS队列。

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分钟,我不知道这种行为的原因。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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

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

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