Kbase 16418: Error 0: unable to allocate more memory for records (4)
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  10/05/1998 |
|
Error 0: unable to allocate more memory for records (4)
Unable to fetch next database record. Database error is:
**error 0: unable to allocate more memory for records or
variables (4).
Many customers have reported getting the above error when
running reports created by Report Builder.
Report Builder seems to have a limitation as to how many
records it can process and create a report with.
This limitation is based on many factors (such as the
number of fields in a record, complexity of the report, system
memory, etc.) so it not reached at a consistent number of records
for any given customer. The symptom is always the same.
A report which ran fine in the past no longer can run when
the data expands past a certain point. Increasing or fine
tuning system memory may help in some cases but this is
usually only of minimal help. Sometimes it allows more
records to be processed only to have the error encountered again
at a later point. In any case, as the data expands again
in the future the error may occur again.
One area to look at which can be helpful is to determine
whether filters and calculated fields used in the report
are able to be evaluated by the server. Report Builder translates
its queries into SQL and sends this to the server. There
are no SQL statements for certain Report Builder functions.
A server-evaluatable filter allows the server to process the
data and only send records to Report Builder which pass the
conditions of the filter. Changing a filter from a non-server-
evaluatable expression into an expression which is able to be
evaluated by the server may greatly reduce the number of
records and variables which Report Builder must keep in memory
(and thus allow reports to run without getting the above error).
Such a change may also greatly decrease the time it takes to run
a report. The same also applies to calculated fields. A list
of what expressions are server-evaluatable may be found in the
Report Builder User's Guide (p.3-7 in V7 book, p.6-14 and 10-7
in V8 book). Server-evaluatable calcuated fields are indicated
with a small "e" next to their expression in the status bar at
the bottom of Report Builder when the field is highlighted.
Passing a filter to the Report Engine using rb-other-parameters
rather than the rb-filter parameter will also cause a filter
to be evaluated on the client rather than the server.
This error message can also be caused by running a 16 bit
application, Report Builder 8.2, on a 32 bit operating system,
Win 95 or Win NT. Although there is more memory available on the
system, the 16 bit application does not have access to it because
it runs in its own virtual memory space.
There are various points during processing where this could happen,
a few examples are as follows:
- during Print Preview, the entire report is written to memory
- during large sorts, where memory is consumed as records are being
read
Progress Software Technical Support Note # 16418