|« 2011 FIFA Women's World Cup Streaming works on Linux too!||502 Bad Gateway Error on Yahoo Mail from Blackberry Fix »|
The problem? A Quickbooks install that was running just fine with the company file hosted on a Linux server until a Quickbooks client software update results in the dreaded H202 error. Evidently other Quickbooks linux server users also ran into the same problem as can be seen from these posts on the quickbooks user support forums http://community.intuit.com/posts/qb-2011-h202-error-with-redhat-linux-database-server-manager and http://community.intuit.com/posts/i-cant-switch-to-multiuser-mode.
The solution? So simple yet so hard, to find. Digging through the wireshark capture of the connection attempt shows at attempt to connect to the server on 55333 and then UDP broadcasts and attempt to connect to UDB ports on the server which fail with port unreachable.
An article on the sybase site gives a clue, the UDP packets are an attempt to discover the database server because connecting to the server failed.
Digging into the Wireshark packets I could see that the client was trying to connect to the server using the servers netbios name not it's hostname. When the SQLAnywhere server used by Quickbooks starts it's name is set to the hostname. It seemed that the easiest solution would be to set the SQLAnywhere database name to match the server's Netbios name unfortunately the qbdbfilemon doesn't let you specify the database name and uses the hostname of the server so it failed to find the find the database server. Since qbdbfilemon couldn't find the database server and report back the port number the client needed to use to make it's connection to the server the client connection still failed. The server had a Netbios name that didn't match it's hostname for historical reasons, changing it might have caused too many other side effects so I moved the database to another server where the Netbios name already matched the server name with is the default configuration with a Samba server. The other thing I had to do is change the servers hostname so that it didn't include our internal domain name, so instead of being server1.internal.company.com it reported it's hostname as simply server1.
That's what it took to banish the H202 error.