Friday, November 7, 2008

Tip #5 – Bypassing the Advantage Discovery Process

When an Advantage client connects to the server it goes through a series of steps to discover the Advantage server. These steps are generally executed very quickly and the server is found and a connection is made. However, if you get the dreaded 6420 or 6060 error you have to start troubleshooting a connection issue.

I wrote an article on troubleshooting Advantage connection issues which details the discovery process. However, the discovery process can be avoided by changing your connection string or by specifying details in the ADS.INI file. By specifying a port number in the connection string the Advantage communication layer will not try to discover the server instead it will attempt direct communication to the specified server on the specified port. The following data paths would make a direct connection to Advantage without any discovery.

\\Server:6262\Data\MyDictionary.add
\\192.168.0.10:6262\Data\

You can also make a direct connection to an Advantage server by specifying the LAN_IP and LAN_Port in the ADS.INI file. You specify these settings under a heading which specifies the server name associated with the IP address. When the client connects it will check for the server name specified in the connection string with the headings in the ADS.INI file. For example an entry for MyServer is specified in the ADS.INI file (see syntax below) so the connection string \\MyServer\Data\MyDictionary.add will become \\192.168.0.10:6262\Data\MyDictionary.add.

[MyServer]
LAN_IP = 192.168.0.10
LAN_PORT = 6262

If a connection to the server fails using this information different error codes will be returned. If the IP address cannot be reached a 6097 error will be returned.

9 comments:

PaulTechGuy said...

Chris,

Good feedback on how things work. We're in a situation that maybe you can assist with.

We're trying to access ADS using the Medisoft application. We have a VPN configured. I can VPN in where ADS lives, an access the shared folder where ADS data lives, but can't connect.

My local IP is 192.168.0.x. When I VPN in I get an IP 10.0.0.2. ADS data can be seen by doing "dir \\10.0.0.1\adsdata. When I try to connect it fails (they use port 3000 so my UNC is "\\10.0.0.1:3000\adsdata"). I've tried lots of combinations like using ADS.INI and such for lan_ip and lan_port.

The actual ADS server resides remotely on their subnet at 192.168.0.10, but of course since I'm VPN'd in, I can't use that (and it would clash with my side).

Any ideas on connecting to ADS in this scenario? The error I get is "you have no rights to this server", but that might be an error phrase from Medisoft rather than ADS.

Chris Franz said...

Paul,

Thanks for your comment. I am glad that you found the information useful.

Advantage should work just fine over a VPN connection but there are a few things to check. First verify that you can ping the name of the server where Advantage is running. This will ensure that name resolution is working and it will return the IP address. The VPN should route the traffic from your computer to the internal network. You will also need to verify that UDP traffic is not being blocked across the VPN.

If you are still getting connection errors I would recommend doing a search in our knowledgebase for the error codes you receive.

colson79 said...

Not sure if anyone is still reading this thread but I have a really strange advantage problem. We have done some recent network upgrades and now we are having issues connecting to Advantage. Basically we had a flat network were the clients were on the same subnet at the advantage database server. Now we separated the clients out to a new subnet and now we get the Error 7077. If I move a client back to the old subnet it works fine.

Anonymous said...

Thanks for your help i work at a small software company and found this posting via google. I had the error keep popping up but as soon as i added the port number to the connection string all my problems were solved.

Anonymous said...

Thanks for this post. I ran into this issue after some network changes and your fix worked!

Anonymous said...

Dear Chris, Thanks for this Tips,
it's solve my "Error 6420: The 'discovery' process for the Advantage Database Server failed. "
issue.

Actually using .NET ( C# based ) API try to connect ADS 9, and i was getting this Error 6420, as per ur Tips just added Server IP and port number :6262, and its works!

Thank you, Thank you very much.

with regards
Rakesh
Paramaribo, Suriname

Flavius Fernandes said...

Good read, I also am getting intermittent Error 6420 at a clients site.

Regards

Unknown said...

Hi I am working though a 5185 issue and have modified the C:\Windows\ads.ini file with an MTIER_LOCAL_CONNECTIONS=1 in the [SETTINGS] however the change does not seem to be effective.

Anonymous said...

one other thing to note:
in order to connect remotely, the port must be enabled over UDP on the server. on Windows, it has to be enabled over private, domain and public networks from what I can make out.
... although this may not be a huge deal ... if the server is, say, a cloud VM that can only be accessed via VPN.