Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

BDE Configuration For Max Connections

1,080 views
Skip to first unread message

Brian Parliament

unread,
Feb 5, 1999, 3:00:00 AM2/5/99
to
Is there a BDE configuration document anywhere? We are trying to set our BDE
configurations to get more clients connected. Currently, we get an error at
about 83 clients connecting. The error is the following:

Application Login Error: Insufficient memory for this operation. Alias: My_Data

I am assuming our limitations are due to the BDE. Is there any place else we
should be looking?

Our server is a 400mhz single processor IBM server with 512 mb memory. We are
using oracle 8 and it is installed on the same machine.

Brian

Josh Dahlby

unread,
Feb 9, 1999, 3:00:00 AM2/9/99
to
>Is there a BDE configuration document anywhere?

Not that I know of.

>I am assuming our limitations are due to the BDE. Is there any place
else we
>should be looking?


Try setting the SharedMemSize to something larger. 32 to 64k (you can
play around with it to see what you need). Unfortunately, I don't have
more concrete information on it.

Josh Dahlby
Delphi R&D


Brian Parliament

unread,
Feb 10, 1999, 3:00:00 AM2/10/99
to
Thanks for the reply. We have bumped up the SharedMemSize to 65535 from the
default of 2048. Before we did this the connection limit was about 28. It
seems like around 12288 is large enough to get the same results as the 65535.
With an increase SharedMemSize we could get about 55 connections.

Increasing MemSize to 128 helped get us to about 75 connections max. I'm not
sure why we only get 75 now instead of 83 that we had the other day. Could the
size of the server have anything to do with our connection limit. The exe size
is 1097 kb with over 100 interface properties.

It seems like the SharedMemSize and MemSize are the only settings that make any
difference in the number of connections to the database. We are currently
running with the following settings changed:

MaxBufSize = 65535 default = 2048
MaxFileHandles = 4096 default = 48
MemSize = 128 default = 16
SharedMemSize = 32768 default = 2048

When the SharedMemSize caused the limit, we got the error: "Application Login
Error: Insufficient memory for this operation. Alias: My_Data". But now at the
75 connection limit we do not get any errors. The client just seems to lock up
when trying to connect past approx. 75 connections. We do get a memory access
error on the AppServer when all the connections are closed and it is shut down.

BTW, we are using the TThreadedClassFactory for the RDM.

Regards,
Brian

Josh Dahlby

unread,
Feb 11, 1999, 3:00:00 AM2/11/99
to
>Increasing MemSize to 128 helped get us to about 75 connections max.
I'm not
>sure why we only get 75 now instead of 83 that we had the other day.
Could the
>size of the server have anything to do with our connection limit. The
exe size
>is 1097 kb with over 100 interface properties.


How much memory is the server using when you have 75 connections? What
DBMS are you using?

Josh Dahlby
Delphi R&D

Dan Miser (TeamB)

unread,
Feb 11, 1999, 3:00:00 AM2/11/99
to
Here's a repost from Cliff Cormier, Borland BDE QA manager. It gives some
general guidelines for using BDE in a high-traffic setting, but nothing will
replace your fine-tuning of these settings according to your application
needs.

=== Begin repost ===
[When] you're running into
memory constraints due to multiple initializations of BDE. This can be
avoided by running more sessions inside fewer instances of BDE.

We have also determined that you can change the settings of
SHAREDMEMSIZE and MEMSIZE (using BDEAdmin) to gain some more headroom, so to
speak.

Here's a pretty good strategy for setting the above values for a BDE
server machine :

1) Take the total amount of RAM on the machine and subtract 16MB for NT
or 8MB for Win95.

2) With the remaining amount of RAM, set MEMSIZE to 3/4 of the amount
and SHAREDMEMSIZE to 1/4 of the amount.

For example : If you had a 64MB machine running NT you would start with
48MB (64-16) and set :

MEMSIZE = 36 (48 * .75)
SHAREDMEMSIZE = 12288 (48 * .25)
--
Dan Miser
http://www.execpc.com/~dmiser
(TeamB cannot answer questions received via email.)


