首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >只要activemq连接没有关闭,我的简单程序就不会完成并退出

只要activemq连接没有关闭,我的简单程序就不会完成并退出
EN

Stack Overflow用户
提问于 2013-02-18 14:38:54
回答 1查看 488关注 0票数 2

我用ActiveMQ编写了一个简单的程序,如下所示:

代码语言:javascript
运行
复制
    public static void main(String[] args) throws Throwable
    {
        final ActiveMQConnectionFactory conFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
        final QueueConnection connection = conFactory.createQueueConnection();
        final Session session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
        final Destination destination = new ActiveMQQueue("MJ_SAF");
        final MessageProducer producer = session.createProducer(destination);

        Message message = session.createTextMessage("test");
        message.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_DELAY, 20);
        message.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_PERIOD, 1);
        message.setIntProperty(ScheduledMessage.AMQ_SCHEDULED_REPEAT, 1);
        producer.send(message);
}

当我执行这个程序时,消息发送给ActiveMQ broker,但是我的程序没有退出并保持运行。当我将connection.close();语句添加到上述程序的末尾时,我的程序完成并正常退出。

我的问题是:这种行为的原因是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-18 15:07:53

只要有任何连接打开,(AMQ-)分配的处理从这些连接读取和向这些连接写入消息的线程就会使VM保持运行(这些线程不是守护线程)。

您可以在调试程序时看到线程。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14930758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档