Wednesday, June 4, 2008

FAQs - May 2008

Although tech support is not my actual responsibility I tend to get involved in many support issues. With this in mind I thought it might be a good idea to post some of the questions and answers that I encountered in the previous month.

Does the Advantage .NET Data Provider work with Visual Studio 2008?

Yes, you can use the Advantage .NET Data Provider, versions 8 and 9, with Visual Studio 2008. However, none of the wizards will work. You will not be able to create connections in the Server Explorer, automatically generate Typed Datasets, drag and drop tables onto DataSets etc... You can access Advantage using the components in code in both VS2005 and VS2008. For example the project I did demonstrating using Online Backup functionality works in both VS2005 and VS2008.

We are currently working on VS2008 support and there has been a temporary solution posted to the Advantage Dotnet newsgroup the post is titled "Visual Studio 2008 support" by Lance Schmidt. The current wizards will work with VS2008 by applying the registry keys contained in the posting. A new install which will include the wizard support will be released with the next service release.

Does Advantage work with Virtual Machines?

Yes, Advantage Database Server works with virtual machines. I use both VirtualPC and VMWare for testing purposes. I don't generally recommend using virtual machines in production environments but there are times when this makes sense. See this post for more about virtualization.

Why am I getting 7020 errors?

With the release of Advantage 7.0 a new error code, 7020 "User logged out", was added to provide a record of users that were disconnected by the server. This error is purely informational and should have little to no impact on the server performance. However, users who are disconnected by the server will receive a 6610 "Client timeout" error if they are still active after the server disconnects them.

You can adjust the Client Timeout configuration parameter to avoid these errors if you have high latency or a firewall on your network. Sometimes reducing the timeout value may help when using a firewall. A firewall may close an active port if there is no traffic in a specified amount of time. Advantage sends a keep-alive packet between client and server at regular intervals, approximately 1/4 of the Client Timeout value. By reducing the Client Timeout more keep-alive packets will be sent preventing the firewall from closing the connection. For Internet connections the timeout is controlled by the Internet Client Timeout setting.

It is possible to get 9003 "Illegal User ID" errors in conjunction with these 7020 errors. This will generate a dump file which may cause performance issues if you are getting these errors frequently. This issue was fixed in version and of Advantage.

Advantage and 64-bit Operating Systems

Advantage 8.x has been tested with 64-bit versions of Windows and Linux for compatibility. The OS will automatically run the Advantage 32-bit service using the Microsoft Windows 32-bit on Windows 64-bit subsystem (WOW64). You can get details on 32-bit compatibility here.

Advantage 9.0 has a true 64-bit server for both Windows and Linux. It also includes a 64-bit version of the Advantage Client DLLs. Currently 64-bit client applications can only be built using the Advantage .NET Data Provider or using the ACE API directly. We are working on updating additional clients where applicable.

1 comment:

Anonymous said...

How was the Advantage 8.x version configured to execute on a 64 bit operating system? I am wondering what the specific configuration should look like. I am running a 64 bit version of Windows 2008 Server R2. When I perform the install using the 8.1 install package and then try to access the Advantage Provider from a data access layer, it says that the provider cannot be found. Eventually and after modifying the configuration a bit, I eventually get the BadImageFormatException when trying to load the ace32.dll. So, when you say that they have been tested, would you mind elaborating a bit on what type of application was calling the provider, what process was it running under (IIS, etc.), what was the platform target in Visual Studio, what version of Visual Studio were you using, etc.? Any information is greatly appreciated.