Uploaded image for project: 'Confluence Data Center'
  1. Confluence Data Center
  2. CONFSERVER-52438

Upgrading to Version 6.1.0 and Above Fails When using Microsoft JDBC Drivers

    XMLWordPrintable

Details

    • Bug
    • Resolution: Tracked Elsewhere
    • Low
    • None
    • 6.1.0, 6.2.0
    • Server - Platform

    Description

      Summary

      It is not possible to upgrade Confluence to version 6.x when using the Microsoft JDBC driver for connecting to SQL server.

      Environment

      • Confluence 5.x upgrading to 6.x (versions tested were 5.10.8 and 6.2.0)
      • SQL Server 2014
      • sqljdbc42.jar driver

      Steps to Reproduce

      1. Setup Confluence 5.x with a Microsoft official JDBC driver
      2. Attempt to upgrade to version 6.x

      Expected Results

      Upgrade finishes successfully

      Actual Results

      The following exception is thrown in the atlassian-confluence.log file:

      2017-05-17 13:52:36,412 ERROR [localhost-startStop-1] [atlassian.confluence.plugin.PluginFrameworkContextListener] launchUpgrades Upgrade failed, application will not start: Upgrade task com.atlassian.confluence.upgrade.upgradetask.Hibernate5ConstraintNamesPreSchemaUpgradeTask@503b3666 failed during the SCHEMA_UPGRADE phase due to: org.hibernate.MappingException: No Dialect mapping for JDBC type: -9
      com.atlassian.confluence.upgrade.UpgradeException: Upgrade task com.atlassian.confluence.upgrade.upgradetask.Hibernate5ConstraintNamesPreSchemaUpgradeTask@503b3666 failed during the SCHEMA_UPGRADE phase due to: org.hibernate.MappingException: No Dialect mapping for JDBC type: -9
          at com.atlassian.confluence.upgrade.AbstractUpgradeManager.executeUpgradeStep(AbstractUpgradeManager.java:234)
          at com.atlassian.confluence.upgrade.AbstractUpgradeManager.runSchemaUpgradeTasks(AbstractUpgradeManager.java:190)
          at com.atlassian.confluence.upgrade.AbstractUpgradeManager.upgrade(AbstractUpgradeManager.java:138)
          at com.atlassian.confluence.plugin.PluginFrameworkContextListener.launchUpgrades(PluginFrameworkContextListener.java:118)
          at com.atlassian.confluence.plugin.PluginFrameworkContextListener.contextInitialized(PluginFrameworkContextListener.java:77)
          at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4853)
          at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314)
          at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
          at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
          at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
          at java.util.concurrent.FutureTask.run(FutureTask.java:266)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
          at java.lang.Thread.run(Thread.java:745)
      Caused by: javax.persistence.PersistenceException: org.hibernate.MappingException: No Dialect mapping for JDBC type: -9
          at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:147)
          at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:155)
          at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1407)
          at com.atlassian.confluence.upgrade.upgradetask.Hibernate5ConstraintNamesPreSchemaUpgradeTask.readMssqlConstraintNames(Hibernate5ConstraintNamesPreSchemaUpgradeTask.java:261)
          at com.atlassian.confluence.upgrade.upgradetask.Hibernate5ConstraintNamesPreSchemaUpgradeTask.readMssqlDropConstraintNames(Hibernate5ConstraintNamesPreSchemaUpgradeTask.java:246)
          at com.atlassian.confluence.upgrade.upgradetask.Hibernate5ConstraintNamesPreSchemaUpgradeTask.dropUniqueConstraintsMssql(Hibernate5ConstraintNamesPreSchemaUpgradeTask.java:236)
          at com.atlassian.confluence.upgrade.upgradetask.Hibernate5ConstraintNamesPreSchemaUpgradeTask.dropUniqueConstraints(Hibernate5ConstraintNamesPreSchemaUpgradeTask.java:193)
          at com.atlassian.confluence.upgrade.upgradetask.Hibernate5ConstraintNamesPreSchemaUpgradeTask.doUpgrade(Hibernate5ConstraintNamesPreSchemaUpgradeTask.java:166)
          at com.atlassian.confluence.upgrade.AbstractUpgradeManager$UpgradeStep$3.execute(AbstractUpgradeManager.java:641)
          at com.atlassian.confluence.upgrade.AbstractUpgradeManager.executeUpgradeTask(AbstractUpgradeManager.java:248)
          at com.atlassian.confluence.upgrade.AbstractUpgradeManager.executeUpgradeStep(AbstractUpgradeManager.java:228)
          ... 13 more
      Caused by: org.hibernate.MappingException: No Dialect mapping for JDBC type: -9
          at org.hibernate.dialect.TypeNames.get(TypeNames.java:70)
          at org.hibernate.dialect.TypeNames.get(TypeNames.java:101)
          at org.hibernate.dialect.Dialect.getHibernateTypeName(Dialect.java:679)
          at org.hibernate.loader.custom.JdbcResultMetadata.getHibernateType(JdbcResultMetadata.java:77)
          at org.hibernate.loader.custom.ScalarResultColumnProcessor.performDiscovery(ScalarResultColumnProcessor.java:45)
          at org.hibernate.loader.custom.CustomLoader.autoDiscoverTypes(CustomLoader.java:486)
          at org.hibernate.loader.Loader.getResultSet(Loader.java:2131)
          at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1911)
          at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1887)
          at org.hibernate.loader.Loader.doQuery(Loader.java:932)
          at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:349)
          at org.hibernate.loader.Loader.doList(Loader.java:2615)
          at org.hibernate.loader.Loader.doList(Loader.java:2598)
          at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2430)
          at org.hibernate.loader.Loader.list(Loader.java:2425)
          at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:335)
          at org.hibernate.internal.SessionImpl.listCustomQuery(SessionImpl.java:2127)
          at org.hibernate.internal.AbstractSharedSessionContract.list(AbstractSharedSessionContract.java:957)
          at org.hibernate.query.internal.NativeQueryImpl.doList(NativeQueryImpl.java:147)
          at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1398)
          ... 21 more
      2017-05-17 13:52:36,412 ERROR [localhost-startStop-1] [atlassian.confluence.plugin.PluginFrameworkContextListener] launchUpgrades 1 errors were encountered during upgrade:
      2017-05-17 13:52:36,412 ERROR [localhost-startStop-1] [atlassian.confluence.plugin.PluginFrameworkContextListener] launchUpgrades 1: org.hibernate.MappingException: No Dialect mapping for JDBC type: -9
      
      

      Notes

      Despite the Microsoft official drivers being outside of the Supported JDBC Drivers, there are some scenarios where we are unable to use the JTDS option. One example is when Confluence is hosted in Azure.

      This issue does not occur if you upgrade to 6.0.x versions.

      Workaround

      1. Tail the logs durring the upgrade
      2. Once the error above occurs, stop Confluence
      3. Move from the Microsoft driver to the supported JTDS by changing the following properties in confluence.cfg.xml from:
        <property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
        <property name="hibernate.connection.url">jdbc:sqlserver://<server>:<port>;databaseName=<DBname></property>
        

        To:

        <property name="hibernate.connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:jtds:sqlserver://<server>:<port>/<DBname></property>
        
      4. Start the newer version of Confluence again, the upgrade should finish

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              bandreeti Bernardo Andreeti
              Votes:
              3 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: