Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 8 of 8 total
Thread Eoutofmemory error in Memory tables
Thu, Nov 2 2006 8:26 AMPermanent Link

Praveen A B
Hi,

I am using DBISAM Table Component of Version 3.17. My app is developed in Delphi 6.

In our client/server app the server returns the records in text format where every field value is delimited by '|'.
Resopnse format:- No. of Rows|No. of Cols|val1|val2|.......valn|.... and so on.

While parsing this response in a While/For loop I append this data to a DBISAM memory table.

Below is an excerpt of what is being done. Note that I'm using only "Append" and no "Post".
----
table.append;
for i := 0 to rows do

 if next row then
   table.append;
end;
table.refresh;
-----

Now, in some cases when there are about 10,000 or more rows I get an "Out of Memory" error (on the second Append).
Record size of table is about 3KB.

I have 1 GB RAM. No apps are running.

What is the likely cause of the out of memory error? Is it something to do with calling Append w/o a Post. ?
What's the max records that a DBISAM memory table can hold ?

Thanks
Praveen A B.

Thu, Nov 2 2006 10:57 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Praveen,

<< Now, in some cases when there are about 10,000 or more rows I get an "Out
of Memory" error (on the second Append). Record size of table is about 3KB.
>>

How many rows are getting appended before the error ?  More than likely the
issue is with fragmentation of the address space due to the Delphi memory
manager.  You might want to try downloading and using FastMM and see if that
helps things a bit.

--
Tim Young
Elevate Software
www.elevatesoft.com

Mon, Apr 23 2007 8:35 AMPermanent Link

Praveen AB
Hi,

Have tried FastMM to no avail. The exception occurs when around 3000-3500 records are posted.
This has been bugging me for some time in production.
Mon, Apr 23 2007 9:21 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Praveen

What happens if you try the same operation in fileserver mode?


Roy Lambert
Mon, Apr 23 2007 9:59 AMPermanent Link

"Jose Eduardo Helminsky"
Praveen A B

Is there a transaction active ? If so, try call COMMIT for each 500 records
and see what happen.

Eduardo

Mon, Apr 23 2007 4:03 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Praveen,

<< Have tried FastMM to no avail. The exception occurs when around 3000-3500
records are posted. This has been bugging me for some time in production. >>

The only other thing I can suggest is to upgrade to 4.x.  4.x uses a
different memory block allocation scheme for in-memory files in its virtual
file system, and it is a bit easier on the memory manager because it does
not do reallocs when growing the files like 3.x does.

--
Tim Young
Elevate Software
www.elevatesoft.com

Wed, Apr 25 2007 9:54 AMPermanent Link

Praveen A B
Tim,

<< The only other thing I can suggest is to upgrade to 4.x. >>

What's the cost of 4.x ??

Praveen.
Fri, Apr 27 2007 7:49 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Praveen,

<< What's the cost of 4.x ?? >>

If you log into the Customers area of the web site using your user ID and
password:

http://www.elevatesoft.com/scripts/customer.dll?action=login

you can go to the Upgrade Products link on the right and see all of your
upgrade options as well as their cost.

--
Tim Young
Elevate Software
www.elevatesoft.com

Image