我在服务器A和服务器B上安装了声纳和mysql数据库。我正在尝试使用声纳运行器进行声纳分析,但每次我收到以下错误:
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 :(得分:6)
如果 2个Sonar实例指向同一个数据库,也会发生此错误。每个数据库只能有一个Sonar实例。
Sonar更新properties
表中每行启动时prop_key = 'sonar.core.id'
的行,然后在执行分析时将缓存值与数据库中的值进行比较。如果两者不匹配则会出现错误。
要修复它,请关闭这两个实例,然后只重新启动要保留的实例。声纳将重置sonar.core.id值,事情应该再次起作用。
您可以通过REST获取服务器的缓存ID:
http://server:port/sonar/api/server
它必须匹配数据库中Sonar的工作。
select * from properties where prop_key = 'sonar.core.id'
答案 1 :(得分:0)