Troubleshooting 6610 Errors (Corporate Edition)
Posted: Sat May 15, 2021 11:46 am
MAX_TIMEOUTS
If users are experiencing frequent 6610 errors using Corporate Edition due to a heavily overloaded network server, the network time-out period may be increased to reduce the frequency of this error code.
The Max Timeouts setting specifies the maximum number of times the client will attempt to communicate with the Advantage Database Server.
The MAX_TIMEOUTS setting must exist within a section titled "[SETTINGS]". This setting should only need to be increased when a slow network is causing a 6610 error, which indicates the Advantage Database Server did not respond to a client request in a timely manner.
The actual duration of the timeout period can very depending on network speeds. On a faster network, the total timeout period may be shorter. In general, the default value of 30 will result in a timeout period of approximately 15 seconds.
Add the following to the ADS.INI file found in your \Program Files\Advantage X.0\Server folder:
where NN is a number greater than 30.
The 6610 error can only occur when using UDP communications. It is generated if the MAX_TIMEOUTS value is hit while waiting for a response. The comm layer does a receive with some kind of short timeout (approximately 2 seconds). It does this a number of times (30 by default or whatever MAX_TIMEOUTS is set at). If it never receives anything at all, then it returns the 6610 error. So it simply means the client waited for a length of time and got absolutely no response from the server (not even from an unexpected source address). With each "failure" to get a response, it resends a "reminder" to the server: "Hey, I'm still waiting.".
Packet Size
It is possible to troubleshoot an 6610 error by reducing the packet size. This may stop 6610 errors that are being caused by artificial packet fragmentation. If this is the case, the core issue is most likely a problem on the network that is causing the packets to become artificially fragmented, so this is recommended as a troubleshooting tool and not as a long-term solution. Reducing the size of packets will most likely have a performance impact on Advantage.
To set the packet size lower (recommended typically for troubleshooting to be 512, but can be set even smaller), add the following entry to the ADS.INI file:
Change the client to connect using TCP/IP versus UDP. Add the following to the ADS.INI file:
Use the RETRY_ADS_CONNECTS setting. By setting the value to 1, every "ADS_REMOTE" connection attempt to a server will look for the Advantage Database Server regardless of the success of past connection attempts. If you want your application to check for the Advantage Database Server each time it attempts an "ADS_REMOTE" connection, you need to create an ads.ini file with the following entry:
If users are experiencing frequent 6610 errors using Corporate Edition due to a heavily overloaded network server, the network time-out period may be increased to reduce the frequency of this error code.
The Max Timeouts setting specifies the maximum number of times the client will attempt to communicate with the Advantage Database Server.
The MAX_TIMEOUTS setting must exist within a section titled "[SETTINGS]". This setting should only need to be increased when a slow network is causing a 6610 error, which indicates the Advantage Database Server did not respond to a client request in a timely manner.
The actual duration of the timeout period can very depending on network speeds. On a faster network, the total timeout period may be shorter. In general, the default value of 30 will result in a timeout period of approximately 15 seconds.
Code: Select all
[SETTINGS]
// A Default value of 30 is used if this is 0 or not specified
// The following example setting specifies that the client will retry communicating with the
// server 40 times before returning a timeout error.
MAX_TIMEOUTS=40
Code: Select all
[SETTINGS]
MAX_TIMEOUTS=NN
The 6610 error can only occur when using UDP communications. It is generated if the MAX_TIMEOUTS value is hit while waiting for a response. The comm layer does a receive with some kind of short timeout (approximately 2 seconds). It does this a number of times (30 by default or whatever MAX_TIMEOUTS is set at). If it never receives anything at all, then it returns the 6610 error. So it simply means the client waited for a length of time and got absolutely no response from the server (not even from an unexpected source address). With each "failure" to get a response, it resends a "reminder" to the server: "Hey, I'm still waiting.".
Packet Size
It is possible to troubleshoot an 6610 error by reducing the packet size. This may stop 6610 errors that are being caused by artificial packet fragmentation. If this is the case, the core issue is most likely a problem on the network that is causing the packets to become artificially fragmented, so this is recommended as a troubleshooting tool and not as a long-term solution. Reducing the size of packets will most likely have a performance impact on Advantage.
To set the packet size lower (recommended typically for troubleshooting to be 512, but can be set even smaller), add the following entry to the ADS.INI file:
Code: Select all
[SETTINGS]
PACKET_SIZE=512
Code: Select all
[SETTINGS]
USE_TCP_IP=1
Code: Select all
[SETTINGS]
RETRY_ADS_CONNECTS = 1