\activemq-data\localhost\KahaDB配下のファイルを、データが空だった時のファイルに置換する。実は消しても自動生成される節もある。
これで、この4日間エライ事になってた https://twitter.com/nekora2199 を止められた…。
今後はこういうバグに備えて、ActiveMQのキューを毎朝早朝に全部空にするバッチを仕込んでおこう。
ちなみにプロセスを落とさずに消す正しい方法は、
to use JMX to browse the queues and call the purge() method on the QueueViewMBean.
http://activemq.apache.org/how-do-i-purge-a-queue.html
You could also delete the queue via removeQueue(String) or removeTopic(String) methods on the BrokerViewMBean
だそうな。
jconsoleから繋いで適当にそれっぽいメソッドを実行。
…消えねぇ!
やっぱ適当じゃだめか。しかしpurgeって上のリンクにもあるしな。
何か、JMXからの指示有効化みたいな指定が必要なのか。
あと、使ってるActiveMQのバージョンが5.5.1なのが関連する可能性はある。
jconsoleじゃなくてJavaプログラム中からJMXに接続してる例があった
https://gist.github.com/983841/6c0b668e80f13264d63e42eb22dd92f13bf30011
http://bendoerr.me/posts/2012-10-14-activemq-jmx-purge.html
コメント