Thursday, July 6, 2017

I can't open QuickBooks. Why?

You might be experiencing a software problem. Please see our detailed instructions on troubleshooting this problem.

Quickbooks Database Server Manager Conflicts With DNS Server:

What software does this problem apply to?
  • All versions of Windows Server 2008, Windows Server 2012 and Windows Server 2016
  • Quickbooks 2014, 2015, 2016 and 2017
  • QBDataBaseServer24, QBDataBaseServer25, QBDataBaseServer26, QBDataBaseServer27
  • DNS Server


Quickbooks error code, h202, can't open quickbooks database


What are the symptoms of this problem?
  • Users will receive the error: Error Code: H202 This company file is on another computer and QuickBooks needs some help connecting.
  • The Quickbooks Database Server service (QBDATABASESERVER2x) on your Windows Server is stopped and will not start.
  • If you try to start the Quickbooks Database Server service, you may receive the error: The QuickBooksDB26 service on Local Computer started and then stopped.  Some services stop automatically if they are not in use by other services or programs.
  • The event log on the server may contain the following error or a slight variation:
    • The description for Event ID 1 from source SQLANY 16.0 cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

Do you need a quick fix that will get Quickbooks working right now?
  • Log onto your Windows Server with a network administrative ID.
  • Hold down the WINDOWS key on your keyboard and press R.  The RUN dialogue should open.
  • Type in SERVICES.MSC and press ENTER.  The SERVICES window should open.
  • Locate the DNS SERVER entry.  Right-click on it, select STOP and wait for it to complete.
  • Locate the QBDATABASESERVER2x (Your x will be a number) entry.  Right-click on it, select STOP and wait for it to complete.
  • Locate the QBDATABASESERVER2x (Your x will be a number) entry.  Right-click on it, select START and wait for it to complete.
  • Locate the DNS SERVER entry.  Right-click on it, select START and wait for it to complete.
  • Try Quickbooks and see if it is working properly now. 
  • Note that after you reboot your server, the problem will return! This is a quick, but temporary fix.


Alright, that seemed to fix the problem, but why?

The Quickbooks database server is trying to use some of the same TCP/IP port numbers as the DNS Server.  Quickbooks will not adapt to use other ports if the numbers it asks for are in use.  However, DNS Server uses a wide range of port numbers, so if they are in use, it simply finds some that aren’t.  In this instance, if the DNS Server is started first, The Quickbooks database service will not start.  If we start the Quickbooks database server service first, then start the DNS Server service, everything is fine.  In short, the QBDatabaseServer2x must be started prior to the DNS Server service.


I don’t want to deal with this every time my server reboots; what do I do?

There are 3 valid options that we’re aware of.  Note that the last of these 3 solutions is probably the best solution, if you are running Windows Server 2012 R2 or newer operating system.

1. The first option is to make the DNS Server depend on the Quickbooks database server by adding an entry to the registry.  Note that this involves editing the registry.  If you’re not careful, you can cause some serious problems.  The next time you upgrade Quickbooks, you will likely have a problem with this method.  If the old Quickbooks database server isn’t available to start, so your DNS Server won’t start.  That’s a much bigger problem.  If you use this method, find some way to remind yourself about the dependancy when you next upgrade the Quickbooks Database Server:
    • Log into your server and open the SERVICES console (See steps outlined above.)
    • Locate and note the exact name of your QBDATABASESERVER2x entry (It is likely 24, 25, 26 or 27 – depending on your version of Quickbooks.)
    • Close the SERVICES console.
    • Hold down the WINDOWS key on your keyboard and press R.  This should open the RUN dialogue box.
    • Type REGEDIT and press ENTER.
    • Navigate to: COMPUTER\ HKEY_LOCAL_MACHINE\ SYSTEM\ CURRENTCONTROLSET\ SERVICES\DNS
    • Double-click on the DEPENDONSERVICE entry and a dialogue should open.  There should be several lines, each with a specific service listed and the last line should be blank.
    • Move your cursor to the blank line, Type in your EXACT QBDATABASESERVER2x name.
    • Press ENTER one time so that the cursor is on a blank line
    • Press the OK button
    • Close registry editor
    • Stop the QBDATABASESERVER2x service
    • Stop the DNS SERVER service
    • Attempt to start the DNS SERVER service.  This should start BOTH the QBDATABASESERVER2x service and the DNS SERVER service.

2. The second option is to exclude the port range from the DNS Server manually.  As always, there are a couple of ways to do this:
  • Use the DNSCMD tool:
    •  Open a command prompt using the RUN AS ADMINISTRATOR option
    • Execute this command: DNSCMD /Config /SocketPoolExcludedPortRanges <excluded port ranges> (See the bottom of this article)
  • Edit the registry:
    • Run REGEDIT.
    • Navigate to: COMPUTER\ HKEY_LOCAL_MACHINE\SYSTEM\ CURRENTCONTROLSET\SERVICES\DNS\PARAMETERS.
    • If it does not already exists, add a REG_MULTI_SZ with name SocketPoolExcludedPortRanges
    • Double-click on SocketPoolExcludedPortRanges and add the necessary port range (See the bottom of this article)


3. The third option is to use NETSH and it’s a pretty easy fix.  However, you likely need to be running Windows Server 2012 R2 or Windows Server 2016 for this to work:
  • Open a command prompt using the RUN AS ADMINISTRATOR option
  • Run this command: netsh int ipv4 add excludedportrange protocol=udp startport=XXXXX numberofports=5 (Note that you need to replace the XXXXX with the appropriate number.  See the bottom of this article.)
  • So which port number (or range) do I use?
    • Quickbooks 2014, QBDatabaseServer24 – Port 55358 – Port Range 55358-55362
    • Quickbooks 2015, QBDatabaseServer25 – Port 55363 – Port Range 55363-55367
    • Quickbooks 2016, QBDatabaseServer26 – Port 55368 – Port Range 55368-55372
    • Quickbooks 2017, QBDatabaseServer27 – Port 55373 – Port Range 55373-55377
    •  If you’re using the second method above, you’ll need to use the port range.  If you’re using the third method, you just need to use the single port number, as the NUMBEROFPORTS=5 option automatically takes care of the range portion.


If the issue persists please feel free to contact us here for assistance.

Scott Johnston
Network Engineer

1 comment: