您的位置:首页 > 运维架构 > Apache

Apache ActiveMQ 不作为的问题

2015-11-06 19:48 411 查看
老早以前就听到activeMQ,但一直没有弄过,今天在网上找了下资料倒腾,结果敲完代码就遇到的第一个错误就是:javax.jms.JMSException: Could not connect to broker URL: tcp://localhost:61616.

然后查找了,发现是我自己从apache下载下来的activeMQ 没有启动服务:

D:\work\apache-activemq-5.10.1\bin\win64\activemq.bat,我用的是5.10.1.版本的用这个activemq.bat启动服务,问题解决。但是后面又发现我的sender.java类,可以正常运行,而且通过创建一个新的队列,也可以在Receiver.java里面接收到,但就是Sender.java发出来的消息,在Receiver.java里面接收不到。后来才找到原因:
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);



session.commit();

在调用了sendMessage();方法的前后,少写了这两行代码。而且前面写的时候少写了关于关闭connection连接的代码了。这个非常重要,否则会一直处于连接打开状态,如果JMS请求太多,会对JMS的性能造成致使影响。其中刚刚这个session.commit();这个方法后来才想到,这个的意思是对一个会话关闭提交才会真正的执行发送消息的动作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: