运行 Windows Server 2008 R2 中的两个 SonarQube 实例

Running two SonarQube instances in Windows Server 2008 R2

我已经 运行 一个位于端口 9000 的 SonarQube 实例并且能够在地址 localhost:9000 访问它。 现在我想在端口 10000 为我的新项目 运行 另一个 SonarQube 实例。我在 sonar.properties 文件中进行了更改:

sonar.web.port: 10000
sonar.web.context: /

然而,当我 运行 C:\SonarMAP\bin\windows-x86-64\StartSonar.bat 时,我收到错误消息:

wrapper  | ERROR: Another instance of the SonarQube application is already running.
Press any key to continue . . .

我做了一些研究来解决这个问题,但找不到任何有用的信息。 有什么建议吗?谢谢!

更新

实例1配置:

sonar.jdbc.username=username
sonar.jdbc.password=password
sonar.jdbc.url=jdbc:postgresql://server15/sonarQube
sonar.jdbc.driverClassName:                org.postgresql.Driver
sonar.jdbc.validationQuery:                select 1
sonar.jdbc.maxActive=20
sonar.jdbc.maxIdle=5
sonar.jdbc.minIdle=2
sonar.jdbc.maxWait=5000
sonar.jdbc.minEvictableIdleTimeMillis=600000
sonar.jdbc.timeBetweenEvictionRunsMillis=30000

实例2配置:

sonar.jdbc.username=username
sonar.jdbc.password=password
sonar.jdbc.url:                             jdbc:postgresql://localhost/sonarMAP
sonar.jdbc.driverClassName:                org.postgresql.Driver
sonar.jdbc.validationQuery:                select 1
sonar.jdbc.maxActive:                      20
sonar.jdbc.maxIdle:                        5
sonar.jdbc.minIdle:                        2
sonar.jdbc.maxWait:                        5000
sonar.jdbc.minEvictableIdleTimeMillis:     600000
sonar.jdbc.timeBetweenEvictionRunsMillis:  30000
sonar.web.port:                         9100
sonar.web.context:                        /
sonar.search.port=9101
sonar.notifications.delay:          60

您需要更改 conf/sonar.properties 文件中的其他设置,即:

  • sonar.search.port: Elasticsearch的端口
  • sonar.search.httpPort: 如果你一开始启用它,你也必须改变它
  • 显然您无法连接到同一数据库的同一模式

显然你不能在 Windows 上 运行 多个实例,因为 conf/wrapper.conf.

中有 wrapper.single_invocation=true

将其设置为 false 似乎允许这样做(正如 Fabrice 在他的回答中解释的那样,您仍然必须使用不同的端口)但这正在进入灰色区域:不推荐和未经测试的设置。