IBM Support

Decision Center on Db2: Unexpected error Database Lock Exception (GBRDR0038E) in Business Console

Troubleshooting


Problem

You are using a Db2 database for IBM Operational Manager Decision Center. This Db2 database was migrated from an older version of Db2.

Some operation with a high load on the database might trigger an IlrDatabaseLockTimeoutException, though you cannot find the corresponding timeout in the database.

Why do you get this error and how to avoid it?

Symptom

E com.ibm.rules.decisioncenter.web.core.ApplicationExceptionResolver log 
java.util.concurrent.ExecutionException:
 ilog.rules.teamserver.model.IlrDatabaseLockTimeoutException: GBRDR0038E: Database Lock Exception
 java.lang.RuntimeException: java.util.concurrent.ExecutionException:
 ilog.rules.teamserver.model.IlrDatabaseLockTimeoutException: GBRDR0038E: Database Lock Exception 
at ilog.rules.teamserver.ejb.service.dao.IlrElementDAOJDBC.findElements(IlrElementDAOJDBC.java:8943) 
at ilog.rules.teamserver.ejb.service.IlrSessionFacadeImpl.findObjects(IlrSessionFacadeImpl.java:4792) 
at ilog.rules.teamserver.ejb.service.IlrSessionFacadeImpl.findElements(IlrSessionFacadeImpl.java:5032) 
at ilog.rules.teamserver.ejb.service.IlrSessionFacadeImpl.findElements(IlrSessionFacadeImpl.java:5125) 
at sun.reflect.GeneratedMethodAccessor49.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55) 
at java.lang.reflect.Method.invoke(Method.java:508) 
at ilog.rules.teamserver.transaction.IlrTransactionalInvocationHandler.invoke(IlrTransactionalInvocationHandler.java:107) 

Cause

Starting from Db2 9.7 the default of the CUR_COMMIT parameter is ON.
However, if your Db2 database for Decision Center was upgraded from an earlier Db2 release, this parameter might be set to DISABLED.
For the proper functioning of IBM Operational Decision Manager and to prevent deadlocks during peak load, this parameter must be set to ON.

When the  CUR_COMMIT parameter is set to DISABLED, this error GBRDR0038E (IlrDatabaseLockTimeoutException) might occur.
See: https://www.ibm.com/docs/en/db2/11.5?topic=parameters-cur-commit-currently-committed

Diagnosing The Problem

During an operation with a high load for the database, such as creating a new branch, an error occurs with a Database Lock timeout exception.
In the server log, you can see a stack trace with the following message:
IlrDatabaseLockTimeoutException: GBRDR0038E: Database Lock Exception java.lang.RuntimeException: 

Resolving The Problem

Connect to the Decision Center database and check the configuration.
db2 connect to dcdb user xxxx_id using xxxx_password
db2 get database configuration 
Look for the Currently Committed parameter CUR_COMMIT.
It must be set to ON.
 
Currently Committed (CUR_COMMIT) = ON
If not, for instance with a Db2 database migrated from version earlier than V9.7, it might still be set to DISABLED instead.
In that case, set it to ON, then stop and restart the database.
 
db2 update db cfg for DCDB using CUR_COMMIT ON
db2stop force
db2start

Document Location

Worldwide

[{"Type":"MASTER","Line of Business":{"code":"LOB45","label":"Automation"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSQP76","label":"IBM Operational Decision Manager"},"ARM Category":[{"code":"a8m50000000L1TuAAK","label":"Decision Center-\u003EBusiness Console-\u003EPerformance"},{"code":"a8m0z0000001hxYAAQ","label":"Decision Center-\u003EBusiness Console-\u003EPerformance-\u003EBranch"},{"code":"a8m0z0000001huZAAQ","label":"Installation and configuration-\u003EDatabase migration"}],"ARM Case Number":"TS013688957","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8.10.5;8.11.0;8.11.1;8.12.0"}]

Document Information

Modified date:
04 October 2023

UID

ibm17043458