ActiveMQ wird nicht neu starten, weil KahaDB gesperrt ist
Lokal zu starten/stoppen ActiveMQ (5.6) auf meiner dev Maschine, die ich einfach laufen ./activemq start
und ./activemq stop
bzw.
Auf unsere QA-Maschine, die wir haben es als Dienst installiert und ausgeführt service activemq start
und service activemq stop
bzw.
Ging ich einfach zur bounce-QA-Maschine und ausgestellt service activemq stop
, dann service activemq start
um es neu zu starten.
Sehe ich einen Prozess-ID erstellt wird, und wenn ich ps -aef | grep activemq
ich sehe die Leben, atmen Prozess einer ActiveMQ-server.
Aber wenn ich gehen, um http://<qa-server>:8161/admin
erhalte ich die typische Fehlermeldung, die Sie sehen, wenn ein server down ist:
Firefox kann keine Verbindung zu dem server unter :8161.
Edit: ich habe nun versucht, sowohl die ./active start
und service activemq start
Methoden, und beide produzieren das gleiche Problem: ich sehe ein Prozess erstellt wird, aber nichts in der web-admin-tool.
Habe ich überprüft, ActiveMQ home-Verzeichnis und nicht sehen, jede Art von logs/
Verzeichnis, also ich bin mir auch nicht sicher, wo Sie beginnen, Debuggen das Problem.
Entweder AMQ ist nicht neu zu starten oder die web-admin-app nicht neu gestartet oder ordnungsgemäß funktioniert; ich habe keine Ahnung, wo zu beginnen. Vielen Dank im Voraus!
Bearbeiten:
Sehe ich die folgende Fehlermeldung in data/activemq.log
:
2012-10-07 11:37:14,501 | INFO - | Datenbank - /qa-server/kahadb/lock gesperrt ist... warten Sie 10 Sekunden für die Datenbank freigeschaltet werden. Grund: java.io.IOException: die Datei '/qa-server/kahadb/lock " konnte nicht gesperrt werden. | org.apache.activemq.store.kahadb.MessageDatabase | main
2012-10-07 11:37:24,504 | INFO - | Datenbank - /qa-server/kahadb/lock gesperrt ist... warten Sie 10 Sekunden für die Datenbank freigeschaltet werden. Grund: java.io.IOException: die Datei '/qa-server/kahadb/lock " konnte nicht gesperrt werden. | org.apache.activemq.store.kahadb.MessageDatabase | main
Nochmals vielen Dank @quartzde - bitte Lesen Sie meinen Kommentar unter Bobby Fisher ' s Antwort. Ich habe festgestellt, dass die PID existiert nach dem Start ActiveMQ, und verifiziert, dass die PID nicht mehr vorhanden ist, nach stoppen. Außerdem ich habe festgestellt, dass ich nicht mehrere PIDs versuchen, miteinander konkurrieren, wie mehrere AMQ Instanzen wetteifern mit einander, weil der start/stops habe ich ausgestellt, etc.
Vielleicht ist das halt nicht die Sperre. stop AMQ, Bereinigung
data/
starten AMQ.Danke, aber wenn du sagst "cleanup
data/
ein wenig verwirrend für mich. Ist data/
seinem log-Verzeichnis (in dem Fall, warum sollte das löschen eines log-Datei-Freigabe einer Sperre)? Oder meinst du etwas anderes durch "Aufräumen data/
)? Nochmals vielen Dank für Ihre Hilfe so weit, und wieder +1.Auch fand ich dieser Artikel, aber es hat nicht viel bedeuten, zu mir. Ich weiß, benutzen wir NFS, also vielleicht gibt es einen "master" - Instanz oder sowas???
InformationsquelleAutor IAmYourFaja | 2012-10-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stellt sich heraus, es waren mehrere AMQ-Server in unserer QA-Umgebung. Wenn ich Herunterfahren der erste server ist, wird eine Ausnahme geworfen wurde, für einige Grund, und so dauerte es nicht entriegeln. Besitz, das Schloss ging dann zu den anderen AMQ Instanz (der erste server war der Meister, der 2. server war der Sklave).
Als ich versuchte einen Neustart der erste server (der master), es wäre nicht neu starten, da der 2. server hatte den Besitz des Schlosses. Ich shutdown der 2. server und die Sperre freigegeben wurde, so dass ich neu starten, die beiden.
InformationsquelleAutor IAmYourFaja
Überprüfen Sie die
data/
Verzeichnis für die logs.Und ist das ein Tippfehler?
:8161.admin
Versuchen
:8161/admin
Und ja, das war ein Tippfehler (ich mache es)!
InformationsquelleAutor quartzde
Nun, sollten Sie haben activemq-Befehl läuft reibungslos
InformationsquelleAutor Sambit
Beenden eines Dienstes nicht garantieren, dass der Dienst gestoppt ist. Windows umfasst Gewinde-und nach einer gewissen Zeit es wird davon ausgegangen, dass der Dienst beendet wird. Überprüfen Sie immer, stellen Sie sicher, den Prozess zu beenden, wenn Sie immer noch sehen, es läuft in der Liste der Prozesse angezeigt. Tun, dass kann deaktivieren Sie die sperren, die es hält.
ps -aef | grep activemq
sowohl vor und nach dem ausschalten des Dienstes nach unten, mit beide - Methoden (service activemq-stop, und ./activemq-stop), und verifiziert in allen Szenarien, dass die PID nicht mehr da ist/lebt... irgendwelche Gedanken?Sieht aus wie Sie arbeiten in linux-Umgebung. Sorry über meine Annahme des OS. Dennoch, mit Blick auf das log, das Sie geschrieben, es sieht aus wie activemq ist zu versuchen zu halten, die sperren auf der Datenbank, aber allein das Vorhandensein der lock-Datei, die im Kakadu-Bibliothek sagt mir, dass entweder einige andere Prozess, eine Sperre oder die Sperre von activemq wurde nicht gelöscht aus irgendeinem Grund. Wenn Sie sicher sind, dass kein anderer Prozess eine Sperre auf die db, können Sie löschen Sie die lock-Datei für activemq ordnungsgemäß gestartet.
das ist einfach falsch. Sobald Ihre service erhält das Stopp-signal in der OnStop() oder OnShutdown() WIRD es beendet, auch wenn Ihr service-Stände in einer endlos-Schleife - in diesem Fall, die Windows wartet, bis ein interner timeout erreicht ist (das kann sehr kurz oder sehr lang, bis zu zehn Sekunden) und tötet Sie danach. Dienstleistungen können auch verlangen, zusätzliche shutdown-Zeit - aber ich vermute, da die meisten Dienstleistungen werden erstellt, indem Sie internet-Superhelden, die nur wenige Menschen wirklich wissen, wie Sie funktionieren SOLLTE. Wenn ein Dienst auf Ihrem system nicht eigentlich aufhören ist es sehr fehlerhaft ist und deinstalliert werden sollen.
InformationsquelleAutor Bobby Fisher
Wenn nicht der oben genannten arbeiten für Ihren Fall, gehen Sie bitte wie folgt einfacher Schritte:
Überprüfen, dieser läuft durch die öffnung unten in Ihren browser: http://localhost:8161/
InformationsquelleAutor ashu Kr