Overflowing Temp-table

I have a module that is using temp-tables to store values but it's overflowing and I am hitting a memory violation.
Does anyone have any ideas ?


Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Overflowing Temp-Table

Your problem is a simple case of Lock Table overflow. progress is attempting to automatically increase the setting for you before failing.

It is caused by having too many updates to your database within a single transaction and is almost certainly due to poor transaction scoping. You need to seriously review your code and keep your transactions as small as possible.

Alan Thompson


jurjen's picture

Overflowing Temp-Table

> Your problem is a simple case of Lock Table overflow

I am afraid not, the Locktable entries parameter is a capital L, while the logfile lists a warning about the -l parameter.
I have no hints about the system error but 2 Gigabyte seems mighty large to me for a temp-table, I can't help wondering if the application could not be designed without a temp-table that grows so huge. Instead of searching how to tweak the operating system to go beyond 2G I guess I would review the code and see if this temp-table is stuffed with duplicate records or something.


hi, can you paste your code

hi,

can you paste your code at here?

Rgs,
tan


I cannot share the code as

I cannot share the code as multiple modules that are called not just a snippet. The problem seems to be that a temp-table is exceeded the 2GB size and progress memory is violated.

[2008/02/25@06:34:33.134-0500] P-1691868 T-1 I Usr 30: (-----) WARNING: -l exceeded. Automatically increasing from 5210 to 5220.
[2008/02/25@06:35:14.355-0500] P-1691868 T-1 I Usr 30: (-----) WARNING: -l exceeded. Automatically increasing from 5220 to 5230.
[2008/02/25@06:35:14.461-0500] P-1691868 T-1 I Usr 30: (49) SYSTEM ERROR: Memory violation.
[2008/02/25@06:35:14.483-0500] P-1691868 T-1 I Usr 30: (13638) Creating protrace filei /vpasp1/batch/bin/prod/protrace.1691868
[2008/02/25@06:41:13.297-0500] P-1691868 T-1 I Usr 30: (439) ** Save file named core for analysis by Progress Software Corporation.
[2008/02/25@06:41:13.474-0500] P-1691868 T-1 I Usr 30: (2252) Begin transaction backout.
[2008/02/25@06:41:13.475-0500] P-1691868 T-1 I Usr 30: (2253) Transaction backout completed.
[2008/02/25@06:41:13.480-0500] P-1691868 T-1 I Usr 30: (453) Logout by prodbch on /dev/pts/1.


Hi, Which version of

Hi,

Which version of Progress? which OS? Is it an appserver program or a classic C/S one?...
There are many entries in ProKB about the error SYSTEM ERROR: Memory violation... which have many possible reasons. Have you checked there?
You can try to increase -l client parameter. It can go up to 4 GB in Progress V9.1.


OpenEdge 10.1A UNIX

OpenEdge 10.1A
UNIX Server
classic C/S


I am not a Unix specialist

I am not a Unix specialist but I know that you can decide of the disc space size allocated to an application. Have you tried to enlarge OE filesystems? This is to be done if you think it is normal that your temp-table reaches 2 GB??

Personnaly, I encountred this error in a special case where there were an infinite loop which crashed the memory. So it is important to see when exactelly the SYSTEM ERROR (49)happens (when adding a new record to the TT? When transferring TT between procedures or between Client and server?...)

In ProKB they say that this can also be caused by a corrupted DB (=> IDXBUILD may resolve the problem), or a corrupted program library (RECOMPILING?)...


May I know your Unix is

May I know your Unix is running what version? if your unix is running 32bit. your file can not exist more than 2G, even your log file.