J'utilise Sonar pour générer des rapports de révision de code de mon projet. Mais je ne parviens pas à démarrer le serveur. Je reçois
HeapDumpOnOutOfMemoryError
en courant
StartSonar.bat
fichier.
Veuillez trouver les journaux générés au démarrage du sondeur.
C:\TEMP2\Sonar\sonarqube-4.5\bin\windows-x86-32> wrapper StartSonar.bat | -> Wrapper démarré comme wrapper de console | Lancement d'une JVM ... jvm 1
| Wrapper (version 3.2.3) http://wrapper.tanukisoftware.org jvm 1 | Copyright 1999-2006 Tanuki Software, Inc. Tous droits réservés. jvm 1 | jvm 1 | 2015.07.28 07:30:51 INFO app [ospmJavaProcessLauncher] Processus de lancement [recherche]: C:\Software\jdk1.6.0_18\jre\bin\Java -Xmx256m -Xms256m - Xss256k -Djava.net.preferIPv4Stack = true - XX: + UseParNewGC -XX: + UseConcMarkSweepGC -XX: CMSInitiatingOccupancyFraction = 75 -XX: + UseCMSInitiatingOccupancyO nly -XX: + HeapDumpOnOutOfMemoryError -Djava.awt.headless = true -Djava.io.tmpPar- 4.5\temp -cp ./lib/common/;./lib/search/ org. sonar.search.SearchServer C:\Users\gxs114\AppData\Local\Temp\sq-process8934190933893070058properties jvm 1 | 2015.07.28 07:30:57 INFO app [o.s.p.m.Monitor] Processus [recherche] est en marche jvm 1 | 2015.07.28 07:30:57 INFO app [ospmJavaProcessLauncher] Processus de lancement [web]: C:\Software\jdk1.6.0_18\jre\bin\Java -Xmx768m -XX: MaxPermSi ze = 160m -XX: + HeapDumpOnOutOfMemoryError - Djava.net.preferIPv4Stack = true -Djava.awt.headless = true -Dfile.encoding = UTF-8 -Djruby.management.enabled = fals e -Djava.io.tmpdir = C:\TEMP2\Sonar\sonarqube-4.5\temp -cp ./lib/common/;./lib/server/ org.sonar.server.app.WebServer C:\Users\gxs114\AppData\Local\Te mp\sq-process4251708419326591677properties jvm 1 | 2015.07.28 07:30:57 INFO app [o.s.p.m.TerminatorThread] Processus [recherche] arrête jvm 1 | 2015.07.28 07:30:58 INFO app [o.s.p.m.TerminatorThread] Processus [recherche] est arrêté wrapper | <- Wrapper arrêtéC:\TEMP2\Sonar\sonarqube-4.5\bin\windows-x86-32>
Comment puis-je résoudre ce problème? Toute idée/solution appréciée.
J'ai obtenu la solution des fichiers journaux du sonar lui-même. Vous pouvez trouver les journaux de démarrage du serveur dans le fichier sonar.log sous le répertoire "sonarqube-4.5\logs".
Je n'ai pas pu démarrer le serveur en raison de l'exception de liaison de port suivante:
2015.07.29 02:46:36 ERROR web[o.a.c.h.Http11Protocol] Failed to initialize end point associated with ProtocolHandler ["http-bio-0.0.0.0-9000"]
Java.net.BindException: Address already in use: JVM_Bind /0.0.0.0:9000
at org.Apache.Tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.Java:411) ~[Tomcat-embed-core-7.0.54.jar:7.0.54]
at org.Apache.Tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.Java:640) ~[Tomcat-embed-core-7.0.54.jar:7.0.54]
at org.Apache.coyote.AbstractProtocol.init(AbstractProtocol.Java:434) ~[Tomcat-embed-core-7.0.54.jar:7.0.54]
at org.Apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.Java:119) [Tomcat-embed-core-7.0.54.jar:7.0.54]
J'ai donc changé le numéro de port en "4950" de "9000" dans le fichier sonar.properties sous le répertoire "sonarqube-4.5\conf".
# TCP port for incoming HTTP connections. Disabled when value is -1.
sonar.web.port=4950
# TCP port for incoming HTTPS connections. Disabled when value is -1 (default).
#sonar.web.https.port=-1
Le serveur a démarré avec succès après avoir changé le numéro de port.
La raison derrière ce problème est que le numéro de port est déjà utilisé par SONAR, vous n'avez pas correctement mis fin à SONAR. Il y a deux façons de s'en débarrasser,
Le journal ressemblera à
Java.net.BindException: Address already in use: **JVM_Bind /0.0.0.0:9000**
Pour trouver le PID
netstat -a -n -o | find "port_num"
Pour tuer le processus
taskkill /F /PID "pid"
Si vous aviez déjà démarré Sonar et tué le processus à l'invite de commandes, votre JVM fonctionnerait toujours en arrière-plan.
Tuez le processus Java et essayez à nouveau, cela fonctionne. J'ai essayé et travaillé pour moi.
Selon mon observation, si Eclipse est déjà en cours d'exécution, fermez d'abord Eclipse. vérifiez que le port 9000 est libre.
puis après avoir exécuté le sondeur à partir de l'invite de commandes une fois que le serveur est en place, puis après avoir exécuté Eclipse.
Gestionnaire des tâches -> Détails puis clic droit -> terminer la tâche -> pour tous Java.exe si vous n'êtes pas sûr du numéro de port. Puis ouvrez à nouveau l'invite cmd -> startsonar.bat