My Shared Items

Monday, June 23, 2008

A knowledge base article was recently posted entitled “How Much Memory Does the Advantage Database Server Generally Use?” It gives a great overview of how memory is allocated when Advantage starts up based on the configuration settings. A table summarizing the bytes used by each configuration option and the default values for Advantage version 9.0 is below. You can click on any of the configuration settings links for more information about the setting.

For most applications the default values should be sufficient, however, connections is frequently modified. If you make multiple connections from your application or if you provide a suite of applications you will need to increase this value. Increasing the number of connections does not automatically increase Work Areas or Data Locks so you may need to adjust these settings as well.

Worker Threads require the most memory allocation of the configuration parameters. Generally the default value (8) is sufficient for most implementations. However, if you have a busy system or a multi-processor system the general rule is to configure 8 – 16 worker threads per processor.

With Advantage 9.0 these configuration settings are used for the initial startup values. The server will dynamically allocate connections, work areas, tables, indexes and locks if the initial values are exceeded. This virtually eliminates 7004 (maximum work areas exceeded), 7005 (maximum tables exceeded), 7006 (maximum indexes exceeded) and 7007 (maximum locks exceeded) errors. I recommend checking these values whenever you add more users or update your application. Set your initial values above the Max Used if you are consistently using more than your configured values.

You can modify the default configuration parameters during the install by providing a custom ADS_CFG.REG file, details can be found here.