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、サービスの再起動はまだ機能しませんが、エコーされる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