3

我已经在服务器 A 和服务器 B 上安装了声纳和 mysql 数据库。我正在尝试使用 sonar-runner 运行声纳分析,但每次我收到以下错误:

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 访问数据库。我已经检查了批处理和服务器端的所有配置,一切似乎都正常。

我也用谷歌搜索并找到了以下链接,但我不明白如何解决这个问题。

任何指针?

4

2 回答 2

6

如果您有2 个 Sonar 实例指向同一个数据库,也会发生此错误。每个数据库只能有一个 Sonar 实例。

Sonar每次启动时都会更新properties表中的一行,然后在执行分析时将缓存值与数据库中的值进行比较。prop_key = 'sonar.core.id'如果两者不匹配,则会出现错误。

要修复它,请关闭两个实例,然后仅重新启动您要保留的实例。Sonar 将重置 sonar.core.id 值,并且一切应该会再次正常工作。

您可以通过 REST 获取服务器的缓存 id: http://server:port/sonar/api/server

它必须与数据库中的那个相匹配,Sonar 才能工作。 select * from properties where prop_key = 'sonar.core.id'

于 2013-03-27T17:40:54.343 回答
0

您确定 Sonar 服务器使用的数据库设置:

匹配您的构建使用的数据库凭据?

错误消息表明他们没有。JIRA 问题SONAR-3685以“不是错误”解决代码关闭。

于 2012-11-12T23:59:17.473 回答