Resolving user mismatch between the user information cache and the database
When the user is mismatched between the user information cache and the database, the user
information cache holds references to users that are not in the database. If the user information in
the cache is used for further database operations, a database transaction that follows the mismatch
might fail with a constraint violation exception. To prevent this mismatch, you can add the
user-info-cache-block-period configuration setting to the
100Custom.xml files. Using this setting, you can specify a period of time
during which the cache entry is considered invalid and is not used (if it has not been confirmed by
at least one successful read from the database).
About this task
The problem of user information mismatch between the cache and the database only occurs in a few environments. As a result, the specified period of time is set to the default value of 0 milliseconds, which means that cache entries are always considered valid. You should only change this value if you experience exceptions, such as a SqlIntegrityConstraintViolationException exception in the SystemOut.log file that begins with the following lines:
com.lombardisoftware.client.delegate.BusinessDelegateException:
PreparedStatementCallback;
SQL [insert into LSW_USR_GRP_MEM_XREF (USER_ID, GROUP_ID) values (?, ?)];Procedure
To add the configuration setting to the 100Custom.xml file, complete the following steps:
-
- Stop the servers for Workflow Server or Workflow Center.
- Open each 100Custom.xml file. For information about the individual 100Custom.xml files that need to be updated and their locations, see the topic Location of 100Custom configuration files.
- In each 100Custom.xml file, add the
user-info-cache-block-period setting. For example, to prevent administrators
from accessing task instance data, add the following elements under the
<properties>element:
The period of time is specified in millisecond (ms). If you do not want to use the default value of 0, the recommended time period is 120000 (2 minutes). If the setting is not set, the period of time defaults to 0. If a value of 0 is specified, the cache entries are always considered valid.<server> <user-info-cache-block-period merge="replace">120000 </user-info-cache-block-period> </server> - In each 100Custom.xml file, save your changes.
- In a browser, open each 100Custom.xml file to ensure that it contains no special characters.
- Complete one of the following steps:
- In a clustered environment, ensure that the changes are propagated to the nodes by forcing a synchronization and restarting the deployment environment.
- In a stand-alone server environment, restart the server.
This topic is shared by BAW, CP4BA. Last updated on 2025-03-13 12:15