Мы установили Sonar 3.6.2 на машину Windows Server 2008 R2 Enterprise x64 и успешно начали ее в качестве службы Windows, используя встроенную базу данных H2. Наши проблемы начались при попытке переключить базу данных на экземпляр Microsoft SQL Server 2008.Проблемы с запуском службы сонара с MSSQL
Мы используем драйвер поставляется jtds базы данных (v1.2.7), со следующими параметрами незакомментированными в файле sonar.properties:
#----- 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
При первоначальном запуске сонара, мы можем видеть, что это создает все необходимые таблицы. Тем не менее, когда он встает на стадии инициализации Hibernate, мы видим следующее сообщение об ошибке:
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
Подключение к одной и той же базе данных через DbVisualizer с тем же пользователем AUSonardsa, я могу видеть, что таблица «active_rule_changes» есть , и я могу сделать простой оператор sql 'select id from active_rule_changes', который возвращает пустую таблицу с одним столбцом id.
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
Даже когда у нас есть дБ переместить таблицы в ПСЭ схему вручную, сонар до сих пор не в состоянии видеть active_rule_changes, независимо от того, есть ли у меня свойство sonar.jdbc.schema.
Мы даже попытались сбросить всю базу данных гидролокатора, воссоздать новую и установить свойство схемы в «dbo» и снова запустить гидролокатор. В этом случае он идет вперед и воссоздает все таблицы, переходит к инициализации Hibernate и снова жалуется на то, что не найдет таблицу active_rule_changes. В этом случае, несмотря на то, что свойство schema было установлено на «dbo», таблицы по-прежнему создаются в рамках схемы пользователя AUSonardsa.
Может кто-нибудь, пожалуйста, помогите нам решить, что вызывает эти проблемы?