Thursday, April 1, 2010

FAQs – March 2010

What is the Wildcard Character for Full Text Search

The Advantage full text search engine provides a quick and efficient way to search any text field. You use the CONTAINS operator to perform a full text search. You can use the standard asterisk ( * ) as a wildcard character. For instance if you were searching for all customers with a first name that starts with j you could use the following query.

FTS_Wildcard

Configuration Settings for X Users

Advantage has some formulas for defaults as outlined here.

This isn't an issue with version 9 and newer since the server will dynamically reconfigure these settings. I do recommend that you periodically check the MaxUsed values and set your defaults above those values. This ensures that enough resources are pre-allocated when you restart the Advantage server.

If you are using a version prior to 9.0 you need to configure these settings. Advantage has some formulas for defaults as outlined here. If the default values aren't adequate for your application, here are my recommendations:

Setting Recommendation
Connections App Connections * Number of users + 10
Tables Total Tables * 1.1
Indexes Tables Configuration * 1.5
Data Locks 40 * connections
Worker Threads 8 * number of  processor cores

These are general guidelines and they may not fit your situation. For example if you do long transactions you may need more data locks since records remain locked until a transaction is committed. Watching the max used values at many different sites that are using your product will be the best way to determine your settings. 

Specifying the ADS.INI File Location

In addition, if an environment variable exists with the name adsini_path, that path will be used to locate the ads.ini file. This can be helpful when you do not want to modify the application’s search path, but still need the ads.ini file to exist in a directory multiple users have rights to (for example on Windows Vista installations). An application can often set the environment variable at run-time before calling any Advantage functions, which avoids the need to set a per-workstation environment variable.

6303 Error

I recently ran into this error when doing performance testing with Advantage. By default a single client is limited to 50 connections to Advantage, you receive a 6303 error if exceed this limit. You can configure this limit in the ads.ini file by adding the MAX_CONNECTIONS setting under the Settings section. For example:

[Settings]
MAX_CONNECTIONS=200

No comments: