Monday, March 1, 2010

FAQs – February 2010

User Licenses and Replication

Replication consumes a user license on each of the subscriber machines. If the subscriber has the maximum number of users connected then the replication will receive a 7003 error. Changes will continue to be added to the replication queue but they will not be sent to the subscriber(s) until the error is resolved.

Advantage VCL Components not on Pallet

After installing the Advantage Components they do not show up in Delphi 20xx. When using Delphi 2005 and newer you must install the Advantage Delphi Components and not the Advantage TDataSet Descendant. The TDataSet Descendant works with Delphi version 7 and older.

Version 9.10.0.15 of the Advantage Delphi Components supports Delphi 2010.

Where Do I Put 32-bit Advantage DLLs on a 64-bit System

Advantage clients load the Advantage DLLs from the system directory if they are not in the applications local path. This is true of the various development environments as well. The system path for Windows is C:\Windows\System32. This path is the same for both 32-bit and 64-bit versions of Windows.

However, on a 64-bit version of Windows the System32 directory actually contains 64-bit DLLs. 32-bit DLLs need to be placed in the C:\Windows\SysWOW64 directory. This is the default system path for 32-bit applications which are running within the 32-bit emulator.

DLL Caching

By default the Advantage Database Server caches DLLs that are used for Advantage External Procedures (AEPs). This allows for dynamic updating of AEPs and backing up of the AEP DLLs. The cache setting is set in the data dictionary using the ADS_DD_DISABLE_DLL_CACHING property. This property is persisted even after you disconnect, for more information see the help file. You can change this property using the ACE API or using the sp_ModifyDatabase system procedure. Below is an example of using the system procedure to ensure DLL Caching is enabled.

EXECUTE PROCEDURE sp_ModifyDatabase( 'DISABLE_DLL_CACHING', 'false' )

When debugging AEPs you may want to turn off DLL caching to ensure that the latest version of you AEP is being used. However, if you ship your database with DLL caching disabled you will not be able to dynamically update AEP files. You may also get errors when backing up the database since the AEP DLL may be loaded by the server. With DLL caching enabled a copy of the AEP is loaded allowing you to copy or modify the original AEP file.

No comments: