2012-11-12 59 views
3

我已經安裝了聲納和MySQL數據庫在服務器A和服務器B.我想使用聲納亞軍,但每次我得到以下錯誤的時間運行聲納分析:聲納拋出錯誤BadDatabaseVersion

Caused by: java.lang.RuntimeException: wrapper 
    at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.monitorAndThrowReflectionLifecycleException(ReflectionLifecycleStrategy.java:130) 
    ... 22 more 
Caused by: org.sonar.core.persistence.BadDatabaseVersion: The current batch process and the configured remote server do not share the same DB configuration. 
    - Batch side: jdbc:mysql://xx.xx.xx.xx:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true (sonar/*****) 
    - Server side: check the configuration at http://xx.xx.xx.xx:9000/system 

服務器B正在從服務器A訪問數據庫。我檢查了批處理和服務器端的所有配置,一切似乎都正常。

我也GOOGLE了,發現following link, 但我不明白該怎麼做解決這個問題。

任何指針?

回答

0

你確定由聲納服務器所使用的數據庫設置:

匹配由您的構建使用的數據庫憑據?

錯誤消息表明他們沒有。 JIRA問題SONAR-3685已經以「非A Bug」解決方案代碼關閉。

+0

你好一切似乎都OK!我真的很困惑怎麼辦?請如果有人可以幫我 – user1720124

+0

檢查「系統信息」屏幕。您可以確定數據庫URL,登錄,驅動程序和驅動程序類別字段與Sonar runner的設置相匹配嗎?如果是這種情況,請捕獲Sonar屏幕的屏幕截圖,並附上Sonar runner屬性文件的副本,然後重新打開JIRA問題。道歉,沒有更多的信息,這個問題似乎是錯誤的配置。 –

6

如果您有,則也會發生此錯誤聲吶實例指向相同的數據庫。每個數據庫只能有一個Sonar實例。

Sonar在properties表中更新了一行,其中prop_key = 'sonar.core.id'每次啓動時,然後每當執行分析時比較緩存的值與數據庫中的值。如果兩者不匹配,那麼你會得到錯誤。

要解決此問題,請關閉兩個實例,然後僅重新啓動要保留的實例。 Sonar將重置sonar.core.id值,並且應該再次運行。

您可以通過REST獲取服務器的緩存ID: http://server:port/sonar/api/server

它相匹配的一個數據庫中的聲納工作。 select * from properties where prop_key = 'sonar.core.id'

+0

由於某些原因,http:// server:port/sonar/api/server和http:// server:port/api/server會給出兩個不同的響應。看着調試,批處理是在稍後檢查並將其與數據庫值進行比較。 – Mark

+0

相當有趣的郵件鏈上類似石灰提供更多的見解 - http://sonarqube.15.x6.nabble.com/How-to-scale-Sonar-Unable-to-run-two-instance-on-the- same-DB-tc5002091.html#無其他它仍然開放。 – Rishi