Salesforce

Error 893 or 9874 when using dynamic queries

« Go Back

Information

 
TitleError 893 or 9874 when using dynamic queries
URL NameP2898
Article Number000150122
EnvironmentProduct: Progress
Version: 9.x
Product: OpenEdge
Version: 10.x, 11.x
OS: All Supported Operating Systems
Question/Problem Description
Error 893 or 9874 when using dynamic queries
 

Stack trace from _progres shows:

strentd 
strent
qrGetQuery
qrOpen
dbqry
proqry


Dynamic widgets are not released from memory with the DELETE statement after they have been used
Steps to Reproduce
Clarifying Information
Using dynamic queries
Using dynamic widgets
Error MessageSYSTEM ERROR: strent request for more than 32K. (893)
SYSTEM ERROR: strent request for more than 64K. (9874)
Defect Number
Enhancement Number
Cause
Dynamic objects are not being released from memory causing the available memory to be consumed. This eventually leads to error 893 or 9874 because there is no more memory available.

All clients' queries (be it static or dynamic) are kept in a buffer which cannot exceed:
  • 64 KB in 64 bit products (error 9874)
  • 32 KB for 32 bit products (error 893).  
Resolution
The best programming approach is always to free unneeded resources once they are not used any more. When a query is left opened, some resources are allocated to process the query. Freeing these resources that are no longer needed is a good practice and it helps to avoid errors.

Use the QUERY-CLOSE() method and the DELETE OBJECT statement to release the resources when they are no longer needed.

The -debugalert Startup Parameter can be used to narrow down to the problem.
Workaround
Notes

References to Other Documentation:

Progress Language Reference Manual, QUERY-CLOSE()
Progress Language Reference Manual, DELETE OBJECT
Progress Programming Handbook, Section 15.3.4, "Dynamic Temp-tables as Local and Remote Parameters

Progress Article:

000020267, What are common causes for error 893 and error 9874

Keyword Phrase
Last Modified Date11/20/2020 7:13 AM

Powered by