Wednesday, July 2, 2008

FAQs – June 2008

Memory Management

Advantage Database Server has a very small footprint and normally does not use an excessive amount of RAM. Calculating the amount of RAM used by Advantage at startup is a fairly simple process.  This post I did in June outlines the process or you can refer to this knowledge base article.

The configuration settings only establish the initial memory usage for the Advantage server. As tables, indexes, AEPs and queries are loaded by the server more memory will be used.

File Size Limitations

File size limitations can be tricky to calculate. The bottom line is that any single Advantage table can have a maximum of  two billion records. This is the absolute limiting factor on the table size. Since record size can very greatly the physical size of the table may not be the actual limitation.

Other maximums can also constrain this. For instance a single memo field can contain up to four gigabytes. Therefore if the operating system and your hardware can handle it your table could conceivably be eight billion gigabytes in size.

Windows Server 2008 Support

The Advantage R&D team has completed testing of Advantage 8.x and Advantage 9.0 on Windows 2008 Server. It is fully supported as part of the Windows x86 platform. Advantage 9.0 was also tested on the 64bit version of Windows 2008 Server.

Although Advantage 7.x should work on Windows 2008 Server it has not been tested since support has been dropped for this version with the release of Advantage 9. You can view the supported platform list for Advantage here.

Replacing and Debugging AEP/Trigger Containers

In Advantage 8.0 we added a feature to allow for easier updating of Advantage Extended Procedure (AEP) containers called DLL Caching. With version 8.0 and newer the server makes a copy of the container (DLL) and loads the copy in memory. This allows you to replace the original container without forcing all the users to log out and stopping the service.

Each time a function (an AEP or Trigger) is used from the container the server checks the timestamp of the original container. If the container is newer than the copy being used a new copy will be made and loaded by the server. Advantage will then transition all users to the new version of the container. You can get more details about DLL caching in the help file.

This functionality is very useful in production environments since Advantage will update containers without having to restart the service. However, you cannot debug containers when DLL caching is enabled because the server does not load the original container.

DLL caching can be disabled by setting the ADS_DD_DISABLE_DLL_CACHING property to true. This can be done using the AdsDDSetDatabaseProperty API or with the sp_ModifyDatabase system procedure. There is a knowledge base article which describes potential issues with debugging DLLs containing AEPs or triggers. Remember that DLL caching is a data dictionary property and not a server setting so turn it back on prior to shipping an updated data dictionary.

No comments: