ORA-04021: Timeout occurred while waiting to lock object ORA-06512: a).

Document ID : KB000033274
Last Modified Date : 14/02/2018
Show Technical Document Details
Problem :

While upgrading eHealth 6.3.2.x to 6.3.2.10 as NH_USER the upgrade fails with the below error in install log file :...
     Error: Database error: updateQueues (ORA-04021: timeout occurred while waiting to lock object ORA-06512: a).
     Error: The program updateQueues failed.
     updating live ex tables ...
     updating cndc tables ...
     Command /opt/CA/ehealth/bin/sys/nhiDbTasks -doConvert -userLog /opt/CA/ehealth/log/conversion.<...>log failed..
     Error : Off line convert failed in convertStandalone.
 
 
 
Environment:
 
CA-ehealth 6.2.2 and above
Windows / Linux / UNIX
 
 
 
CAUSE
 
The ORA-04021 Error Message means that the objects cannot be changed while they are in use, and therefore a lock must be taken out on an object in order to modify it.
 
 
 
Resolution :
 
To resolve the ORA 04021 Error,  You may wait until the other process has finished using the object or perhaps you can kill the session or recycle the Oracle Server.
 
  • nhStopDb immediate
  • Reboot the machine
  • Do undo convert "nhConvertDb -undoconvert"
  • Before restarting the ehealth upgrade, execute the command "nhConvertDb -undoconvert"
  • Start upgrade again

 

Additional Information:

We have also seen this issue on a functioning eHealth poller, with following error:

Pgm nhiPoller[Net]: Unable to add 'network element' data to the database, dropping this poll. 
Pgm nhiPoller[Net]: Sql Error occurred during operation: 'ORA-04021: timeout occurred while waiting to lock object '; possible problem data is: element id: 1317549, sampleTime: 1461128399 for table nh_stats0_1461130199.
 
For this problem, same solution applies, except for upgrade step:
  • nhServer stop 
  • nhStopDb immediate
  • Reboot the system if possible or
  • nhStartDb 
  • nhServer start