which versions are you using (SonarQube, Scanner, Plugin, and any relevant extension):9.9.4
how is SonarQube deployed: zip, Docker, Helm: zip
what are you trying to achieve: connect to new db server
what have you tried so far to achieve this; changed sonar properties to point to new db server
Do not share screenshots of logs β share the text itself (bonus points for being well-formatted)!
Hi
we have Sonarqube v 9.9.4 running in RHEL 8 Linux
currently connected to SQL 2016.
want to change to SQL DB server 2022.
when connecting with new db server sql 2022, it is not working throwing below error, elasticsearch is not coming up.
is SonarQube 9.9.4 is compatible with SQL 2022?
Do I need to change db config anywhere else other than sonar.properties?
below is jdbc jar file location:
pwd
/opt/sonarqube-9.9.4.87374/lib/jdbc/mssql
[use@server mssql]$ ls -lrt
total 1408
-rw-r--r-- 1 puser ops 1440728 Feb 6 14:21 mssql-jdbc-11.2.2.jre17.jar
2024.05.28 18:10:08 INFO app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /opt/sonarqube-9.9.4.87374/temp
2024.05.28 18:10:08 INFO app[][o.s.a.es.EsSettings] Elasticsearch listening on [HTTP: 127.0.0.1:9001, TCP: 127.0.0.1:42629]
2024.05.28 18:10:08 INFO app[][o.s.a.ProcessLauncherImpl] Launch process[ELASTICSEARCH] from [/opt/sonarqube-9.9.4.87374/elasticsearch]: /opt/sonarqube-9.9.4.87374/elasticsearch/bin/elasticsearch
2024.05.28 18:10:08 INFO app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
2024.05.28 18:10:21 INFO app[][o.s.a.SchedulerImpl] Process[es] is up
2024.05.28 18:10:21 INFO app[][o.s.a.ProcessLauncherImpl] Launch process[WEB_SERVER] from [/opt/sonarqube-9.9.4.87374]: /usr/lib/jvm/java-17-openjdk-17.0.11.0.9-2.el8.x86_64/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/opt/sonarqube-9.9.4.87374/temp -XX:-OmitStackTraceInFastThrow --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED -Dcom.redhat.fips=false -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -Dhttp.nonProxyHosts=localhost|127.*|[::1] -cp ./lib/sonar-application-9.9.4.87374.jar:/opt/sonarqube-9.9.4.87374/lib/jdbc/mssql/mssql-jdbc-11.2.2.jre17.jar org.sonar.server.app.WebServer /opt/sonarqube-9.9.4.87374/temp/sq-process3234435897901197520properties
2024.05.28 18:10:26 INFO app[][o.s.a.SchedulerImpl] Process[Web Server] is stopped
2024.05.28 18:10:26 INFO app[][o.s.a.SchedulerImpl] Process[ElasticSearch] is stopped
2024.05.28 18:10:26 WARN app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [ElasticSearch]: 143
2024.05.28 18:10:26 INFO app[][o.s.a.SchedulerImpl] SonarQube is stopped
2024.05.28 18:10:29 INFO app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /opt/sonarqube-9.9.4.87374/temp
2024.05.28 18:10:29 INFO app[][o.s.a.es.EsSettings] Elasticsearch listening on [HTTP: 127.0.0.1:9001, TCP: 127.0.0.1:46833]
2024.05.28 18:10:29 INFO app[][o.s.a.ProcessLauncherImpl] Launch process[ELASTICSEARCH] from [/opt/sonarqube-9.9.4.87374/elasticsearch]: /opt/sonarqube-9.9.4.87374/elasticsearch/bin/elasticsearch
2024.05.28 18:10:29 INFO app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
2024.05.28 18:10:42 INFO app[][o.s.a.SchedulerImpl] Process[es] is up
2024.05.28 18:10:42 INFO app[][o.s.a.ProcessLauncherImpl] Launch process[WEB_SERVER] from [/opt/sonarqube-9.9.4.87374]: /usr/lib/jvm/java-17-openjdk-17.0.11.0.9-2.el8.x86_64/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/opt/sonarqube-9.9.4.87374/temp -XX:-OmitStackTraceInFastThrow --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED -Dcom.redhat.fips=false -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -Dhttp.nonProxyHosts=localhost|127.*|[::1] -cp ./lib/sonar-application-9.9.4.87374.jar:/opt/sonarqube-9.9.4.87374/lib/jdbc/mssql/mssql-jdbc-11.2.2.jre17.jar org.sonar.server.app.WebServer /opt/sonarqube-9.9.4.87374/temp/sq-process12492583464048140553properties
2024.05.28 18:10:47 INFO app[][o.s.a.SchedulerImpl] Process[Web Server] is stopped
2024.05.28 18:10:47 WARN app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [ElasticSearch]: 143
2024.05.28 18:10:47 INFO app[][o.s.a.SchedulerImpl] Process[ElasticSearch] is stopped
2024.05.28 18:10:47 INFO app[][o.s.a.SchedulerImpl] SonarQube is stopped
2024.05.28 18:10:49 INFO app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /opt/sonarqube-9.9.4.87374/temp
Colin
thanks for update, yes I see db logs in web.log, web logs are attached below:
Do we have to specify the default port 1433 in sonar.properties?
I added port 1433 also for new server, still getting same error.
thanks for your help on this.
I see below error:
2024.05.28 17:05:43 INFO web[][o.sonar.db.Database] Create JDBC data source for jdbc:sqlserver://old-db-server:1433;databaseName=SONARQUBE
2024.05.28 17:05:48 INFO web[][o.s.s.p.d.m.c.MssqlCharsetHandler] Verify that database collation is case-sensitive and accent-sensitive
2024.05.28 18:10:24 INFO web[][o.sonar.db.Database] Create JDBC data source for jdbc:sqlserver://new-db-server;databaseName=SONARQUBE
2024.05.28 18:10:26 WARN web[][o.s.c.a.AnnotationConfigApplicationContext] Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jdk.internal.loader.ClassLoaders$AppClassLoader@7aec35a-org.sonar.db.DefaultDatabase': Initialization of bean failed; nested exception is java.lang.IllegalStateException: Fail to connect to database
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jdk.internal.loader.ClassLoaders$AppClassLoader@7aec35a-org.sonar.db.DefaultDatabase': Initialization of bean failed; nested exception is java.lang.IllegalStateException: Fail to connect to database
Caused by: java.lang.IllegalStateException: Fail to connect to database
Colin
thank you for the update
Yes DB server is internal, there is no firewall, SQ server and DB server are on same subnet, no issues on connection or network.
here is the full log with error
2024.05.28 16:54:56 INFO web[][o.s.s.app.WebServer] Web Server stopped
2024.05.28 16:55:24 INFO web[][o.s.p.ProcessEntryPoint] Starting Web Server
2024.05.28 16:55:26 INFO web[][o.s.s.p.LogServerVersion] SonarQube Server / 9.9.4.87374 / b2dtoeken742
2024.05.28 16:55:26 INFO web[][o.sonar.db.Database] Create JDBC data source for jdbc:sqlserver://new-db-server:1433;databaseName=SONARQUBE
2024.05.28 16:55:26 INFO web[][c.z.h.HikariDataSource] HikariPool-1 - Starting...
2024.05.28 16:55:28 ERROR web[][c.z.h.p.HikariPool] HikariPool-1 - Exception during pool initialization.
com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encr
yption. Error: "PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requeste
d target". ClientConnectionId:54connection-id-e
at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:3806)
at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1906)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:3329)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2950)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:2790)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1663)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1064)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:121)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:359)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:201)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:470)
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561)
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:100)
at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:81)
at org.sonar.db.DefaultDatabase.createHikariDataSource(DefaultDatabase.java:159)
at org.sonar.db.DefaultDatabase.initDataSource(DefaultDatabase.java:148)
at org.sonar.db.DefaultDatabase.start(DefaultDatabase.java:126)
at org.sonar.core.platform.StartableBeanPostProcessor.postProcessBeforeInitialization(StartableBeanPostProcessor.java:33)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapabl
eBeanFactory.java:440)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1796)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:920)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:187)
at org.sonar.server.platform.platformlevel.PlatformLevel.start(PlatformLevel.java:80)
at org.sonar.server.platform.platformlevel.PlatformLevel1.start(PlatformLevel1.java:164)
at org.sonar.server.platform.PlatformImpl.start(PlatformImpl.java:196)
at org.sonar.server.platform.PlatformImpl.startLevel1Container(PlatformImpl.java:162)
at org.sonar.server.platform.PlatformImpl.init(PlatformImpl.java:76)
at org.sonar.server.platform.web.PlatformServletContextListener.contextInitialized(PlatformServletContextListener.java:43)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4462)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4914)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:794)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:248)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:433)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:921)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.startup.Tomcat.start(Tomcat.java:489)
at org.sonar.server.app.EmbeddedTomcat.start(EmbeddedTomcat.java:72)
at org.sonar.server.app.WebServer.start(WebServer.java:55)
at org.sonar.process.ProcessEntryPoint.launch(ProcessEntryPoint.java:97)
at org.sonar.process.ProcessEntryPoint.launch(ProcessEntryPoint.java:81)
at org.sonar.server.app.WebServer.main(WebServer.java:104)
Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find vali
d certification path to requested target
at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:378)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:321)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:316)
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:654)
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:473)
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:369)
at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:396)
at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:480)