Change Requests fail with 'Error getting UniqueID The UniqueIDUpdateService returned a null value' error in RSA Identity Governance & Lifecycle
2 years ago
Originally Published: 2021-03-15
Article Number
000044376
Applies To
RSA Product Set: RSA Identity Governance & Lifecycle
RSA Version/Condition: All Versions
 
Issue
All Change Requests (CR) end up in ERROR state. The following error shows on the UI for those CRs in error state:
 
Error getting UniqueID The UniqueIDUpdateService returned a null value.

User-added image

The following error is logged in aveksaServer.log:
06/12/2020 09:31:38.691 ERROR (WF-Creation-4) [com.aveksa.server.workflow.RetryEnabledOperationsJobUtils] Error while performing operation 'evaluate' for job with Id '1254174:WPDS' even after re-trying 20 times.
java.sql.SQLException: An SQL Exception has occurred. Please see the server logs for details. An Error occurred attempting to get a Unique ID. This potentially indicates the server was unable to get a database connection
	at com.workpoint.server.recordset.RecordSet.getUniqueID(Unknown Source)
	at com.workpoint.server.recordset.WP_WORK_ITEM_HIST.insert(Unknown Source)
	at com.workpoint.server.recordset.WP_WORK_ITEM_HIST.insert(Unknown Source)
	at com.workpoint.server.recordset.WP_WORK_ITEM_HIST.save(Unknown Source)
	at com.workpoint.server.job.JobSave.saveChildren(Unknown Source)
	at com.workpoint.server.job.JobSave.saveChildren(Unknown Source)
	at com.workpoint.server.job.JobSave.save(Unknown Source)
	at com.workpoint.server.job.Job.save(Unknown Source)
	at com.workpoint.services.impl.JobUpdateServiceImpl.evaluateData(Unknown Source)
	at sun.reflect.GeneratedMethodAccessor299.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
	at java.lang.reflect.Method.invoke(Method.java:620)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
	at

The following error is logged in WorkPoint.log:
2020-06-12 09:31:15,594 [uniqueIDExecutor-1] ERROR com.workpoint.services.UniqueIDUpdateService  - Numeric Overflow
java.sql.SQLException: Numeric Overflow
	at com.workpoint.services.impl.UniqueIDUpdateServiceImpl.getNewID(Unknown Source)
	at sun.reflect.GeneratedMethodAccessor249.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
	at java.lang.reflect.Method.invoke(Method.java:620)
	at

Please see RSA Knowledge Base Article Artifacts to gather in RSA Identity Governance & Lifecycle  to find the location of the log files for your specific deployment.
 
Cause
This is a known issue reported in engineering ticket ACM-106161.

This issue could occur when the numeric portion (ID) of the Workpoint primary key (ID:DB) in the table is incremented more than 2147483647, (2^31)-1, a maximum value for integers in JAVA.  The second portion (DB) of the Workpoint primary key (ID:DB) in RSA Identity Governance & Lifecycle is set to a constant "WPDS".

If the SQL query provided below shows a result higher than 2147483647 (exceeding the maximum JAVA integer value), your RSA Identity Governance & Lifecycle deployment is affected by this issue:
 
select NEXT_ID from WP_ID_GEN where NAME = 'WP_WORK_ITEM_HIST';

Workpoint primary key (ID) numeric overflow can happen on any Workpoint table. The integer max value is fairly large; however, naturally over time with a growing number of Workpoint Jobs being processed, the data in all Workpoint tables will grow. The prevalent tables that grow the fastest are the Workpoint History tables when Data Generation Reduction is not configured to prevent the creation of history records.  In RSA Identity Governance & Lifecycle, the size of Workpoint tables like WP_USER_DATA and WP_WORK_ITEM_HIST are unaffected due to Data Purging; however, the "ID" value could exceed the JAVA integer limit in some situations. One such scenario includes a bad workflow design that may loop infinitely in the background resulting in the ID value to exceed the JAVA limit.
 
Resolution
This issue has been fixed in RSA Identity Governance & Lifecycle. The solution requires two steps:
  1. Apply the following RSA Identity Governance & Lifecycle patch levels (or later)
    • RSA Identity Governance & Lifecycle 7.1.1 P10
    • RSA Identity Governance & Lifecycle 7.2.0 P04
    • RSA Identity Governance & Lifecycle 7.2.1 P01
    • RSA Identity Governance & Lifecycle 7.5.0
  2. Update the second portion (DB) of the Workpoint primary key (ID: DB) in RSA Identity Governance & Lifecycle from the default "WPDS" to a new unique value. Once you have applied one of the above RSA Identity Governance & Lifecycle patches, please contact RSA Customer Support and quote this RSA Knowledge Base Article 000044376 to get assistance with applying the second part of the fix (changing the DB value).