Salesforce

How to determine where in an ABL procedure an 8812 message lock time occurs

« Go Back

Information

 
TitleHow to determine where in an ABL procedure an 8812 message lock time occurs
URL Name000039044
Article Number000161763
EnvironmentProduct: OpenEdge
Version: 10.2x, 11.x
OS: All supported platforms
Other: AppServer, WebServer
Question/Problem Description
When a procedure on an AppServer or WebSpeed Agent with -lkwtmo and the procedure times out with error 8812, how to determine where in the ABL code it timed out?

How to tell what line in the related .p or .htm file the line number given for the complied code .r in message 8812 corresponds to?

The Server.log file shows the Procedure name and line number from the .r program in the log.:
(Procedure: '<procedure name>' Line:<Line Number>) Lock wait timeout of 30 seconds expired (8812)

The Database.lg  only shows a correlating 8812 message without the application detail:
Lock wait timeout of 30 seconds expired (8812) 
Steps to Reproduce
Clarifying Information
The Lock Timeout parameter (-lkwtmo) default is 1800 seconds unless otherwise specified on the client connection
Error Message(Procedure: '<procedure name>' Line:<Line Number>) Lock wait timeout of 30 seconds expired (8812)
Defect Number
Enhancement Number
Cause
Resolution
Compile the procedure reported in message 8812 with a debug listing.
Example:

  compile <SourceFile>.p debug-list <SourceFile>.dbg.
  • The line number reported in error 8812 will correspond to the line number in the debug listing file.
  • From that the statement and which table the ABL failed to obtain the record lock can be determined.
If it is a html file then you need to generate a .w file (this can be done from Webspeed Workshop) then compile the .w with a debug listing. 
compile <SourceFile>.w listing <SourceFile>.lis debug-list <SourceFile>.dbg
Workaround
Notes
Keyword Phrase
Last Modified Date11/20/2020 7:11 AM

Powered by