Tuesday, January 7, 2020

Transaction control table is full. Its number of entries reaches the limit

Essbase Database is Not Accessible, Error "Transaction control table is full. Its number of entries reaches the limit [64512]" (Doc ID 2378147.1)

Steps to resolve: If there is no backup

Can implement the below action plan

1 Restore from Backup
2 Run the below Commands and

NOTE: This workaround could take a long time to complete, there is no way to determine how long. You may want to schedule this to run overnight while no users are accessing the system.

1. Using ESSCMD, run getdbstats; confirm that database has successfully loaded.

2. Replicate the tct full message.

3. Add the following undocumented settings to the essbase.cfg. There is no need to restart the Essbase service):
EVENT 65
EVENT 69
__TCTCleanupDmEndedTxnThreshold__ 1

4. Reload the database using MaxL:
alter application <appname> unload database <dbname>;
alter application <appname> load database <dbname>;

5. If starting the database does not trigger a TMG cleanup, bounce the application again.

6. If after restarting the application it still does not trigger cleanup try below using MaxL:
alter database <appname>.<dbname> begin archive to <filename>;
alter database <appname>.<dbname> end archive;

7. In the application.log you should see messages that being with:

tracing [adTmgCleanup] and/or tracing [adTmgCleanupTransAsync]

and one of the message would be:

tracing: Transaction Cleanup cycle [1] begins.

If on Unix, you can run the following command at the os level and check for the cleanup messages:
tail -f application.log

8. After the process is done, remove the following 2 entries:
EVENT 65
EVENT 69

The following entry's value should be set to 50 instead of 1:

__TCTCleanupDmEndedTxnThreshold__ 50

This setting, __TCTCleanupDmEndedTxnThreshold__, provides a threshold count of ended transaction. Upon exceeding this limit server will trigger cleanup of the transaction control table. Default is 512.
Note: After upgrade to 11.1.2.4.022+ the setting __TCTCleanupDmEndedTxnThreshold__ 50 does not need to remain in the essbase.cfg file.


No comments:

Post a Comment