记录一次升级ActiveMQ版本遇到的问题

    我负责ActiveMQ服务,本周一队列消费者的系统反馈他们无法正常监听到消息了,从MQ Console上看到该队列A的消息确实堆积了,Number Of Pending Messages  不断增加,本地开启消费者以及他们系统本地开启消费者都能正常监听到消息,但是线上就是不行,他们服务重启后问题依然无法解决,找不到解决的办法,我就考虑升级下AMQ版本,原版本为5.8.0(可从MQ Console中看到)。
    从网上下载到最新版本:5.15.9,上传到服务器上后,修改了conf目录下activemq.xml的TCP端口号(生产者推送和消费者监听的端口)以及jetty.xml中的控制台端口号后,重启服务,提示PID已创建,但是ps查看进程,却找不到该进程信息,并且telnet本TCP端口,也不通,查看data目录下的activemq.log,发现文件修改时间还是3月份。
    找不到更多提示信息,只好硬下头皮(shell水平有待提高)去读下bin目录下的启动脚本:activemq,看到有Detect the location of the java binary,突然想起来MQ是依赖JDK的,而服务器还是JDK1.6,新版本MQ可能不兼容,搜索下发现确认5.15.9版本需要JDK1.8。网上查找AMQ指定JDK目录,在bin目录下env文件中最后一段信息中![env文件中指定JDK方式描述信息](https://img-blog.csdnimg.cn/20190713170157179.png)发现是使用:JAVACMD="auto"自动去服务器上查找,通过which java查看(/usr/bin/java)

服务器确实是JDK1.6。安装JDK1.8后,修改env文件中JAVACMD指定到JDK下/aaa/jdk1.8.0_144/bin/java,重启服务,依然不行。。。
难道配置没有生效,在bin目录下启动脚本activemq中增加输出:echo $JAVACMD,发现依然还是/usr/bin/java,奇怪,JAVACMD配置项没有生效,难道指定的JDK目录不对,随便改了下目录/aaa/jdk1.8.0_144/bin,重启服务依然不行,但是。。。 echo出来的JAVACMD目录是/aaa/jdk1.8.0_144/bin了,进到/aaa/jdk1.8.0_144以及/aaa/jdk1.8.0_144/bin目录查看,java文件自己登陆的用户没有x可执行权限,先不考虑为啥没有权限,先chmod增加上权限,再把JAVACMD调整为/aaa/jdk1.8.0_144/bin/java,启动,服务终于正常启动了,控制台也能正常查看了。

发布了14 篇原创文章 · 获赞 3 · 访问量 938

猜你喜欢

转载自blog.csdn.net/sjz88888/article/details/95764033