Windows Server 2008 R2 Enterprise x64 시스템에 Sonar 3.6.2를 설치하고 포함 된 H2 데이터베이스를 사용하여 Windows 서비스로 성공적으로 시작했습니다. Microsoft SQL Server 2008 인스턴스로 데이터베이스를 전환하려고 시도 할 때 문제가 발생했습니다. 우리는 sonar.properties 파일에 주석 다음과 같은 설정으로, 공급 jtds 라이브러리 데이터베이스 드라이버 (v1.2.7)를 사용하는MSSQL을 사용하여 sonar 서비스를 시작할 때의 문제
: 처음에 수중 음파 탐지기를 시작할 때
#----- Microsoft SQLServer
sonar.jdbc.username: <user>
sonar.jdbc.password: ***********
sonar.jdbc.url: jdbc:jtds:sqlserver://<host>:<port>/sonar;domain=<domain>;useNTLMv2=true
sonar.jdbc.driverClassName: net.sourceforge.jtds.jdbc.Driver
#----- Connection pool settings
sonar.jdbc.maxActive: 20
sonar.jdbc.maxIdle: 5
sonar.jdbc.minIdle: 2
sonar.jdbc.maxWait: 5000
sonar.jdbc.minEvictableIdleTimeMillis: 600000
sonar.jdbc.timeBetweenEvictionRunsMillis: 30000
# Delay (in seconds) between processing of notification queue
sonar.notifications.delay=60
, 우리는 그것을 창조하고 볼 수있는 모든 필요한 테이블. 최대 절전 모드로 초기화 단계까지 얻을 때, 우리는 다음과 같은 오류를 참조하십시오
2013.09.03 14:24:58 INFO o.s.j.s.AbstractDatabaseConnector Initializing Hibernate
2013.09.03 14:25:00 ERROR o.s.s.p.Platform Missing column: id in sonar.GLOBALTEST\AUSonardsa.active_rule_changes
org.hibernate.HibernateException: Missing column: id in sonar.GLOBALTEST\AUSonardsa.active_rule_changes
같은 AUSonardsa 사용자와 DBVisualizer를 통해 동일한 데이터베이스에 연결하기를, 나는 테이블 'active_rule_changes이'이 있음을 볼 수있다 , 그리고 단일 ID 열을 가진 빈 테이블을 반환하는 간단한 SQL 문 'select id from active_rule_changes'를 수행 할 수 있습니다.
Google에서 비슷한 문제 (즉, Hibernate 초기화 중에 테이블에 누락 된 열)를 검색하면 'sonar.jdbc.schema'값을 설정해야 할 필요성을 지적합니다. 우리가 (예를 들어 'DBO'에)이 값을 설정할 때 오류가 약간 변경 :
2013-09-03 16:14:33.436:WARN:oejw.WebAppContext:Failed startup of context o.e.j.w.WebAppContext{/,file:/D:/devtools/Sonar/install/sonar-3.6.2/war/sonar-server/},file:/D:/devtools/Sonar/install/sonar-3.6.2/war/sonar-server
org.hibernate.HibernateException: Missing table: active_rule_changes
우리는 우리의 DBA가 수동으로 DBO 스키마에 테이블을 이동이 경우에도, 수중 음파 탐지기는 여전히 볼 수 없습니다 sonar.jdbc.schema 속성이 설정되었는지 여부에 관계없이 active_rule_changes 테이블
우리는 전체 소나 데이터베이스를 삭제하고 새로운 것을 재 작성하고 스키마 속성을 'dbo'로 설정하고 다시 수중 음파 탐지기를 시작하기까지했습니다. 이 경우, 모든 테이블을 다시 생성하고 Hibernate Initialization으로 돌아오고 active_rule_changes 테이블을 찾지 못한다고 다시 불평합니다. 이 경우 스키마 속성이 'dbo'로 설정되었지만 테이블은 여전히 AUSonardsa 사용자의 스키마 아래에 생성 된 것처럼 보입니다.
누군가이 문제의 원인을 해결할 수 있도록 도와 줄 수 있습니까?