Upgrade 8.3P3 to P5 issue

Hello,

After i upgrade patch from IIQP3 to P5 , getting below error while raising access request .
"Found loading entities during flush".

Its not giving any loggers in identity.log or server.log. and believe its not because of some rule/script not using decache/flush iterator because if this is the case it should have captured in logs.

Can anyone help me?

Hi @KrishnaReddy

I’ve observed similar errors with the 8.4p2 patch deployment. - {note: I don’t have any data apart from spadmin, that strongly supports your statement believe it’s not because of some rule/script not using decache/flush iterator}

Please note that all these issues are happening in a special case where we are using PostgreSQL 15 as the database.


Reference tickets for your information:


8.4p2 - patch deployment “iiq patch 8.4p2” - errors - IdentityIQ (IIQ) / IIQ Discussion and Questions - SailPoint Developer Community

Using Aurora PostGreSQL for IIQ 8.4 - IdentityIQ (IIQ) / IIQ Discussion and Questions - SailPoint Developer Community

Hi @KrishnaReddy

I’ve managed to fix the patch deployment.

it might help:

NEW CHANGES:

  1. LCM Module Enabled.

import init-lcm.xml --note: my setup is fresh installation, so don’t import just make sure the module is enabled.

  1. Disabled Messaging services from UI
    (Gear Icon – Global Settings – Messaging Configuration)
  2. Disabled Access History from UI
    (Gear Icon – Global Settings – Access History Configuration)
  3. Disabled Data Extract from UI
    {Gear Icon – Global Settings – Data Extract Configuration}

Apart from above changes I have couple changes in iiq.properties file.

The iiq.properties file is your reference.

I have deleted the ActiveMQ section.

I have also commented out the following sections:

# Settings for the ruleRunner and its pool
##### Hibernate Listener Service Thread Pool Settings ######
##### 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

dataSource.username=identityiq
dataSource.password=1:iCAlakm5CVUe7+Q6hVJIBA==

##### 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;
#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:1433;databaseName=identityiqPlugin
#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=1:ACP:1zLz2jWFgxin6IMcEIX7YG/Osi8odwceLRDqEPZ3VyA=

##### 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;
#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=false
# 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

I would like to review your patch deployment logs & schema upgrade output to ascertain whether the deployment was successful and free of any severe errors.

By any chance did you update schema_version and system_version manually?
and what are the current values?

select * from identityiq.spt_database_version;

@KrishnaReddy during request at which step you are getting this error ? also did you customized the LCM workflows ?

HI Pattabhi,

Thanks for you response.
We are using mySQL.
configrations under global settings are not relevant for 8.3 it seems. these may be present in 8.4.
IIQ properties file too relevant for 8.4. i compared with mine, i see no big difference.
I’ve not updated schema version details manually. your query thrown error but below i got output.

Hi Ranjan,
As soon as patch is updated i got this error post Access request is created. but now getting error during submission of Access Request.

in trace logs i see throwing error while building project in provisioning retry step.

Hi @KrishnaReddy

Thanks for the response.

My sincere apologies, my recommendations were not relevant to 8.3. You are correct that 8.4 has additional features like Access History.

I confirm that the schema version from patch 8.3p5, which is 8.3.22, matches the provided value. This means your upgrade script has been executed successfully.

Please mention tomcat version & get patch deployment logs.

thanks, do you have patch upgrade output logs ? is it happening in all env ?

also check in your code if you haven’t fixed these issues in 8.3.

IdentityIQ 8.0 and commitTransaction while using an iterator - Compass

No problem. We are using jboss 7.4 and do not have deployment logs.

facing issue in one env other has different issue. it did not occur in 8.3.
I believe issue is not because of some rule/script because after enabling trace logs error occurs upon access request submission and no mention of any rule name.

try to downgrade and upgrade again.

In other environment i haven’t faced this issue. may be i did not do upgrade correctly.

I’m seeing this error occasionally in 8.4p2. I don’t know what causes it.