Installing IIQ 8.4 error: Invalid object name 'spt_database_version'

Which IIQ version are you inquiring about?

8.4

Please share any images or screenshots, if relevant.

Error:

D:\staging\identityiq\WEB-INF\bin>iiq console
adding exports for Java 17
iiq.hostname : WSAMZN-R3DACB35-console
2026-01-30T19:08:48,937  WARN main springframework.context.support.ClassPathXmlApplicationContext:559 - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'versionChecker' defined in class path resource [configBeans.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: Unable to check IdentityIQ database version: Invalid object name 'spt_database_version'.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'versionChecker' defined in class path resource [configBeans.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: Unable to check IdentityIQ database version: Invalid object name 'spt_database_version'.

Please share any other relevant files that may be required (for example, logs).

iiq.properties file:

##### iiq.properties #####
#
# Copy your WEB-INF/classes/iiq.properties from install into this file

##### iiq.properties #####
#
# (c) Copyright 2008 SailPoint Technologies, Inc., All Rights Reserved.
#
# This file contains configuration settings for IdentityIQ.  For your unique
# environment, you will need to adjust the properties below.
#
# IdentityIQ can either create its own datasource or use a datasource that is
# managed by an application server.  Depending on the type of database being
# used, you will need to do the following:
#
# 1) Uncomment the correct sessionFactory.hibernateProperties.hibernate.dialect
#    and ensure that all other dialects are commented out.
# 2) If using MS SQL Server, also uncomment the quartz properties:
#    scheduler.quartzProperties.org.quartz.jobStore.driverDelegateClass and
#    scheduler.quartzProperties.org.quartz.jobStore.selectWithLockSQL.
#
#
# IDENTITYIQ MANAGED DATASOURCES ONLY
#
# In addition to the steps above, if IdentityIQ is creating its own datasource
# (ie - not using an application server managed datasource), you will need to
# perform the following steps:
#
# 1) Modify dataSource.username and dataSource.password to include the username
#    and password of the database user.  The password may be an encrypted using
#    the "encrypt" command when running "iiq console".
# 2) Configure the dataSource.url to connect to the database, and uncomment the
#    appropriate dataSource.driverClassName.
# 3) Optionally configure other connection pool settings.
#
#
# APPLICATION SERVER MANAGED DATASOURCES ONLY
#
# In addition to the steps above, if IdentityIQ is using an application server
# managed datasource, you will need to perform the following steps:
#
# 1) Configure the datasource in your application server.  This usually involves
#    putting the JDBC driver jar file in a common location and configuring
#    properties for your database connection and pool settings.  Consult the
#    documentation for the application server for more information.  Also,
#    ensure that the JDBC driver jar file is not in the WEB-INF\lib directory
#    of the IdentityIQ web application.
# 2) Change jndiDataSource.jndiName to point to the location in JNDI in which
#    the datasource is stored.
# 3) Change configuredDataSource.targetBeanName to "jndiDataSource".
#    7.1 update: at the moment targetBeanName doesn't work after the Spring upgrade
#    you must edit the <alias> definition in configBeans.xml
#

##### Application Server Managed Data Source Properties #####

# Depending on the app server, the "java:comp/env/" may not be required.
jndiDataSource.jndiName=java:comp/env/jdbc/testDataSource

# Set to "jndiDataSource" to use an app server managed datasource. Otherwise
# leave the default value "dataSource".
configuredDataSource.targetBeanName=dataSource

# These settings are for the activemq broker.  At this time this should remain
# set to type activemq. This is only needed for running an embedded message
# broker within IdentityIQ, and is ignored when the message broker is external
messageServiceFactory.type=activemq
activeMQMessageServiceManager.brokerUri=tcp://0.0.0.0:61616?transport.trace=true&transport.soTimeout=10000
activeMQMessageServiceManager.activemqLocker=org.apache.activemq.store.jdbc.LeaseDatabaseLocker
# ActiveMQ Broker System Usage limit sizing in Megabytes
activeMQMessageServiceManager.memoryLimit=2048
activeMQMessageServiceManager.storeLimit=100000
activeMQMessageServiceManager.tempLimit=50000

##### Data Source Properties #####
dataSource.maxWaitMillis=10000
dataSource.maxTotal=50
dataSource.minIdle=5
#dataSource.minEvictableIdleTimeMillis=300000
#dataSource.maxOpenPreparedStatements=-1

dataSource.username=sa
dataSource.password=SaDefaultPassword123

##### MySQL/Aurora (without SSL)  #####
## URL Format: dataSource.url=jdbc:mysql://<host_name>:<port>/<dbname>?useServerPrepStmts=true&tinyInt1isBit=true&useSSL=false&characterEncoding=UTF-8&characterEncoding=UTF-8&serverTimezone=UTC
## if the client timezone is not UTC, adding the JDBC option 'serverTimezone=UTC' will cause MySQL to behave
## differently with regard to TIMESTAMP fields. See IdentityIQ Installation Guide for more details.
#dataSource.url=jdbc:mysql://localhost/identityiq?useServerPrepStmts=true&tinyInt1isBit=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
#dataSource.driverClassName=com.mysql.cj.jdbc.Driver
#sessionFactory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect
#activeMQMessageServiceManager.activemqJdbcAdapter=org.apache.activemq.store.jdbc.adapter.MySqlJDBCAdapter

##### MySQL/Aurora (SSL) #####
## URL Format: dataSource.url=jdbc:mysql://<host_name>:<port>/<dbname>?useServerPrepStmts=true&tinyInt1isBit=true&characterEncoding=UTF-8&serverTimezone=UTC
##  -- Contact your MySQL DBA to determine if any additional SSL-related connection parameters are needed.
####
#dataSource.url=jdbc:mysql://localhost/identityiq?useServerPrepStmts=true&tinyInt1isBit=true&characterEncoding=UTF-8&serverTimezone=UTC
#dataSource.driverClassName=com.mysql.cj.jdbc.Driver
#sessionFactory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect
#activeMQMessageServiceManager.activemqJdbcAdapter=org.apache.activemq.store.jdbc.adapter.MySqlJDBCAdapter

##### p6spy #####
## You also need to modify spy.properties driverlist property
#dataSource.url=jdbc:p6spy:mysql://localhost/identityiq?useServerPrepStmts=true&tinyInt1isBit=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
#dataSource.url=jdbc:p6spy:oracle:thin:@localhost:1521:identityiq
#dataSource.url=jdbc:p6spy:sqlserver://localhost:1433;databaseName=identityiq;
#dataSource.url=jdbc:p6spy:db2://localhost:50000/iiq
#dataSource.url=jdbc:p6spy:postgresql://localhost:5432/identityiq
#dataSource.driverClassName=com.p6spy.engine.spy.P6SpyDriver

##### Oracle #####
## URL Format: dataSource.url=jdbc:oracle:<drivertype>:<username/password>@<database>:<port>:<sid>
#dataSource.url=jdbc:oracle:thin:@localhost:1521:identityiq
#dataSource.driverClassName=oracle.jdbc.driver.OracleDriver
#sessionFactory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.Oracle12cDialect
#activeMQMessageServiceManager.activemqJdbcAdapter=org.apache.activemq.store.jdbc.adapter.OracleJDBCAdapter

##### MSSQL Server #####
## URL Format: dataSource.url=jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
dataSource.url=jdbc:sqlserver://localhost\\SQLEXPRESS:1433;databaseName=identityiq;encrypt=false;
dataSource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
sessionFactory.hibernateProperties.hibernate.dialect=sailpoint.persistence.SQLServerUnicodeDialect
scheduler.quartzProperties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.MSSQLDelegate
scheduler.quartzProperties.org.quartz.jobStore.selectWithLockSQL=SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?
activeMQMessageServiceManager.activemqJdbcAdapter=org.apache.activemq.store.jdbc.adapter.TransactJDBCAdapter

##### IBM DB2 #####
## URL Format: dataSource.url=jdbc:db2://<host_name>:<port_number>/<database_name>
#dataSource.url=jdbc:db2://localhost:50000/iiq
#dataSource.driverClassName=com.ibm.db2.jcc.DB2Driver
#sessionFactory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.DB297Dialect
#activeMQMessageServiceManager.activemqJdbcAdapter=org.apache.activemq.store.jdbc.adapter.DB2JDBCAdapter

##### PostgreSQL #####
## URL Format: dataSource.url=jdbc:postgresql://<host_name>:<port_number>/<database_name>
#dataSource.url=jdbc:postgresql://localhost:5432/identityiq
#dataSource.driverClassName=org.postgresql.Driver
#sessionFactory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.PostgreSQL10Dialect
#scheduler.quartzProperties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
#activeMQMessageServiceManager.activemqJdbcAdapter=sailpoint.messagebus.impl.PostgresqlJDBCAdapter

##### Plugins ####

# Determines whether or not plugins are enabled, change
# to false if plugins should be disabled globally
plugins.enabled=true

# Determines if SQL scripts should be executed dynamically
# at the time a plugin is installed, upgraded or uninstalled
plugins.runSqlScripts=true

# Determines if XML object files should be imported dynamically
# at the time a plugin is installed, upgraded or uninstalled
plugins.importObjects=true

# Determines if the global SailPoint angular bundle will be used when
# there are snippets on a page
plugins.angularSnippetEnabled=false


##### Application Server Managed Plugins Data Source Properties #####

# Depending on the app server, the "java:comp/env/" may not be required.
jndiPluginsDataSource.jndiName=java:comp/env/jdbc/testPluginsDataSource

# Set to "jndiPluginsDataSource" to use an app server managed datasource. Otherwise
# leave the default value "pluginsDataSource".
configuredPluginsDataSource.targetBeanName=pluginsDataSource


##### Plugins Data Source Properties #####
pluginsDataSource.maxWaitMillis=10000
pluginsDataSource.maxTotal=50
pluginsDataSource.minIdle=5
#pluginsDataSource.minEvictableIdleTimeMillis=300000
#pluginsDataSource.maxOpenPreparedStatements=-1

#pluginsDataSource.username=identityiqPlugin
#pluginsDataSource.password=1:8ORggiEVfa289a0+YccD4QQO0Eec3V9eSHaQwFHsNR4=

##### MySQL (without SSL) #####
## URL Format: dataSource.url=jdbc:mysql://<host_name>:<port>/<dbname>?useServerPrepStmts=true&tinyInt1isBit=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
#pluginsDataSource.url=jdbc:mysql://localhost/identityiqPlugin?useServerPrepStmts=true&tinyInt1isBit=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
#pluginsDataSource.driverClassName=com.mysql.cj.jdbc.Driver

##### MySQL (SSL) #####
## URL Format: dataSource.url=jdbc:mysql://<host_name>:<port>/<dbname>?useServerPrepStmts=true&tinyInt1isBit=true&characterEncoding=UTF-8&serverTimezone=UTC
##  -- Contact your MySQL DBA to determine if any additional SSL-related connection parameters are needed.
####
#pluginsDataSource.url=jdbc:mysql://localhost/identityiqPlugin?useServerPrepStmts=true&tinyInt1isBit=true&characterEncoding=UTF-8&serverTimezone=UTC
#pluginsDataSource.driverClassName=com.mysql.cj.jdbc.Driver

##### p6spy #####
## You also need to modify spy.properties driverlist property
#pluginsDataSource.url=jdbc:p6spy:mysql://localhost/identityiqPlugin?useServerPrepStmts=true&tinyInt1isBit=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
#pluginsDataSource.url=jdbc:p6spy:oracle:thin:@localhost:1521:identityiqPlugin
#pluginsDataSource.url=jdbc:p6spy:sqlserver://localhost:1433;databaseName=identityiqPlugin
#pluginsDataSource.url=jdbc:p6spy:db2://localhost:50000/iiq_pl
#pluginsDataSource.url=jdbc:p6spy:postgresql://localhost:5432/identityiqPlugin
#pluginsDataSource.driverClassName=com.p6spy.engine.spy.P6SpyDriver

##### Oracle #####
## URL Format: dataSource.url=jdbc:oracle:<drivertype>:<username/password>@<database>:<port>:<sid>
#pluginsDataSource.url=jdbc:oracle:thin:@localhost:1521:identityiqPlugin
#pluginsDataSource.driverClassName=oracle.jdbc.driver.OracleDriver

##### MSSQL Server #####
## URL Format: dataSource.url=jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
pluginsDataSource.url=jdbc:sqlserver://localhost\\SQLEXPRESS:1433;databaseName=identityiqPlugin;encrypt=false;user=sa;password=SaDefaultPassword123
pluginsDataSource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver

##### IBM DB2 #####
## URL Format: dataSource.url=jdbc:db2://<host_name>:<port_number>/<database_name>
#pluginsDataSource.url=jdbc:db2://localhost:50000/iiq_pl
#pluginsDataSource.driverClassName=com.ibm.db2.jcc.DB2Driver

##### PostgreSQL #####
## URL Format: dataSource.url=jdbc:postgresql://<host_name>:<port_number>/<database_name>
#pluginsDataSource.url=jdbc:postgresql://localhost:5432/identityiqPlugin
#pluginsDataSource.driverClassName=org.postgresql.Driver


##### Access History ####

##### Data Source Properties for Access History #####
dataSourceAccessHistory.maxWaitMillis=10000
dataSourceAccessHistory.maxTotal=50
dataSourceAccessHistory.minIdle=5
#dataSourceAccessHistory.minEvictableIdleTimeMillis=300000
#dataSourceAccessHistory.maxOpenPreparedStatements=-1

#dataSourceAccessHistory.username=identityiqah
#dataSourceAccessHistory.password=IdentityIqAh123

##### MySQL/Aurora (without SSL)  #####
#dataSourceAccessHistory.url=jdbc:mysql://localhost/identityiqah?useServerPrepStmts=true&tinyInt1isBit=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
#dataSourceAccessHistory.driverClassName=com.mysql.cj.jdbc.Driver
#sessionFactoryAccessHistory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect

##### MySQL/Aurora (SSL) #####
## URL Format: dataSource.url=jdbc:mysql://<host_name>:<port>/<dbname>?useServerPrepStmts=true&tinyInt1isBit=true&characterEncoding=UTF-8&serverTimezone=UTC
##  -- Contact your MySQL DBA to determine if any additional SSL-related connection parameters are needed.
####
#dataSourceAccessHistory.url=jdbc:mysql://localhost/identityiqah?useServerPrepStmts=true&tinyInt1isBit=true&characterEncoding=UTF-8&serverTimezone=UTC
#dataSourceAccessHistory.driverClassName=com.mysql.cj.jdbc.Driver
#sessionFactoryAccessHistory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect

##### Oracle #####
## URL Format: dataSource.url=jdbc:oracle:<drivertype>:<username/password>@<database>:<port>:<sid>
#dataSourceAccessHistory.url=jdbc:oracle:thin:@localhost:1521:identityiqah
#dataSourceAccessHistory.driverClassName=oracle.jdbc.driver.OracleDriver
#sessionFactoryAccessHistory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.Oracle12cDialect

##### MSSQL Server #####
## URL Format: dataSource.url=jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
dataSourceAccessHistory.url=jdbc:sqlserver://localhost\\SQLEXPRESS:1433;databaseName=identityiqah;encrypt=false;user=sa;password=SaDefaultPassword123
dataSourceAccessHistory.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
sessionFactoryAccessHistory.hibernateProperties.hibernate.dialect=sailpoint.persistence.SQLServerUnicodeDialect

##### IBM DB2 #####
## URL Format: dataSource.url=jdbc:db2://<host_name>:<port_number>/<database_name>
#dataSourceAccessHistory.url=jdbc:db2://localhost:50000/iiq_ah
#dataSourceAccessHistory.driverClassName=com.ibm.db2.jcc.DB2Driver
#sessionFactoryAccessHistory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.DB297Dialect

##### PostgreSQL #####
## URL Format: dataSource.url=jdbc:postgresql://<host_name>:<port_number>/<database_name>
#dataSourceAccessHistory.url=jdbc:postgresql://localhost:5432/identityiqah
#dataSourceAccessHistory.driverClassName=org.postgresql.Driver
#sessionFactoryAccessHistory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.PostgreSQL10Dialect


#
# Settings for the ruleRunner and its pool
#
ruleRunner.maxPoolReuse=1000
ruleRunnerPoolConfig.maxTotal=-1
ruleRunnerPoolConfig.maxTotalPerKey=8
ruleRunnerPoolConfig.maxIdlePerKey=8
ruleRunnerPoolConfig.minIdlePerKey=0

##### Hibernate Listener Service Thread Pool Settings ######
# if this is false then the listeners will not be registered.
# if AI is installed this should probably be set to true.
hibernateListenerServiceConfig.hibernateListenerEnabled=true
# number of threads that will always be alive
hibernateListenerServiceConfig.coreThreads=10
# max number of threads that can be running if there is a high load
hibernateListenerServiceConfig.maxThreads=20
# how long in milliseconds extra threads will sit idle before scaling back down to the core number
hibernateListenerServiceConfig.keepAliveTime=10000
# how many changes can be queued up for the threads to work on
hibernateListenerServiceConfig.queueSize=10000

##### BundleProfileRelation Listener Service Thread Pool Settings ######
# number of threads that will always be alive
bundleProfileRelationListenerServiceConfig.coreThreads=10
# max number of threads that can be running if there is a high load
bundleProfileRelationListenerServiceConfig.maxThreads=20
# how long in milliseconds extra threads will sit idle before scaling back down to the core number
bundleProfileRelationListenerServiceConfig.keepAliveTime=10000
# how many changes can be queued up for the threads to work on
bundleProfileRelationListenerServiceConfig.queueSize=10000

##### Debug Settings #####

# Uncomment to send all SQL queries to std out. This provides a lot of output
# and slows down execution, so use it wisely.
#sessionFactory.hibernateProperties.hibernate.show_sql=true

# Hibernate Transaction Isolation Levels
# 1 = Read Uncommitted, 2 = Read Committed, 4 = Repeatable Read, 8 = Serializable
#sessionFactory.hibernateProperties.hibernate.connection.isolation=1

#
# IIQ Keystore and Master Password properties
#

# file location of the IIQ keystore
# (override of the default $SPHOME/WEB-INF/classes/iiq.dat )
#
#keyStore.file  = /example/path/filename

# file location of the IIQ master password file
# (override of the default $SPHOME/WEB-INF/classes/iiq.cfg )
#
#keyStore.passwordFile = /example/path/filename

# Enable caching in the keystore
# (default is false or no caching )
#
#keyStore.cache = true

Share all details about your problem, including any error messages you may have received.

I am installing IIQ 8.4 in a sandbox environment. When I run the command ‘iiq console’ at the step to import init.xml, I run into the above error. I have searched for similar issues and seems like it may have to do with having the same username to log in to both identityiq and identityiqah tables (which I do not have) or to set the default schema for the identityiq user in the identityiq table, which I have already done. I still face this error. Kindly suggest other steps I can take. Thank you.

if you have admin permission on your database, can you login to your database and run the command “ALTER USER identityiq WITH DEFAULT_SCHEMA = identityiq;”

The main culprit behind this error is that the default schema is incorrect for the user that IdentityIQ uses to connect to the MS SQL Server DB.

and then run the iiq console ??

@tim089

Please refer below Post once.

@tim089

Please refer this post:

Hi @naveenkumar3, yes I have tried this and verified on the DB that the default schema has been updated but the error still persists. Here are some screenshots:

Hi @Sumit_Ukarande , I have tried this and the error persists. Kindly refer to my screenshots above

hi @manikanta_pasarla , I am facing a different error, where I can connect to the DB but unable to check databse version

Hi @tim089

I see multiple issues with your iiq.properties file

dataSource.username=sa – this is wrong username, it is supposed to be identityiq

dataSource.url=jdbc:sqlserver://localhost\\SQLEXPRESS:1433;databaseName=identityiq;encrypt=false;
dataSource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
sessionFactory.hibernateProperties.hibernate.dialect=sailpoint.persistence.SQLServerUnicodeDialect
scheduler.quartzProperties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.MSSQLDelegate
scheduler.quartzProperties.org.quartz.jobStore.selectWithLockSQL=SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?
activeMQMessageServiceManager.activemqJdbcAdapter=org.apache.activemq.store.jdbc.adapter.TransactJDBCAdapter

the format of the dataSource.url is wrong.
dataSource.url=jdbc:sqlserver://localhost:1433;databaseName=identityiq;encrypt=false;

The database connection configurations for the two Plugin database entries listed below have not been uncommented.

#pluginsDataSource.username=identityiqPlugin
#pluginsDataSource.password=1:8ORggiEVfa289a0+YccD4QQO0Eec3V9eSHaQwFHsNR4=

The database connection configurations for the two Access History entries listed below have not been uncommented.

#dataSourceAccessHistory.username=identityiqah
#dataSourceAccessHistory.password=IdentityIqAh123

Hi @pattabhi , thank you for the suggestions. I have applied all of them but the error still persists.

This is my latest iiq.properties:

##### iiq.properties #####
#
# Copy your WEB-INF/classes/iiq.properties from install into this file

##### iiq.properties #####
#
# (c) Copyright 2008 SailPoint Technologies, Inc., All Rights Reserved.
#
# This file contains configuration settings for IdentityIQ.  For your unique
# environment, you will need to adjust the properties below.
#
# IdentityIQ can either create its own datasource or use a datasource that is
# managed by an application server.  Depending on the type of database being
# used, you will need to do the following:
#
# 1) Uncomment the correct sessionFactory.hibernateProperties.hibernate.dialect
#    and ensure that all other dialects are commented out.
# 2) If using MS SQL Server, also uncomment the quartz properties:
#    scheduler.quartzProperties.org.quartz.jobStore.driverDelegateClass and
#    scheduler.quartzProperties.org.quartz.jobStore.selectWithLockSQL.
#
#
# IDENTITYIQ MANAGED DATASOURCES ONLY
#
# In addition to the steps above, if IdentityIQ is creating its own datasource
# (ie - not using an application server managed datasource), you will need to
# perform the following steps:
#
# 1) Modify dataSource.username and dataSource.password to include the username
#    and password of the database user.  The password may be an encrypted using
#    the "encrypt" command when running "iiq console".
# 2) Configure the dataSource.url to connect to the database, and uncomment the
#    appropriate dataSource.driverClassName.
# 3) Optionally configure other connection pool settings.
#
#
# APPLICATION SERVER MANAGED DATASOURCES ONLY
#
# In addition to the steps above, if IdentityIQ is using an application server
# managed datasource, you will need to perform the following steps:
#
# 1) Configure the datasource in your application server.  This usually involves
#    putting the JDBC driver jar file in a common location and configuring
#    properties for your database connection and pool settings.  Consult the
#    documentation for the application server for more information.  Also,
#    ensure that the JDBC driver jar file is not in the WEB-INF\lib directory
#    of the IdentityIQ web application.
# 2) Change jndiDataSource.jndiName to point to the location in JNDI in which
#    the datasource is stored.
# 3) Change configuredDataSource.targetBeanName to "jndiDataSource".
#    7.1 update: at the moment targetBeanName doesn't work after the Spring upgrade
#    you must edit the <alias> definition in configBeans.xml
#

##### Application Server Managed Data Source Properties #####

# Depending on the app server, the "java:comp/env/" may not be required.
jndiDataSource.jndiName=java:comp/env/jdbc/testDataSource

# Set to "jndiDataSource" to use an app server managed datasource. Otherwise
# leave the default value "dataSource".
configuredDataSource.targetBeanName=dataSource

# These settings are for the activemq broker.  At this time this should remain
# set to type activemq. This is only needed for running an embedded message
# broker within IdentityIQ, and is ignored when the message broker is external
messageServiceFactory.type=activemq
activeMQMessageServiceManager.brokerUri=tcp://0.0.0.0:61616?transport.trace=true&transport.soTimeout=10000
activeMQMessageServiceManager.activemqLocker=org.apache.activemq.store.jdbc.LeaseDatabaseLocker
# ActiveMQ Broker System Usage limit sizing in Megabytes
activeMQMessageServiceManager.memoryLimit=2048
activeMQMessageServiceManager.storeLimit=100000
activeMQMessageServiceManager.tempLimit=50000

##### Data Source Properties #####
dataSource.maxWaitMillis=10000
dataSource.maxTotal=50
dataSource.minIdle=5
#dataSource.minEvictableIdleTimeMillis=300000
#dataSource.maxOpenPreparedStatements=-1

dataSource.username=identityiq
dataSource.password=identityiq

##### MySQL/Aurora (without SSL)  #####
## URL Format: dataSource.url=jdbc:mysql://<host_name>:<port>/<dbname>?useServerPrepStmts=true&tinyInt1isBit=true&useSSL=false&characterEncoding=UTF-8&characterEncoding=UTF-8&serverTimezone=UTC
## if the client timezone is not UTC, adding the JDBC option 'serverTimezone=UTC' will cause MySQL to behave
## differently with regard to TIMESTAMP fields. See IdentityIQ Installation Guide for more details.
#dataSource.url=jdbc:mysql://localhost/identityiq?useServerPrepStmts=true&tinyInt1isBit=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
#dataSource.driverClassName=com.mysql.cj.jdbc.Driver
#sessionFactory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect
#activeMQMessageServiceManager.activemqJdbcAdapter=org.apache.activemq.store.jdbc.adapter.MySqlJDBCAdapter

##### MySQL/Aurora (SSL) #####
## URL Format: dataSource.url=jdbc:mysql://<host_name>:<port>/<dbname>?useServerPrepStmts=true&tinyInt1isBit=true&characterEncoding=UTF-8&serverTimezone=UTC
##  -- Contact your MySQL DBA to determine if any additional SSL-related connection parameters are needed.
####
#dataSource.url=jdbc:mysql://localhost/identityiq?useServerPrepStmts=true&tinyInt1isBit=true&characterEncoding=UTF-8&serverTimezone=UTC
#dataSource.driverClassName=com.mysql.cj.jdbc.Driver
#sessionFactory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect
#activeMQMessageServiceManager.activemqJdbcAdapter=org.apache.activemq.store.jdbc.adapter.MySqlJDBCAdapter

##### p6spy #####
## You also need to modify spy.properties driverlist property
#dataSource.url=jdbc:p6spy:mysql://localhost/identityiq?useServerPrepStmts=true&tinyInt1isBit=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
#dataSource.url=jdbc:p6spy:oracle:thin:@localhost:1521:identityiq
#dataSource.url=jdbc:p6spy:sqlserver://localhost:1433;databaseName=identityiq;
#dataSource.url=jdbc:p6spy:db2://localhost:50000/iiq
#dataSource.url=jdbc:p6spy:postgresql://localhost:5432/identityiq
#dataSource.driverClassName=com.p6spy.engine.spy.P6SpyDriver

##### Oracle #####
## URL Format: dataSource.url=jdbc:oracle:<drivertype>:<username/password>@<database>:<port>:<sid>
#dataSource.url=jdbc:oracle:thin:@localhost:1521:identityiq
#dataSource.driverClassName=oracle.jdbc.driver.OracleDriver
#sessionFactory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.Oracle12cDialect
#activeMQMessageServiceManager.activemqJdbcAdapter=org.apache.activemq.store.jdbc.adapter.OracleJDBCAdapter

##### MSSQL Server #####
## URL Format: dataSource.url=jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
dataSource.url=jdbc:sqlserver://localhost:1433;databaseName=identityiq;encrypt=false;
dataSource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
sessionFactory.hibernateProperties.hibernate.dialect=sailpoint.persistence.SQLServerUnicodeDialect
scheduler.quartzProperties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.MSSQLDelegate
scheduler.quartzProperties.org.quartz.jobStore.selectWithLockSQL=SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?
activeMQMessageServiceManager.activemqJdbcAdapter=org.apache.activemq.store.jdbc.adapter.TransactJDBCAdapter

##### IBM DB2 #####
## URL Format: dataSource.url=jdbc:db2://<host_name>:<port_number>/<database_name>
#dataSource.url=jdbc:db2://localhost:50000/iiq
#dataSource.driverClassName=com.ibm.db2.jcc.DB2Driver
#sessionFactory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.DB297Dialect
#activeMQMessageServiceManager.activemqJdbcAdapter=org.apache.activemq.store.jdbc.adapter.DB2JDBCAdapter

##### PostgreSQL #####
## URL Format: dataSource.url=jdbc:postgresql://<host_name>:<port_number>/<database_name>
#dataSource.url=jdbc:postgresql://localhost:5432/identityiq
#dataSource.driverClassName=org.postgresql.Driver
#sessionFactory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.PostgreSQL10Dialect
#scheduler.quartzProperties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
#activeMQMessageServiceManager.activemqJdbcAdapter=sailpoint.messagebus.impl.PostgresqlJDBCAdapter

##### Plugins ####

# Determines whether or not plugins are enabled, change
# to false if plugins should be disabled globally
plugins.enabled=true

# Determines if SQL scripts should be executed dynamically
# at the time a plugin is installed, upgraded or uninstalled
plugins.runSqlScripts=true

# Determines if XML object files should be imported dynamically
# at the time a plugin is installed, upgraded or uninstalled
plugins.importObjects=true

# Determines if the global SailPoint angular bundle will be used when
# there are snippets on a page
plugins.angularSnippetEnabled=false


##### Application Server Managed Plugins Data Source Properties #####

# Depending on the app server, the "java:comp/env/" may not be required.
jndiPluginsDataSource.jndiName=java:comp/env/jdbc/testPluginsDataSource

# Set to "jndiPluginsDataSource" to use an app server managed datasource. Otherwise
# leave the default value "pluginsDataSource".
configuredPluginsDataSource.targetBeanName=pluginsDataSource


##### Plugins Data Source Properties #####
pluginsDataSource.maxWaitMillis=10000
pluginsDataSource.maxTotal=50
pluginsDataSource.minIdle=5
#pluginsDataSource.minEvictableIdleTimeMillis=300000
#pluginsDataSource.maxOpenPreparedStatements=-1

pluginsDataSource.username=identityiqPlugin
pluginsDataSource.password=identityiqPlugin

##### MySQL (without SSL) #####
## URL Format: dataSource.url=jdbc:mysql://<host_name>:<port>/<dbname>?useServerPrepStmts=true&tinyInt1isBit=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
#pluginsDataSource.url=jdbc:mysql://localhost/identityiqPlugin?useServerPrepStmts=true&tinyInt1isBit=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
#pluginsDataSource.driverClassName=com.mysql.cj.jdbc.Driver

##### MySQL (SSL) #####
## URL Format: dataSource.url=jdbc:mysql://<host_name>:<port>/<dbname>?useServerPrepStmts=true&tinyInt1isBit=true&characterEncoding=UTF-8&serverTimezone=UTC
##  -- Contact your MySQL DBA to determine if any additional SSL-related connection parameters are needed.
####
#pluginsDataSource.url=jdbc:mysql://localhost/identityiqPlugin?useServerPrepStmts=true&tinyInt1isBit=true&characterEncoding=UTF-8&serverTimezone=UTC
#pluginsDataSource.driverClassName=com.mysql.cj.jdbc.Driver

##### p6spy #####
## You also need to modify spy.properties driverlist property
#pluginsDataSource.url=jdbc:p6spy:mysql://localhost/identityiqPlugin?useServerPrepStmts=true&tinyInt1isBit=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
#pluginsDataSource.url=jdbc:p6spy:oracle:thin:@localhost:1521:identityiqPlugin
#pluginsDataSource.url=jdbc:p6spy:sqlserver://localhost:1433;databaseName=identityiqPlugin
#pluginsDataSource.url=jdbc:p6spy:db2://localhost:50000/iiq_pl
#pluginsDataSource.url=jdbc:p6spy:postgresql://localhost:5432/identityiqPlugin
#pluginsDataSource.driverClassName=com.p6spy.engine.spy.P6SpyDriver

##### Oracle #####
## URL Format: dataSource.url=jdbc:oracle:<drivertype>:<username/password>@<database>:<port>:<sid>
#pluginsDataSource.url=jdbc:oracle:thin:@localhost:1521:identityiqPlugin
#pluginsDataSource.driverClassName=oracle.jdbc.driver.OracleDriver

##### MSSQL Server #####
## URL Format: dataSource.url=jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
pluginsDataSource.url=jdbc:sqlserver://localhost;databaseName=identityiqPlugin;encrypt=false;user=sa;password=SaDefaultPassword123
pluginsDataSource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver

##### IBM DB2 #####
## URL Format: dataSource.url=jdbc:db2://<host_name>:<port_number>/<database_name>
#pluginsDataSource.url=jdbc:db2://localhost:50000/iiq_pl
#pluginsDataSource.driverClassName=com.ibm.db2.jcc.DB2Driver

##### PostgreSQL #####
## URL Format: dataSource.url=jdbc:postgresql://<host_name>:<port_number>/<database_name>
#pluginsDataSource.url=jdbc:postgresql://localhost:5432/identityiqPlugin
#pluginsDataSource.driverClassName=org.postgresql.Driver


##### Access History ####

##### Data Source Properties for Access History #####
dataSourceAccessHistory.maxWaitMillis=10000
dataSourceAccessHistory.maxTotal=50
dataSourceAccessHistory.minIdle=5
#dataSourceAccessHistory.minEvictableIdleTimeMillis=300000
#dataSourceAccessHistory.maxOpenPreparedStatements=-1

dataSourceAccessHistory.username=identityiqah
dataSourceAccessHistory.password=identityiqah

##### MySQL/Aurora (without SSL)  #####
#dataSourceAccessHistory.url=jdbc:mysql://localhost/identityiqah?useServerPrepStmts=true&tinyInt1isBit=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
#dataSourceAccessHistory.driverClassName=com.mysql.cj.jdbc.Driver
#sessionFactoryAccessHistory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect

##### MySQL/Aurora (SSL) #####
## URL Format: dataSource.url=jdbc:mysql://<host_name>:<port>/<dbname>?useServerPrepStmts=true&tinyInt1isBit=true&characterEncoding=UTF-8&serverTimezone=UTC
##  -- Contact your MySQL DBA to determine if any additional SSL-related connection parameters are needed.
####
#dataSourceAccessHistory.url=jdbc:mysql://localhost/identityiqah?useServerPrepStmts=true&tinyInt1isBit=true&characterEncoding=UTF-8&serverTimezone=UTC
#dataSourceAccessHistory.driverClassName=com.mysql.cj.jdbc.Driver
#sessionFactoryAccessHistory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect

##### Oracle #####
## URL Format: dataSource.url=jdbc:oracle:<drivertype>:<username/password>@<database>:<port>:<sid>
#dataSourceAccessHistory.url=jdbc:oracle:thin:@localhost:1521:identityiqah
#dataSourceAccessHistory.driverClassName=oracle.jdbc.driver.OracleDriver
#sessionFactoryAccessHistory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.Oracle12cDialect

##### MSSQL Server #####
## URL Format: dataSource.url=jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
dataSourceAccessHistory.url=jdbc:sqlserver://localhost:1433;databaseName=identityiqah;encrypt=false;user=sa;password=SaDefaultPassword123
dataSourceAccessHistory.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
sessionFactoryAccessHistory.hibernateProperties.hibernate.dialect=sailpoint.persistence.SQLServerUnicodeDialect

##### IBM DB2 #####
## URL Format: dataSource.url=jdbc:db2://<host_name>:<port_number>/<database_name>
#dataSourceAccessHistory.url=jdbc:db2://localhost:50000/iiq_ah
#dataSourceAccessHistory.driverClassName=com.ibm.db2.jcc.DB2Driver
#sessionFactoryAccessHistory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.DB297Dialect

##### PostgreSQL #####
## URL Format: dataSource.url=jdbc:postgresql://<host_name>:<port_number>/<database_name>
#dataSourceAccessHistory.url=jdbc:postgresql://localhost:5432/identityiqah
#dataSourceAccessHistory.driverClassName=org.postgresql.Driver
#sessionFactoryAccessHistory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.PostgreSQL10Dialect


#
# Settings for the ruleRunner and its pool
#
ruleRunner.maxPoolReuse=1000
ruleRunnerPoolConfig.maxTotal=-1
ruleRunnerPoolConfig.maxTotalPerKey=8
ruleRunnerPoolConfig.maxIdlePerKey=8
ruleRunnerPoolConfig.minIdlePerKey=0

##### Hibernate Listener Service Thread Pool Settings ######
# if this is false then the listeners will not be registered.
# if AI is installed this should probably be set to true.
hibernateListenerServiceConfig.hibernateListenerEnabled=true
# number of threads that will always be alive
hibernateListenerServiceConfig.coreThreads=10
# max number of threads that can be running if there is a high load
hibernateListenerServiceConfig.maxThreads=20
# how long in milliseconds extra threads will sit idle before scaling back down to the core number
hibernateListenerServiceConfig.keepAliveTime=10000
# how many changes can be queued up for the threads to work on
hibernateListenerServiceConfig.queueSize=10000

##### BundleProfileRelation Listener Service Thread Pool Settings ######
# number of threads that will always be alive
bundleProfileRelationListenerServiceConfig.coreThreads=10
# max number of threads that can be running if there is a high load
bundleProfileRelationListenerServiceConfig.maxThreads=20
# how long in milliseconds extra threads will sit idle before scaling back down to the core number
bundleProfileRelationListenerServiceConfig.keepAliveTime=10000
# how many changes can be queued up for the threads to work on
bundleProfileRelationListenerServiceConfig.queueSize=10000

##### Debug Settings #####

# Uncomment to send all SQL queries to std out. This provides a lot of output
# and slows down execution, so use it wisely.
#sessionFactory.hibernateProperties.hibernate.show_sql=true

# Hibernate Transaction Isolation Levels
# 1 = Read Uncommitted, 2 = Read Committed, 4 = Repeatable Read, 8 = Serializable
#sessionFactory.hibernateProperties.hibernate.connection.isolation=1

#
# IIQ Keystore and Master Password properties
#

# file location of the IIQ keystore
# (override of the default $SPHOME/WEB-INF/classes/iiq.dat )
#
#keyStore.file  = /example/path/filename

# file location of the IIQ master password file
# (override of the default $SPHOME/WEB-INF/classes/iiq.cfg )
#
#keyStore.passwordFile = /example/path/filename

# Enable caching in the keystore
# (default is false or no caching )
#
#keyStore.cache = true

is there anything else I can try here?

Hi @tim089

change/update#1
pluginsDataSource.url=jdbc:sqlserver://localhost;databaseName=identityiqPlugin;encrypt=false;user=sa;password=SaDefaultPassword123

Remove below portion from url: and you have missed the port number 1433

user=sa;password=SaDefaultPassword123

change/update#2
dataSourceAccessHistory.url=jdbc:sqlserver://localhost:1433;databaseName=identityiqah;encrypt=false;user=sa;password=SaDefaultPassword123

Again, here remove below portion from url:

user=sa;password=SaDefaultPassword123

note/recommendation:

Take a fresh iiq.properties file then try to update the connection details that’s the best practice.

##### iiq.properties #####
#
# (c) Copyright 2008 SailPoint Technologies, Inc., All Rights Reserved.
#
# This file contains configuration settings for IdentityIQ.  For your unique
# environment, you will need to adjust the properties below.
#
# IdentityIQ can either create its own datasource or use a datasource that is
# managed by an application server.  Depending on the type of database being
# used, you will need to do the following:
#
# 1) Uncomment the correct sessionFactory.hibernateProperties.hibernate.dialect
#    and ensure that all other dialects are commented out.
# 2) If using MS SQL Server, also uncomment the quartz properties:
#    scheduler.quartzProperties.org.quartz.jobStore.driverDelegateClass and
#    scheduler.quartzProperties.org.quartz.jobStore.selectWithLockSQL.
#
#
# IDENTITYIQ MANAGED DATASOURCES ONLY
#
# In addition to the steps above, if IdentityIQ is creating its own datasource
# (ie - not using an application server managed datasource), you will need to
# perform the following steps:
#
# 1) Modify dataSource.username and dataSource.password to include the username
#    and password of the database user.  The password may be an encrypted using
#    the "encrypt" command when running "iiq console".
# 2) Configure the dataSource.url to connect to the database, and uncomment the
#    appropriate dataSource.driverClassName.
# 3) Optionally configure other connection pool settings.
#
#
# APPLICATION SERVER MANAGED DATASOURCES ONLY
#
# In addition to the steps above, if IdentityIQ is using an application server
# managed datasource, you will need to perform the following steps:
#
# 1) Configure the datasource in your application server.  This usually involves
#    putting the JDBC driver jar file in a common location and configuring
#    properties for your database connection and pool settings.  Consult the
#    documentation for the application server for more information.  Also,
#    ensure that the JDBC driver jar file is not in the WEB-INF\lib directory
#    of the IdentityIQ web application.
# 2) Change jndiDataSource.jndiName to point to the location in JNDI in which
#    the datasource is stored.
# 3) Change configuredDataSource.targetBeanName to "jndiDataSource".
#    7.1 update: at the moment targetBeanName doesn't work after the Spring upgrade
#    you must edit the <alias> definition in configBeans.xml
#

##### Application Server Managed Data Source Properties #####

# Depending on the app server, the "java:comp/env/" may not be required.
jndiDataSource.jndiName=java:comp/env/jdbc/testDataSource

# Set to "jndiDataSource" to use an app server managed datasource. Otherwise
# leave the default value "dataSource".
configuredDataSource.targetBeanName=dataSource

# These settings are for the activemq broker.  At this time this should remain
# set to type activemq. This is only needed for running an embedded message
# broker within IdentityIQ, and is ignored when the message broker is external
messageServiceFactory.type=activemq
activeMQMessageServiceManager.brokerUri=tcp://0.0.0.0:61616?transport.trace=true&transport.soTimeout=10000
activeMQMessageServiceManager.activemqLocker=org.apache.activemq.store.jdbc.LeaseDatabaseLocker
# ActiveMQ Broker System Usage limit sizing in Megabytes
activeMQMessageServiceManager.memoryLimit=1024
activeMQMessageServiceManager.storeLimit=100000
activeMQMessageServiceManager.tempLimit=50000

##### Data Source Properties #####
dataSource.maxWaitMillis=10000
dataSource.maxTotal=50
dataSource.minIdle=5
#dataSource.minEvictableIdleTimeMillis=300000
#dataSource.maxOpenPreparedStatements=-1

dataSource.username=identityiq
dataSource.password=identityiq

##### MySQL/Aurora (without SSL)  #####
## URL Format: dataSource.url=jdbc:mysql://<host_name>:<port>/<dbname>?useServerPrepStmts=true&tinyInt1isBit=true&useSSL=false&characterEncoding=UTF-8&characterEncoding=UTF-8&serverTimezone=UTC
## if the client timezone is not UTC, adding the JDBC option 'serverTimezone=UTC' will cause MySQL to behave
## differently with regard to TIMESTAMP fields. See IdentityIQ Installation Guide for more details.
#dataSource.url=jdbc:mysql://localhost/identityiq?useServerPrepStmts=true&tinyInt1isBit=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
#dataSource.driverClassName=com.mysql.cj.jdbc.Driver
#sessionFactory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect
#activeMQMessageServiceManager.activemqJdbcAdapter=org.apache.activemq.store.jdbc.adapter.MySqlJDBCAdapter

##### MySQL/Aurora (SSL) #####
## URL Format: dataSource.url=jdbc:mysql://<host_name>:<port>/<dbname>?useServerPrepStmts=true&tinyInt1isBit=true&characterEncoding=UTF-8&serverTimezone=UTC
##  -- Contact your MySQL DBA to determine if any additional SSL-related connection parameters are needed.
####
#dataSource.url=jdbc:mysql://localhost/identityiq?useServerPrepStmts=true&tinyInt1isBit=true&characterEncoding=UTF-8&serverTimezone=UTC
#dataSource.driverClassName=com.mysql.cj.jdbc.Driver
#sessionFactory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect
#activeMQMessageServiceManager.activemqJdbcAdapter=org.apache.activemq.store.jdbc.adapter.MySqlJDBCAdapter

##### p6spy #####
## You also need to modify spy.properties driverlist property
#dataSource.url=jdbc:p6spy:mysql://localhost/identityiq?useServerPrepStmts=true&tinyInt1isBit=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
#dataSource.url=jdbc:p6spy:oracle:thin:@localhost:1521:identityiq
#dataSource.url=jdbc:p6spy:sqlserver://localhost:1433;databaseName=identityiq;
#dataSource.url=jdbc:p6spy:db2://localhost:50000/iiq
#dataSource.url=jdbc:p6spy:postgresql://localhost:5432/identityiq
#dataSource.driverClassName=com.p6spy.engine.spy.P6SpyDriver

##### Oracle #####
## URL Format: dataSource.url=jdbc:oracle:<drivertype>:<username/password>@<database>:<port>:<sid>
#dataSource.url=jdbc:oracle:thin:@localhost:1521:identityiq
#dataSource.driverClassName=oracle.jdbc.driver.OracleDriver
#sessionFactory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.Oracle12cDialect
#activeMQMessageServiceManager.activemqJdbcAdapter=org.apache.activemq.store.jdbc.adapter.OracleJDBCAdapter

##### MSSQL Server #####
## URL Format: dataSource.url=jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
dataSource.url=jdbc:sqlserver://localhost:1433;databaseName=identityiq;encrypt=false;
dataSource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
sessionFactory.hibernateProperties.hibernate.dialect=sailpoint.persistence.SQLServerUnicodeDialect
scheduler.quartzProperties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.MSSQLDelegate
scheduler.quartzProperties.org.quartz.jobStore.selectWithLockSQL=SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?
activeMQMessageServiceManager.activemqJdbcAdapter=org.apache.activemq.store.jdbc.adapter.TransactJDBCAdapter

##### IBM DB2 #####
## URL Format: dataSource.url=jdbc:db2://<host_name>:<port_number>/<database_name>
#dataSource.url=jdbc:db2://localhost:50000/iiq
#dataSource.driverClassName=com.ibm.db2.jcc.DB2Driver
#sessionFactory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.DB297Dialect
#activeMQMessageServiceManager.activemqJdbcAdapter=org.apache.activemq.store.jdbc.adapter.DB2JDBCAdapter

##### PostgreSQL #####
## URL Format: dataSource.url=jdbc:postgresql://<host_name>:<port_number>/<database_name>
#dataSource.url=jdbc:postgresql://localhost:5432/identityiq
#dataSource.driverClassName=org.postgresql.Driver
#sessionFactory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.PostgreSQL10Dialect
#scheduler.quartzProperties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
#activeMQMessageServiceManager.activemqJdbcAdapter=sailpoint.messagebus.impl.PostgresqlJDBCAdapter

##### Plugins ####

# Determines whether or not plugins are enabled, change
# to false if plugins should be disabled globally
plugins.enabled=true

# Determines if SQL scripts should be executed dynamically
# at the time a plugin is installed, upgraded or uninstalled
plugins.runSqlScripts=true

# Determines if XML object files should be imported dynamically
# at the time a plugin is installed, upgraded or uninstalled
plugins.importObjects=true

# Determines if the global SailPoint angular bundle will be used when
# there are snippets on a page
plugins.angularSnippetEnabled=false


##### Application Server Managed Plugins Data Source Properties #####

# Depending on the app server, the "java:comp/env/" may not be required.
jndiPluginsDataSource.jndiName=java:comp/env/jdbc/testPluginsDataSource

# Set to "jndiPluginsDataSource" to use an app server managed datasource. Otherwise
# leave the default value "pluginsDataSource".
configuredPluginsDataSource.targetBeanName=pluginsDataSource


##### Plugins Data Source Properties #####
pluginsDataSource.maxWaitMillis=10000
pluginsDataSource.maxTotal=50
pluginsDataSource.minIdle=5
#pluginsDataSource.minEvictableIdleTimeMillis=300000
#pluginsDataSource.maxOpenPreparedStatements=-1

pluginsDataSource.username=identityiqPlugin
pluginsDataSource.password=identityiqPlugin

##### MySQL (without SSL) #####
## URL Format: dataSource.url=jdbc:mysql://<host_name>:<port>/<dbname>?useServerPrepStmts=true&tinyInt1isBit=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
#pluginsDataSource.url=jdbc:mysql://localhost/identityiqPlugin?useServerPrepStmts=true&tinyInt1isBit=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
#pluginsDataSource.driverClassName=com.mysql.cj.jdbc.Driver

##### MySQL (SSL) #####
## URL Format: dataSource.url=jdbc:mysql://<host_name>:<port>/<dbname>?useServerPrepStmts=true&tinyInt1isBit=true&characterEncoding=UTF-8&serverTimezone=UTC
##  -- Contact your MySQL DBA to determine if any additional SSL-related connection parameters are needed.
####
#pluginsDataSource.url=jdbc:mysql://localhost/identityiqPlugin?useServerPrepStmts=true&tinyInt1isBit=true&characterEncoding=UTF-8&serverTimezone=UTC
#pluginsDataSource.driverClassName=com.mysql.cj.jdbc.Driver

##### p6spy #####
## You also need to modify spy.properties driverlist property
#pluginsDataSource.url=jdbc:p6spy:mysql://localhost/identityiqPlugin?useServerPrepStmts=true&tinyInt1isBit=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
#pluginsDataSource.url=jdbc:p6spy:oracle:thin:@localhost:1521:identityiqPlugin
#pluginsDataSource.url=jdbc:p6spy:sqlserver://localhost:1433;databaseName=identityiqPlugin
#pluginsDataSource.url=jdbc:p6spy:db2://localhost:50000/iiq_pl
#pluginsDataSource.url=jdbc:p6spy:postgresql://localhost:5432/identityiqPlugin
#pluginsDataSource.driverClassName=com.p6spy.engine.spy.P6SpyDriver

##### Oracle #####
## URL Format: dataSource.url=jdbc:oracle:<drivertype>:<username/password>@<database>:<port>:<sid>
#pluginsDataSource.url=jdbc:oracle:thin:@localhost:1521:identityiqPlugin
#pluginsDataSource.driverClassName=oracle.jdbc.driver.OracleDriver

##### MSSQL Server #####
## URL Format: dataSource.url=jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
pluginsDataSource.url=jdbc:sqlserver://localhost:1433;databaseName=identityiqPlugin;encrypt=false;
pluginsDataSource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver

##### IBM DB2 #####
## URL Format: dataSource.url=jdbc:db2://<host_name>:<port_number>/<database_name>
#pluginsDataSource.url=jdbc:db2://localhost:50000/iiq_pl
#pluginsDataSource.driverClassName=com.ibm.db2.jcc.DB2Driver

##### PostgreSQL #####
## URL Format: dataSource.url=jdbc:postgresql://<host_name>:<port_number>/<database_name>
#pluginsDataSource.url=jdbc:postgresql://localhost:5432/identityiqPlugin
#pluginsDataSource.driverClassName=org.postgresql.Driver


##### Access History ####

##### Data Source Properties for Access History #####
dataSourceAccessHistory.maxWaitMillis=10000
dataSourceAccessHistory.maxTotal=50
dataSourceAccessHistory.minIdle=5
#dataSourceAccessHistory.minEvictableIdleTimeMillis=300000
#dataSourceAccessHistory.maxOpenPreparedStatements=-1

dataSourceAccessHistory.username=identityiqah
dataSourceAccessHistory.password=identityiqah

##### MySQL/Aurora (without SSL)  #####
#dataSourceAccessHistory.url=jdbc:mysql://localhost/identityiqah?useServerPrepStmts=true&tinyInt1isBit=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
#dataSourceAccessHistory.driverClassName=com.mysql.cj.jdbc.Driver
#sessionFactoryAccessHistory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect

##### MySQL/Aurora (SSL) #####
## URL Format: dataSource.url=jdbc:mysql://<host_name>:<port>/<dbname>?useServerPrepStmts=true&tinyInt1isBit=true&characterEncoding=UTF-8&serverTimezone=UTC
##  -- Contact your MySQL DBA to determine if any additional SSL-related connection parameters are needed.
####
#dataSourceAccessHistory.url=jdbc:mysql://localhost/identityiqah?useServerPrepStmts=true&tinyInt1isBit=true&characterEncoding=UTF-8&serverTimezone=UTC
#dataSourceAccessHistory.driverClassName=com.mysql.cj.jdbc.Driver
#sessionFactoryAccessHistory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect

##### Oracle #####
## URL Format: dataSource.url=jdbc:oracle:<drivertype>:<username/password>@<database>:<port>:<sid>
#dataSourceAccessHistory.url=jdbc:oracle:thin:@localhost:1521:identityiqah
#dataSourceAccessHistory.driverClassName=oracle.jdbc.driver.OracleDriver
#sessionFactoryAccessHistory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.Oracle12cDialect

##### MSSQL Server #####
## URL Format: dataSource.url=jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
dataSourceAccessHistory.url=jdbc:sqlserver://localhost:1433;databaseName=identityiqah;encrypt=false;
dataSourceAccessHistory.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
sessionFactoryAccessHistory.hibernateProperties.hibernate.dialect=sailpoint.persistence.SQLServerUnicodeDialect

##### IBM DB2 #####
## URL Format: dataSource.url=jdbc:db2://<host_name>:<port_number>/<database_name>
#dataSourceAccessHistory.url=jdbc:db2://localhost:50000/iiq_ah
#dataSourceAccessHistory.driverClassName=com.ibm.db2.jcc.DB2Driver
#sessionFactoryAccessHistory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.DB297Dialect

##### PostgreSQL #####
## URL Format: dataSource.url=jdbc:postgresql://<host_name>:<port_number>/<database_name>
#dataSourceAccessHistory.url=jdbc:postgresql://localhost:5432/identityiqah
#dataSourceAccessHistory.driverClassName=org.postgresql.Driver
#sessionFactoryAccessHistory.hibernateProperties.hibernate.dialect=org.hibernate.dialect.PostgreSQL10Dialect


#
# Settings for the ruleRunner and its pool
#
ruleRunner.maxPoolReuse=1000
ruleRunnerPoolConfig.maxTotal=-1
ruleRunnerPoolConfig.maxTotalPerKey=8
ruleRunnerPoolConfig.maxIdlePerKey=8
ruleRunnerPoolConfig.minIdlePerKey=0

##### Hibernate Listener Service Thread Pool Settings ######
# if this is false then the listeners will not be registered.
# if AI is installed this should probably be set to true.
hibernateListenerServiceConfig.hibernateListenerEnabled=true
# number of threads that will always be alive
hibernateListenerServiceConfig.coreThreads=10
# max number of threads that can be running if there is a high load
hibernateListenerServiceConfig.maxThreads=20
# how long in milliseconds extra threads will sit idle before scaling back down to the core number
hibernateListenerServiceConfig.keepAliveTime=10000
# how many changes can be queued up for the threads to work on
hibernateListenerServiceConfig.queueSize=10000

##### BundleProfileRelation Listener Service Thread Pool Settings ######
# number of threads that will always be alive
bundleProfileRelationListenerServiceConfig.coreThreads=10
# max number of threads that can be running if there is a high load
bundleProfileRelationListenerServiceConfig.maxThreads=20
# how long in milliseconds extra threads will sit idle before scaling back down to the core number
bundleProfileRelationListenerServiceConfig.keepAliveTime=10000
# how many changes can be queued up for the threads to work on
bundleProfileRelationListenerServiceConfig.queueSize=10000

##### Debug Settings #####

# Uncomment to send all SQL queries to std out. This provides a lot of output
# and slows down execution, so use it wisely.
#sessionFactory.hibernateProperties.hibernate.show_sql=true

# Hibernate Transaction Isolation Levels
# 1 = Read Uncommitted, 2 = Read Committed, 4 = Repeatable Read, 8 = Serializable
#sessionFactory.hibernateProperties.hibernate.connection.isolation=1

#
# IIQ Keystore and Master Password properties
#

# file location of the IIQ keystore
# (override of the default $SPHOME/WEB-INF/classes/iiq.dat )
#
#keyStore.file  = /example/path/filename

# file location of the IIQ master password file
# (override of the default $SPHOME/WEB-INF/classes/iiq.cfg )
#
#keyStore.passwordFile = /example/path/filename

# Enable caching in the keystore
# (default is false or no caching )
#
#keyStore.cache = true

If above recommendation did not work, drop all three databases, then run the create DB script which will take care of creation of all three databases.

Most common root causes of this error-

:one: Database was never initialized (or only partially)

This happens when - DB was created manually OR Or you pointed IIQ to a new / empty database OR iiq schema was never run

Fix - Run schema creation: “iiq schema”. If this is a fresh install, this is mandatory.


:two: Wrong database schema / user default schema (VERY common on SQL Server)

If:

  • Table exists under a schema like dbo.spt_database_version

  • But your DB user’s default schema is not dbo

Then IIQ looks for:

<default_schema>.spt_database_version

…and fails.

Check
Run this in SQL Server:

SELECT * FROM sys.tables WHERE name = 'spt_database_version';

If it shows dbo.spt_database_version, then check user default schema:

SELECT default_schema_name

FROM sys.database_principals

WHERE name = '<iiq_db_user>';

Fix (recommended)
Set default schema to dbo:

ALTER USER <iiq_db_user> WITH DEFAULT_SCHEMA = dbo;

OR explicitly qualify schema in iiq.properties (less ideal).


Pointing to the wrong database

This happens surprisingly often when:

  • iiq.properties was copied from another env

  • JDBC URL points to a different DB than expected

:white_check_mark: Verify
In ‘WEB-INF/classes/iiq.properties:’

database.url=jdbc:sqlserver://<host>:1433;databaseName=<DB_NAME>

database.username=...

Confirm <DB_NAME> is the one where IIQ tables actually exist.

Dear @tim089

Thanks for the update and good to hear that issue is resolved.

hi Pattabhi, i was able to successfully run iiq console using the latest iiq.properties file you provided and adding “encrypt=false” to each db url. thanks for your help!