web-dev-qa-db-ja.com

Sonarサーバーを起動できません

Sonarを使用して、プロジェクトのコードレビューレポートを生成しています。しかし、サーバーを起動できません。私は得ています

HeapDumpOnOutOfMemoryError

走りながら

StartSonar.bat

ファイル。

ソナーの起動中に生成されたログを見つけてください。

C:\ TEMP2\Sonar\sonarqube-4.5\bin\windows-x86-32> StartSonar.bat wrapper | ->ラッパーがコンソールラッパーとして開始| JVMの起動... jvm 1
|ラッパー(バージョン3.2.3) http://wrapper.tanukisoftware.org jvm 1 | Copyright 1999-2006 Tanuki Software、Inc.無断複写・転載を禁じます。 jvm 1 | jvm 1 | 2015.07.28 07:30:51 INFOアプリ[ospmJavaProcessLauncher]起動プロセス[検索]: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.tmpdir = C:\ TEMP2\arnar\sonnarson 4.5\temp -cp ./lib/common/;./lib/search/組織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] Process [search] is up jvm 1 | 2015.07.28 07:30:57 INFO app [ospmJavaProcessLauncher]起動プロセス[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情報app [o.s.p.m.TerminatorThread] Process [search]はjvm 1を停止しています| 2015.07.28 07:30:58情報app [o.s.p.m.TerminatorThread] Process [search] is stopped wrapper | <-ラッパーが停止しました

C:\ TEMP2\Sonar\sonarqube-4.5\bin\windows-x86-32>

この問題を解決するにはどうすればよいですか?任意のアイデア/ソリューションが高く評価されています。

10
Gunjan Shah

ソナーログファイル自体から解決策を得ました。サーバーの起動ログは、「sonarqube-4.5\logs」ディレクトリの下のsonar.logファイルにあります。

次のポートバインド例外のため、サーバーを起動できませんでした。

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]

そこで、ディレクトリ「sonarqube-4.5\conf」の下のsonar.propertiesファイルでポート番号を「9000」から「4950」に変更しました。

# 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

ポート番号を変更した後、サーバーが正常に起動しました。

13
Gunjan Shah

この問題の背後にある理由は、ポート番号がすでにSONARで使用されているため、SONARを適切に終了しなかったためです。これを取り除くには2つの方法があります。

  1. ログファイル(sonarqube-4.5\logs)を使用してポート番号を特定します。次に、そのプロセスのPIDを特定します。次に、PIDを使用してプロセスを強制終了します。

ログは次のようになります

Java.net.BindException: Address already in use: **JVM_Bind /0.0.0.0:9000**

PIDを見つけるには

netstat -a -n -o | find "port_num"

プロセスを強制終了するには

taskkill /F /PID "pid"
  1. システムからログオフして再度ログインし、StartSonar.batファイルを開始するだけです。それは間違いなく動作します。
6
Haja

すでにSonarを起動して、コマンドプロンプトでプロセスを強制終了した場合、JVMはまだバックグラウンドで実行されています。

Javaプロセスを終了して、もう一度試してください。動作します。私のために試してみました。

5
Prasad

私の観察では、Eclipseがすでに実行されている場合、まずEclipseを閉じます。ポート9000が空いていることを確認してください。

サーバーが起動したらコマンドプロンプトからソナーを実行した後、Eclipseを実行した後。

0
Ashok Parmar

タスクマネージャ->詳細、右クリック->タスクの終了->ポート番号がわからない場合は、すべてのJava.exeに対して。次に、cmdプロンプト-> startsonar.batを再度開きます

0
Saran