IBM Support

"No driver found - dbType is invalid" when launching JAVA-based function (for example Command Center), caused by invalid 'ccr-dbTypes.properties'

Troubleshooting


Problem

User launches a JAVA-based function (for example 'Company - Command Centre'). An error appears.

Symptom

Screen:
com.ibm.cognos.ccr.integration.IntegrationFacadeException: org.eclipse.core.runtime.adaptor.EclipseStarter failed!
at com.ibm.cognos.ccr.integration.IntegrationServiceAdapter$MyEclipseStarter.run(IntegrationServiceAdapter.java:170)
at java.lang.Thread.run(Thread.java:798)
Caused by: com.ibm.cognos.ccr.common.FatalException: Failed to launch!
at com.ibm.cognos.ccr.integration.application.internal.IntegrationApplication.start(IntegrationApplication.java:101)

at com.ibm.cognos.ccr.integration.IntegrationServiceAdapter$MyEclipseStarter.run(IntegrationServiceAdapter.java:168)
... 1 more
Caused by: com.ibm.cognos.ccr.common.NoSuchModelException: Unable to find instance of model of type: configproperty[ConfigPropertyModel]
at com.ibm.cognos.ccr.common.DefaultModelContext.throwNewNoSuchModelException(DefaultModelContext.java:417)

at com.ibm.cognos.ccr.integration.application.internal.IntegrationApplication.start(IntegrationApplication.java:91)
... 6 more
Caused by: com.ibm.cognos.ccr.common.WebServiceConnectionException: exceptionId=ERR.ANY.WEBSERVICECONNECTIONEXCEPTION.SERVICE_FAILED, argument(s)=[url=https:// servername/ibmcognos/controllerserver/CCRWS.asmx, passport=MTsxMDE6NTM5ZGI0ZWEtNTc5Zi0zZDkyLTVlZjMtNGQzNjQwOTNhMWU4OjE2NDIxNTAzMzU7MDszOzE7, request=executeTask(com.ibm.cognos.ccr.common.ws.ServerTask: beanID=inConfigpropertyModelDAO, methodName=getLatestSequenceNumber, args.length=0, args=[])]
at com.ibm.cognos.ccr.ccrws.JAXWSClient.processResponse(JAXWSClient.java:88)

at com.ibm.cognos.ccr.common.DefaultModelContext.getModelByIdentifier(DefaultModelContext.java:379)
... 9 more
Caused by: com.ibm.cognos.ccr.common.ResponseException: FAIL:java.lang.IllegalArgumentException: No driver found - dbType is invalid:com.ibm.cognos.ccr.common.DbConfiguration$DbType,SQL_SERVER='MS SQLServer' (provider=SQLNCLI11.1)
at com.ibm.cognos.ccr.common.WebServiceConnectionException.<init>(WebServiceConnectionException.java:69)
... 22 more

ccr.log:
16:46:46,082 INFO [cognos.ccr.integration.ServerIntegrationFacade] Executing inConfigpropertyModelDAO.getLatestSequenceNumber...
16:46:46,145 ERROR [cognos.ccr.common.DbConfiguration] Invalid provider string: SQLNCLI11
16:46:46,160 ERROR [cognos.ccr.integration.ServerIntegrationFacade] Failed when invoking method,
java.lang.Exception: Invalid provider string: SQLNCLI11
at com.ibm.cognos.ccr.common.DbConfiguration.mapProviderToDBType(DbConfiguration.java:289)
at com.ibm.cognos.ccr.integration.ServerIntegrationFacadeUtil.createDBConfiguration

Cause

There are many possible causes for the 'No driver found - dbType is invalid' error.

  • See separate IBM Technote #1680804 for more examples.

This Technote specifically relates to the scenario where the cause is that the file 'ccr-dbTypes.properties' has some wrong entries in there.

Example:

In one real-life customer example, the file 'ccr-dbTypes.properties' contained the following contents:


SQL_SERVER.name = MS SQLServer
SQL_SERVER.driver = com.microsoft.sql.server.jdbc.SQLServerDriver
SQL_SERVER.url = jdbc:sqlserver://servername:1433/controller

Resolving The Problem

Reset the file 'ccr-dbTypes.properties' to the default settings.

Example (Controller 10.2.1 FP4):


# IBM SOURCE CODE HEADER START
# =====================================================================
# OCO Source Materials
#
# BI and PM: ccr
#
# (C) Copyright IBM Corp. 2004, 2009. All Rights Reserved
#
# The source code for this program is not published or
# otherwise divested of its trade secrets, irrespective of
# what has been deposited with the U.S. Copyright Office.
# =====================================================================
# IBM SOURCE CODE HEADER END
# -----------------------------------------------------------------------------
# User-defined database types
# -----------------------------------------------------------------------------

# Entries in this file will override the default settings of the default file
# (which is compiled into a .jar file). Only active entries in this file will
# be read - if you want to replace a JDBC driver, you only need to un-comment
# and edit the corresponding ".driver" entry - the rest will be read from the
# default file.

# The application will look for this file in two separate places:
# 1) The root folder on the classpath, typically the folder where all jar files
# reside. This is the place for modifying server settings.
# 2) The user's home directory. This may also work for server side settings,
# but is primarily intended for modifying client settings IF client is
# running a non-standard configuration with direct DB access.

# ==========
# IMPORTANT!
# ==========
# The file is shipped and installed on the server as a an empty template. When
# editing this file, remember to make a copy and keep in a safe place to avoid
# overwriting it when the system is updated.

# Notes:
# ------
# - Names, drivers and URL strings may be modified as necessary, but you cannot
# add new entries (deleted entries will assume the pre-defined default value).
# - Only valid entries will be effective; if a specified driver is not found at
# runtime, the entry is ignored.
# - You can effectively disable an entry by specifying an invalid
# (non-existent) driver.
# - When you modify settings, it might be wise to also alter the name to get
# some kind of feedback (in GUI and/or logfile) that the modified properties
# file has actually been read.
# - The URL string must match the driver, and must hold '%s' where parameters
# should be inserted. Example:
# jdbc:db2://%s%s/%s
# - Parameters fed to the URL string are (in order of appearance in the string):
# 0=hostName, e.g. "localHost" or "sstordsql"
# 1=port, .e.g. ":80"
# 2=dataBaseName, e.g. "test_alloc"

# -----------------------------------------------------------------------------
# TEMPLATE
# -----------------------------------------------------------------------------

# DB2.name = DB2
# DB2.driver =
# DB2.url =

# SQL_SERVER.name = MS SQLServer
# SQL_SERVER.driver =
# SQL_SERVER.url =

# SQL_SERVER2.name = MS SQLServer (alternative)
# SQL_SERVER2.driver=
# SQL_SERVER2.url =

# ORACLETHIN.name = Oracle thin
# ORACLETHIN.driver =
# ORACLETHIN.url =

# ORACLETHINTNS.name = Oracle thin TNS
# ORACLETHINTNS.driver =
# ORACLETHINTNS.url =

# ORACLEOCI.name = Oracle oci
# ORACLEOCI.driver =
# ORACLEOCI.url =

# end of file #

[{"Product":{"code":"SS9S6B","label":"IBM Cognos Controller"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"Controller","Platform":[{"code":"PF033","label":"Windows"}],"Version":"10.2.1","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
15 June 2018

UID

swg22006798