Reputation: 1095
We are new to Sonar and just downloaded v2.13.1 and got it up and working with our project. It was great until it started running slowly and I realized it was because we were still running on the included Derby. We are running MySQL Server 5.1 on the same box (along with TeamCity CI), so I followed the steps to setup MySQL.
extras\database\mysql\create_database.sql
to create the sonar user and assign permissions.I updated conf\sonar.properties
to include:
sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
sonar.jdbc.driverClassName: com.mysql.jdbc.Driver
sonar.jdbc.validationQuery: select 1
I restarted the Sonar server and saw from the logs that the database tables were created and I can confirm this independently by browsing the database.
When I start the server, I get the following in the log:
2012.02.07 13:50:58 INFO o.s.c.p.Database Create JDBC datasource
2012.02.07 13:51:01 INFO org.sonar.INFO Initializing Hibernate
2012.02.07 13:51:11 INFO org.sonar.INFO Start services...
When I run our TeamCity configuration that does a "mvn clean install
" followed by a "mvn sonar:sonar
" goal, which previously worked under Derby, our build completes successfully, but Sonar dies with the following information:
[14:11:24] [west-chai:my-project] [INFO] --- sonar-maven-plugin:2.0:sonar (default-cli) @ my-project ---
[14:11:26] [west-chai:my-project] [INFO] Sonar version: 2.13.1
[14:11:29] [west-chai:my-project] [WARN] [14:11:29.403] Derby database should be used for evaluation purpose only
[14:11:29] [west-chai:my-project] [INFO] [14:11:29.403] Create JDBC datasource
[14:11:30] [west-chai:my-project] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.0:sonar (default-cli) on project my-project: Can not execute Sonar
[14:11:30] [INFO] ------------------------------------------------------------------------
[14:11:30] [INFO] Reactor Summary:
[14:11:30] [INFO]
[14:11:24] [west-chai:my-project] [INFO] --- sonar-maven-plugin:2.0:sonar (default-cli) @ my-project ---
[14:11:26] [west-chai:my-project] [INFO] Sonar version: 2.13.1
[14:11:29] [west-chai:my-project] [WARN] [14:11:29.403] Derby database should be used for evaluation purpose only
[14:11:29] [west-chai:my-project] [INFO] [14:11:29.403] Create JDBC datasource
[14:11:30] [west-chai:my-project] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.0:sonar (default-cli) on project my-project: Can not execute Sonar
[14:11:30] [INFO] ------------------------------------------------------------------------
[14:11:30] [INFO] Reactor Summary:
[14:11:30] [INFO]
[14:11:30] [INFO] PROJECT COMPONENT 1 ................... FAILURE [34.679s]
[14:11:30] [INFO] PROJECT COMPONENT 2 ................... SKIPPED
...
[14:11:30] [INFO] PROJECT COMPONENT N ................... SKIPPED
[14:11:30] [INFO] ------------------------------------------------------------------------
[14:11:30] [INFO] BUILD FAILURE
[14:11:30] [INFO] ------------------------------------------------------------------------
[14:11:30] [INFO] Total time: 41.809s
[14:11:30] [INFO] Finished at: Tue Feb 07 14:11:30 CST 2012
[14:11:31] [INFO] Final Memory: 31M/92M
[14:11:31] [INFO] ------------------------------------------------------------------------
[14:11:31] [ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.0:sonar (default-cli) on project my-project: Can not execute Sonar: PicoLifecycleException: method 'public final org.sonar.core.persistence.DefaultDatabase org.sonar.core.persistence.DefaultDatabase.start()', instance 'org.sonar.batch.bootstrap.BatchDatabase@1d4d6a, java.lang.RuntimeException: wrapper: Fail to connect to database: Cannot create PoolableConnectionFactory (java.net.ConnectException : Error connecting to server localhost on port 1527 with message Connection refused: connect.) -> [Help 1]
[14:11:31] [ERROR]
[14:11:31] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[14:11:31] [ERROR] Re-run Maven using the -X switch to enable full debug logging.
[14:11:31] [ERROR]
[14:11:31] [ERROR] For more information about the errors and possible solutions, please read the following articles:
[14:11:31] [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[14:11:31] Process exited with code 1
[14:11:31] [Publishing artifacts] Paths to publish: [E:\apps\TeamCity\server\buildAgent\temp\buildTmp\.tc-maven-bi\maven-build-info.1.xml.gz => .teamcity]
[14:11:31] [Publishing artifacts] Sending files
[14:11:31] Step Sonar (Maven) failed
[14:11:31] Waiting for 38 service processes to complete
[14:11:31] Sending build.finish.properties.gz file
[14:11:31] Paths to publish: [MyProject\Mainline\MyApp\target\chai.war, MyProject\Mainline\MyComponent\MyComponent-service\target\MyComponent.war]
[14:11:31] Sending files
[14:11:35] Build finished
[14:11:30] [INFO] ------------------------------------------------------------------------
[14:11:30] [INFO] BUILD FAILURE
[14:11:30] [INFO] ------------------------------------------------------------------------
[14:11:30] [INFO] Total time: 41.809s
[14:11:30] [INFO] Finished at: Tue Feb 07 14:11:30 CST 2012
[14:11:31] [INFO] Final Memory: 31M/92M
[14:11:31] [INFO] ------------------------------------------------------------------------
[14:11:31] [ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.0:sonar (default-cli) on project my-project: Can not execute Sonar: PicoLifecycleException: method 'public final org.sonar.core.persistence.DefaultDatabase org.sonar.core.persistence.DefaultDatabase.start()', instance 'org.sonar.batch.bootstrap.BatchDatabase@1d4d6a, java.lang.RuntimeException: wrapper: Fail to connect to database: Cannot create PoolableConnectionFactory (java.net.ConnectException : Error connecting to server localhost on port 1527 with message Connection refused: connect.) -> [Help 1]
[14:11:31] [ERROR]
[14:11:31] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[14:11:31] [ERROR] Re-run Maven using the -X switch to enable full debug logging.
[14:11:31] [ERROR]
[14:11:31] [ERROR] For more information about the errors and possible solutions, please read the following articles:
[14:11:31] [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[14:11:31] Process exited with code 1
[14:11:31] [Publishing artifacts] Paths to publish: [E:\apps\TeamCity\server\buildAgent\temp\buildTmp\.tc-maven-bi\maven-build-info.1.xml.gz => .teamcity]
[14:11:31] [Publishing artifacts] Sending files
[14:11:31] Step Sonar (Maven) failed
[14:11:31] Waiting for 38 service processes to complete
[14:11:31] Sending build.finish.properties.gz file
[14:11:31] Paths to publish: [MyProject\Mainline\MyApp\target\chai.war, MyProject\Mainline\MyComponent\MyComponent-service\target\MyComponent.war]
[14:11:31] Sending files
[14:11:35] Build finished
The error line that follows mentions port 1527, which is referenced by the commented out Derby config lines.
[14:11:31] [ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.0:sonar (default-cli) on project my-project: Can not execute Sonar: PicoLifecycleException: method 'public final org.sonar.core.persistence.DefaultDatabase org.sonar.core.persistence.DefaultDatabase.start()', instance 'org.sonar.batch.bootstrap.BatchDatabase@1d4d6a, java.lang.RuntimeException: wrapper: Fail to connect to database: Cannot create PoolableConnectionFactory (java.net.ConnectException : Error connecting to server localhost on port 1527 with message Connection refused: connect.) -> [Help 1]
If I comment out the sonar.jdbc
lines above and restore the following lines, then the both our "mvn clean install
" and the "mvn sonar:sonar
" complete successfully.
sonar.jdbc.url: jdbc:derby://localhost:152/sonar;create=true
sonar.jdbc.driverClassName: org.apache.derby.jdbc.ClientDriver
sonar.jdbc.validationQuery: values(1)
Is there a different configuration for the Maven target than what is used directly by the Sonar server? Is there an explicit way to tell which JDBC datasource is being connected to?
Upvotes: 2
Views: 6104
Reputation: 78011
The Sonar server and your Maven client are configured separately.
Unless configured otherwise Maven will automatically assume that Sonar is running locally with a Derby database, explaining your errors.
The Sonar documentation explains how Maven can be configured to support MySQL.
Upvotes: 7
Reputation: 11
I faced with the similar problem yesterday (April, 11 2012) 1) input:
2) result:
log contains exception
Fail to connect to database: Cannot create PoolableConnectionFactory (java.net.ConnectException : Ошибка соединения с сервером localhost на порту 1527
3) possible cause:
4) solution:
Upvotes: 1