Brian Parliament

unread,
Feb 11, 1999, 3:00:00 AM2/11/99
to
We are using Oracle 8 on NT version 4 service pack 3 with 512 MB memory. The
amount of total used memory task manager is showing is the following:

Connections Memory Usage
----------- ------------
75 423 MB
80 428 MB
87 437 MB

We crashed at 87 on this test. One thing we did different than before was
waiting five seconds between logons, instead of 1 second before. On this test
we did not get an error on the server, but the client gave the memory error I
listed before and also an invalid variant type conversion error.

Brian

Josh Dahlby

unread,
Feb 11, 1999, 3:00:00 AM2/11/99
to
>We are using Oracle 8 on NT version 4 service pack 3 with 512 MB
memory. The
>amount of total used memory task manager is showing is the following:
>
>Connections Memory Usage
>----------- ------------
>75 423 MB
>80 428 MB
>87 437 MB


That seems like an awful lot of memory. Do you know why it is using
that much? Are you doing something special in the data modules that is
consuming memory?

Josh Dahlby
Delphi R&D

Brian Parliament

unread,
Feb 12, 1999, 3:00:00 AM2/12/99
to
Oracle is using a substantial amount, about 200 MB. The AppServer is using
about 100 MB when we just have the clients connected. The AppServer grows
larger when the clients start doing things. For instance, we did a test with 57
clients where each client was accessing different parts of the application and
the AppServer grew to 200 MB.

Because we have 512 MB available I think Oracle's buffers grow quite large to
increase database performance.

Brian

Brian Parliament

unread,
Feb 12, 1999, 3:00:00 AM2/12/99
to
Thanks Dan. It seems like these are the only parameters that effect anything.
But there must be another BDE limit we are hitting that the config parameters
don't effect. I guess it could have something to do with COM and the RDM.

Brian

Josh Dahlby

unread,
Feb 17, 1999, 3:00:00 AM2/17/99
to
>Oracle is using a substantial amount, about 200 MB. The AppServer is
using
>about 100 MB when we just have the clients connected. The AppServer
grows
>larger when the clients start doing things. For instance, we did a
test with 57
>clients where each client was accessing different parts of the
application and
>the AppServer grew to 200 MB.


The only thing I could suggest is to try and write a stateless
application and use some kind of pooling mechanism (like MTS or the
Pooler demo).

Josh Dahlby
Delphi R&D

Brian Parliament

unread,
Feb 17, 1999, 3:00:00 AM2/17/99
to
Thanks, I think we'll live with the limitation for now.

Brian

James Higgins

unread,
Feb 23, 1999, 3:00:00 AM2/23/99
to
The BDE is supposed to support up to 256 (or was it 255) connections
for a single application with 48 total applications per system. So
you should be able to get this working. Awhile back I read something
that talked about how to configure for this but I can't find it at the
moment. Hopefully I stashed it away somewhere.

>It seems like the SharedMemSize and MemSize are the only settings that make any difference in the number of connections to the database. We are currently running with the following settings changed:
>
>MaxBufSize = 65535 default = 2048
>MaxFileHandles = 4096 default = 48
>MemSize = 128 default = 16
>SharedMemSize = 32768 default = 2048

My only thought is that maybe you should not change the setting of
MaxBufSize? My guess would be that is how much memory the BDE is
allocating. So by increasing its size you effectively negate the
benefit of increasing the memsize and sharedmemsize values. This is
just a guess but you might want to give it a try. If you do please
let us know what happens.


Brian Parliament

unread,
Feb 24, 1999, 3:00:00 AM2/24/99
to
We have tried different setting both large and small. None of them seem to get
us past this limit. I think there must be some internal BDE limitations that
are being hit. But I have no idea what. I don't think the original developers
of the BDE had any idea that it would be used to make so many connections.

Brian

Rick Robeson

unread,
May 11, 1999, 3:00:00 AM5/11/99
to
Our problem was with the fact that we were using cached updates and the maxfilehandles limit of 255 was for the system (not for the application). Each cached query was generating temporary file handles.
0 new messages