ActiveMQ de ne pas redémarrer car KahaDB est verrouillé
Localement pour démarrer/arrêter ActiveMQ (5.6) sur ma machine de dev je viens de lancer ./activemq start
et ./activemq stop
respectivement.
Sur notre QA machine, nous l'avons installé en tant que service et l'exécuter service activemq start
et service activemq stop
respectivement.
Je suis juste allé à rebondir à l'assurance de la qualité de la machine et émis service activemq stop
, puis service activemq start
de le redémarrer.
Je vois un ID de processus en cours de création, et si je lance ps -aef | grep activemq
je vois la vie, la respiration d'une ActiveMQ serveur.
Mais si je vais à http://<qa-server>:8161/admin
je reçois le message d'erreur typique que vous voyez quand un serveur est en panne:
Firefox ne peut pas établir une connexion avec le serveur à l' :8161.
Edit: maintenant, j'ai essayé les deux le ./active start
et service activemq start
méthodes, et les deux produisent le même problème: je vois un processus en cours de création, mais rien dans le site web de l'outil d'administration.
J'ai vérifié ActiveMQ répertoire d'origine et ne pas voir n'importe quel type de logs/
répertoire, donc je ne suis même pas sûr où commencer à déboguer le problème.
Soit AMQ n'est pas de redémarrage ou de son administration web app ne redémarre pas ou fonctionne correctement; de toute façon, je n'ai aucune idée de par où commencer. Merci à l'avance!
Modifier:
Je vois l'erreur suivante dans data/activemq.log
:
2012-10-07 11:37:14,501 | INFO | Base de données /qa-serveur/kahadb/serrure est verrouillée... attendre 10 secondes pour que la base de données pour être déverrouillé. Raison: java.io.IOException: le Fichier '/qa-serveur/kahadb/verrouillage " ne peut pas être verrouillé. | org.apache.activemq.magasin.kahadb.MessageDatabase | main
2012-10-07 11:37:24,504 | INFO | Base de données /qa-serveur/kahadb/serrure est verrouillée... attendre 10 secondes pour que la base de données pour être déverrouillé. Raison: java.io.IOException: le Fichier '/qa-serveur/kahadb/verrouillage " ne peut pas être verrouillé. | org.apache.activemq.magasin.kahadb.MessageDatabase | main
Merci encore @quartzde - s'il vous plaît voir mon commentaire en dessous de Bobby Fisher réponse. J'ai vérifié que le PID existe après le démarrage de ActiveMQ, et vérifié que le PID n'existe plus après l'arrêt du traitement. En outre, j'ai vérifié que je n'ai pas plusieurs Pid essayer de rivaliser les uns avec les autres, telles que la sclérose en AMQ instances qui rivalisent les uns avec les autres à cause de toutes les démarrages/arrêts que j'ai émis, etc.
Peut-être que l'arrêt n'a pas publié la serrure. arrêter l'AMQ, le nettoyage
data/
, démarrez l'AMQ.Merci, mais quand vous dites "nettoyage
data/
qu'un peu confus pour moi. Est data/
son répertoire du journal (dans ce cas, pourquoi l'effacement d'un fichier journal libération d'un verrou)? Ou voulez-vous dire autre chose par "nettoyage data/
)? Merci encore à tous pour votre aide jusqu'à présent, et encore +1.Aussi, j'ai trouvé ceci l'article, mais cela ne voulait pas dire grand-chose pour moi. Je sais que nous pouvons utiliser NFS, donc peut-être qu'il y a un "maître" de l'instance ou quelque chose?
OriginalL'auteur IAmYourFaja | 2012-10-07
Vous devez vous connecter pour publier un commentaire.
S'avère qu'il y avait de multiples AMQ serveurs dans notre environnement d'assurance qualité. Quand j'ai arrêté le premier serveur, une exception a été levée pour une raison quelconque, et donc il n'avait pas libérer le verrou. La Possession de ce verrouillage, puis est allé à l'autre AMQ exemple (le premier serveur était le maître, le 2ème serveur était l'esclave).
Quand j'ai essayé de redémarrer le premier serveur (le maître), il ne serait pas redémarrer car le 2ème serveur était en possession de la serrure. J'ai arrêté le 2ème serveur et la serrure a été libéré, ce qui me permet de redémarrer les deux.
OriginalL'auteur IAmYourFaja
Vérifier la
data/
répertoire pour les logs.Et est-ce une faute de frappe?
:8161.admin
Essayez
:8161/admin
Et oui, c'était une faute de frappe (je vais corriger ça)!
OriginalL'auteur quartzde
Maintenant, vous devriez avoir activemq de course de commande de douceur
OriginalL'auteur Sambit
L'arrêt d'un service ne vous garantit pas que le service est arrêté. Windows s'étend sur les threads et après un certain laps de temps, il suppose que le service est arrêté. Toujours vérifier, vérifier, de tuer le processus si vous voyez toujours en cours d'exécution dans la liste des processus. Faire de qui peut effacer les verrous qu'elle est maintenant.
ps -aef | grep activemq
fois avant de et après l'arrêt du service, avec méthodes (service activemq arrêter, et ./activemq stop), et vérifié dans tous les scénarios que le PID n'est plus là/en vie... des idées?On dirait que vous travaillez dans un environnement linux. Désolé mon hypothèse de l'OS. Cependant, en regardant le journal que vous avez posté, il ressemble à activemq est d'essayer de tenir le verrou sur la base de données, mais la présence du fichier de verrouillage dans le parc national de Kakadu bibliothèque me dit que quelque uns les autres processus de la tenue d'une serrure ou un verrou de activemq n'était pas effacé pour une raison quelconque. Si vous êtes sûr qu'aucun autre processus n'est le maintien d'un verrou sur la base de données, vous pouvez supprimer le fichier de verrouillage pour activemq à démarrer correctement.
c'est tout simplement faux. Une fois que le service reçoit l'arrêt du signal dans OnStop() ou OnShutdown (), il VA être arrêté, même si votre service des stalles dans une boucle sans fin - dans ce cas, Windows attend jusqu'à ce qu'un délai de temporisation interne est atteint (ce qui peut être très court ou très long, jusqu'à plusieurs dizaines de secondes) et le tue après. Les Services peuvent même demander un complément d'arrêt du temps - mais im deviner puisque la plupart des services sont créés par internet-les super-héros que peu de gens savent réellement comment ils DOIVENT travailler. Si un service sur votre système ne marche pas en fait escale, il est très défectueux et doit être désinstallé.
OriginalL'auteur Bobby Fisher
Si non de la ci-dessus sont de travail pour votre cas, veuillez suivre ci-dessous plus simples étapes:
Vérifier que c'est en cours d'exécution fine, par l'ouverture du ci-dessous dans votre navigateur: http://localhost:8161/
OriginalL'auteur ashu Kr