Refresh of Autorefresh Cache Group Shows Excessive Wait on Resources
eDuring a refresh of a cache group with autorefresh, there can be excessive buffer busy waits, row lock waits, and deadlocks on updates in the Oracle database, which can negatively affect the throughput performance. When there are multiple deadlocks on updates in the Oracle database involving the autorefresh log tables, the following may appear in the support log:
Oracle native error code = 60, msg = ORA-00060: deadlock detected while waiting for resource An error occurred while preparing or executing the following Oracle sql statement: <some statement involving <cache admin user>.TT_##_#######_L where the # is some number>
You can improve your performance by modifying the INITRANS
and FREELISTS
settings, which can affect the concurrent inserts into the autorefresh log table and internal maintenance of these tables. The application updating the base table that is being autorefreshed encounters a throughput performance hit when these settings are not appropriately configured.
You can automatically or manually manage these settings as follows:
-
Use ASSM tablespace, which automatically manages
FREELISTS
. -
Manually adjust
FREELISTS
andINITRANS
for the autorefresh log table on the Oracle database.
The following details how to manually modify INITRANS
and FREELISTS
for the autorefresh log table on the Oracle database: