0 0

ActiveMQ长期运行后无法接受消息5

 

 ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(
                "tcp://10.10.10.101:61616");
        Connection connection = factory.createConnection();
        connection.start();
        final FileWriter fw=new FileWriter("log_.txt",true);
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        Topic topic = session.createTopic("receive");
        MessageConsumer consumer1 = session.createConsumer(topic);
        consumer1.receive(600000);
        consumer1.setMessageListener(new MessageListener() {

            public void onMessage(Message message) {
                System.out.println("收到一条消息: 开始收听消息");
                TextMessage tm = (TextMessage) message;
                try {

                    fw.append(tm.getText()+"\r\n");
                    System.out.println(tm.getText());
                    fw.flush();

                    //System.out.println("Received message: " + tm.getText());
                } catch (JMSException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO 自动生成的 catch 块
                    e.printStackTrace();
                }
            }
        });
		/*session.close();
		connection.stop();
		connection.close();*/
    }

     哪位高手给看下,这个是接受消息的,运行一天两天后就无法接受到消息了。

 

    日志文件:

   

2014-06-23 09:35:55  [ ActiveMQ InactivityMonitor WriteCheckTimer:253832111 ] - [ DEBUG ]  WriteChecker: 10000ms elapsed since last write check.
2014-06-23 09:35:55  [ ActiveMQ InactivityMonitor Worker:253832112 ] - [ DEBUG ]  Running WriteCheck[tcp://127.0.0.1:61616]
2014-06-23 09:36:05  [ ActiveMQ InactivityMonitor WriteCheckTimer:253842111 ] - [ DEBUG ]  WriteChecker: 10000ms elapsed since last write check.
2014-06-23 09:36:05  [ ActiveMQ InactivityMonitor Worker:253842112 ] - [ DEBUG ]  Running WriteCheck[tcp://127.0.0.1:61616]
2014-06-23 09:36:15  [ ActiveMQ InactivityMonitor WriteCheckTimer:253852112 ] - [ DEBUG ]  WriteChecker: 10001ms elapsed since last write check.
2014-06-23 09:36:15  [ ActiveMQ InactivityMonitor Worker:253852112 ] - [ DEBUG ]  Running WriteCheck[tcp://127.0.0.1:61616]
2014-06-23 09:36:22  [ ActiveMQ InactivityMonitor ReadCheckTimer:253858742 ] - [ DEBUG ]  30000ms elapsed since last read check.
2014-06-23 09:36:25  [ ActiveMQ InactivityMonitor WriteCheckTimer:253862111 ] - [ DEBUG ]  WriteChecker: 9999ms elapsed since last write check.
2014-06-23 09:36:25  [ ActiveMQ InactivityMonitor Worker:253862112 ] - [ DEBUG ]  Running WriteCheck[tcp://127.0.0.1:61616]
2014-06-23 09:36:35  [ ActiveMQ InactivityMonitor WriteCheckTimer:253872111 ] - [ DEBUG ]  WriteChecker: 10000ms elapsed since last write check.
2014-06-23 09:36:35  [ ActiveMQ InactivityMonitor Worker:253872112 ] - [ DEBUG ]  Running WriteCheck[tcp://127.0.0.1:61616]
2014-06-23 09:36:45  [ ActiveMQ InactivityMonitor WriteCheckTimer:253882112 ] - [ DEBUG ]  WriteChecker: 10001ms elapsed since last write check.
2014-06-23 09:36:45  [ ActiveMQ InactivityMonitor Worker:253882113 ] - [ DEBUG ]  Running WriteCheck[tcp://127.0.0.1:61616]
2014-06-23 09:36:52  [ ActiveMQ InactivityMonitor ReadCheckTimer:253888743 ] - [ DEBUG ]  30000ms elapsed since last read check.
2014-06-23 09:36:55  [ ActiveMQ InactivityMonitor WriteCheckTimer:253892113 ] - [ DEBUG ]  WriteChecker: 10000ms elapsed since last write check.
2014-06-23 09:36:55  [ ActiveMQ InactivityMonitor Worker:253892113 ] - [ DEBUG ]  Running WriteCheck[tcp://127.0.0.1:61616]
2014-06-23 09:37:05  [ ActiveMQ InactivityMonitor WriteCheckTimer:253902112 ] - [ DEBUG ]  WriteChecker: 10000ms elapsed since last write check.
2014-06-23 09:37:05  [ ActiveMQ InactivityMonitor Worker:253902113 ] - [ DEBUG ]  Running WriteCheck[tcp://127.0.0.1:61616]
2014-06-23 09:37:15  [ ActiveMQ InactivityMonitor WriteCheckTimer:253912112 ] - [ DEBUG ]  WriteChecker: 10000ms elapsed since last write check.
2014-06-23 09:37:15  [ ActiveMQ InactivityMonitor Worker:253912112 ] - [ DEBUG ]  Running WriteCheck[tcp://127.0.0.1:61616]
2014-06-23 09:37:22  [ ActiveMQ InactivityMonitor ReadCheckTimer:253918742 ] - [ DEBUG ]  30000ms elapsed since last read check.
2014-06-23 09:37:25  [ ActiveMQ InactivityMonitor WriteCheckTimer:253922112 ] - [ DEBUG ]  WriteChecker: 10000ms elapsed since last write check.
2014-06-23 09:37:25  [ ActiveMQ InactivityMonitor Worker:253922114 ] - [ DEBUG ]  Running WriteCheck[tcp://127.0.0.1:61616]
2014-06-23 09:37:35  [ ActiveMQ InactivityMonitor WriteCheckTimer:253932113 ] - [ DEBUG ]  WriteChecker: 10000ms elapsed since last write check.
2014-06-23 09:37:35  [ ActiveMQ InactivityMonitor Worker:253932113 ] - [ DEBUG ]  Running WriteCheck[tcp://127.0.0.1:61616]
2014-06-23 09:37:45  [ ActiveMQ InactivityMonitor WriteCheckTimer:253942112 ] - [ DEBUG ]  WriteChecker: 10000ms elapsed since last write check.
2014-06-23 09:37:45  [ ActiveMQ InactivityMonitor Worker:253942113 ] - [ DEBUG ]  Running WriteCheck[tcp://127.0.0.1:61616]
2014-06-23 09:37:52  [ ActiveMQ InactivityMonitor ReadCheckTimer:253948742 ] - [ DEBUG ]  30000ms elapsed since last read check.
2014-06-23 09:37:55  [ ActiveMQ InactivityMonitor WriteCheckTimer:253952112 ] - [ DEBUG ]  WriteChecker: 10000ms elapsed since last write check.
2014-06-23 09:37:55  [ ActiveMQ InactivityMonitor Worker:253952112 ] - [ DEBUG ]  Running WriteCheck[tcp://127.0.0.1:61616]

 

 

 
2014年6月23日 09:40
  • 大小: 83.7 KB

3个答案 按时间排序 按投票排序

0 0

因为consumer1.receive(600000);指定了接收时间,到时就结束了。

2015年12月05日 18:49
0 0

ActiveMq不是提供了一个WEB管理服务吗?该网站内有详细的监控数据,建议你可以看看。

2014年6月27日 14:02
0 0

我曾经搞过超大数据量的MQ丢数据的问题,是一家客户的服务器,情况跟你的差不多,就是时间久了丢数据,或者接收不到数据,怎么差都查不出原因,但后来解决掉了,
你可以尝试一下,我看到你用的java吧,大概有两种方式:
在这之前,你先一些一个程序,他是可以独立运行的,或者通过传参数运行的,这个程序就是接收MQ数据和处理mq数据的程序,接收完数据,如果发现MQ里面的数据没有了,就退出进程,注意该程序一定要是单线程的,多线程下也会出现接收不到的情况/
1.如果你是用的windows来接收的,可以在windows下面新建一个“计划任务”,任务就是定时启动你上面的那个程序
2.你还可以通过别的方式启动,比如你写一个java的服务程序,这个程序跟windows的任务计划一样,定时处理程序,
-----------------------
就是你不能长时间和MQ服务器连接,长时间连接,一定会丢数据或者获取失败。你要通过多进程,而每个进程又是单线程的方式启动。
如果你的数据量大,你可以同时启动多个进程,传入不同的参数,来改成程序接收的数据范围。
第一个程序:根据入口参数,接收自己的数据,处理,如理完以后进程结束,
第二个程序:写一个专门启动和结束进程的服务,这个服务器随着开机启动,注意,启动进程不要太频繁,一个小时启动一次。
----------------
我可能表达不清楚,因为我这里也没有环境了,不好写代码给你,你可以加我QQ:2273410177


2014年6月26日 17:58

相关推荐

Global site tag (gtag.js) - Google Analytics