Uploaded image for project: 'Bamboo'
  1. Bamboo
  2. BAM-18278

Validate database configuration on Microsoft SQL Server

    XMLWordPrintable

Details

    Description

      Summary

      Bamboo throws a database error while trying to upgrade to 5.15 or higher when using Microsoft SQL Server database:

      2017-03-13 12:44:53,068 ERROR [localhost-startStop-1] [AbstractUpgradeManager] java.sql.SQLException: The component of the database name of the object qualifier must be the name of the current database.
      java.sql.SQLException: The component of the database name of the object qualifier must be the name of the current database.
          at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:372)
          at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2988)
          at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2421)
          at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:677)
          at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:505)
          at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:1032)
          at net.sourceforge.jtds.jdbc.JtdsDatabaseMetaData.getTables(JtdsDatabaseMetaData.java:1836)
          at com.mchange.v2.c3p0.impl.NewProxyDatabaseMetaData.getTables(NewProxyDatabaseMetaData.java:2962)
          at com.atlassian.bamboo.utils.db.AbstractDbmsBean.isTablePresent(AbstractDbmsBean.java:230)
          at com.atlassian.bamboo.upgrade.tasks.v5_15.UpgradeTask51502UniqueSharedCredentialNames.lambda$doUpgrade$0(UpgradeTask51502UniqueSharedCredentialNames.java:37)
          at com.atlassian.bamboo.upgrade.AbstractBootstrapUpgradeTask.withDatabaseConnection(AbstractBootstrapUpgradeTask.java:83)
          at com.atlassian.bamboo.upgrade.tasks.v5_15.UpgradeTask51502UniqueSharedCredentialNames.doUpgrade(UpgradeTask51502UniqueSharedCredentialNames.java:35)
          at com.atlassian.bamboo.upgrade.AbstractUpgradeManager.runUpgradeTask(AbstractUpgradeManager.java:210)
          at com.atlassian.bamboo.upgrade.BootstrapUpgradeManagerImpl.doUpgrade(BootstrapUpgradeManagerImpl.java:62)
          at com.atlassian.bamboo.setup.DefaultBootstrapManager.performPersistenceUpgrade(DefaultBootstrapManager.java:343)
          at com.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager.init(DefaultAtlassianBootstrapManager.java:77)
          at com.atlassian.bamboo.setup.BootstrapLoaderListener.contextInitialized(BootstrapLoaderListener.java:118)
          at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4842)
          at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5303)
          at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
          at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407)
          at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397)
          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)
      

      Steps to Reproduce

      1. Create a Microsoft SQL Server database named Bamboo.
      2. Install Bamboo version < 5.15.
      3. Connect Bamboo to the Microsoft SQL Server database using the connection string url as bamboo (instead of Bamboo with an uppercase letter B).
      4. Upgrade Bamboo to 5.15 or higher.

      Expected Results

      • Upgrade is successful.

      Actual Results

      • Upgrade fails on upgrade task number 51502 while executing "SELECT DB_NAME()" and comparing it to dbmsBean.getCatalog(c). The former shows the actual database name, the latter shows the database name configured in the connection string. They should match. If they don't, upgrade task breaks with the following error:
      The component of the database name of the object qualifier must be the name of the current database.
      

      Workaround

      1. Get the name of the Microsoft SQL Server database using the following SQL statement:
        SELECT name, database_id, create_date 
        FROM sys.databases;
        
      2. Compare it with the database name configured inside the <BAMBOO_HOME>/bamboo.cfg.xml file:
        jdbc:jtds:sqlserver://<host>:<port>/<database name>
        
      3. Update the database name so it matches the name of the database from the SQL statement.
      4. Restart Bamboo.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              brosa Bruno Rosa
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated: