Share via


Error Messages of SQL Server 2005 Start Up Failure

SQL Server 2005 could fail to bring up due to various causes, there are several great blogs that talk about different reason:

https://blogs.msdn.com/sql_protocols/archive/2006/01/10/511330.aspx

https://blogs.msdn.com/sql_protocols/archive/2005/10/31/487090.aspx

https://blogs.msdn.com/sql_protocols/archive/2005/10/14/480848.aspx

https://blogs.msdn.com/sql_protocols/archive/2006/03/09/546655.aspx

In this blog, I am trying to summary all possible root cause and give resolution tips.

 

Part I - Read correct error info and find the exact error status code.

 

Tipcally, you will see following sentence in ERRORLOG if server fail to start:

2006-04-20 18:42:26.10 Server Error: 26055, Severity: 16, State: 1.
2006-04-20 18:42:26.10 Server The SQL Server failed to initialize VIA support library [QLVipl.dll]. This normally indicates the VIA support library does not exist or is corrupted. Please repair or disable the VIA network protocol. Error: 0x7e.

2006-04-20 18:42:26.15 Server Error: 17182, Severity: 16, State: 1.
2006-04-20 18:42:26.15 Server TDSSNIClient initialization failed with error 0x7e, status code 0x60.

2006-04-20 18:42:26.15
. Server Error: 17182, Severity: 16, State: 1.
2006-04-20 18:42:26.15 Server TDSSNIClient initialization failed with error 0x7e, status code 0x1.
2006-04-20 18:42:26.15 Server Error: 17826, Severity: 18, State: 3.
2006-04-20 18:42:26.15 Server Could not start the network library because of an internal error in the network library. To determine the cause, review the errors immediately preceding this one in the error log.
2006-04-20 18:42:26.15 Server Error: 17120, Severity: 16, State: 1.
2006-04-20 18:42:26.15 Server SQL Server could not spawn FRunCM thread. Check the SQL Server error log and the Windows event logs for information about possible related problems.

1. The *Pink* part is optional, which means, sometimes you will not see it, since it is specific error info that server dump only for certain scenarios. Therefore, if the pink part is avaliable, it is veryyo decriptive to tell you what was wrong with server, in this example, it indicate that server load VIA provider module fail since you might enabled VIA.

2. The *Blue* and *Green* parts are always present.

The *Green* Part is general error info, they occured in each fail scenario, you can tell from those keywords that I marked with underscore.

1) Error: 17182 ... status code 0x1 0x01 is general status code

2) Error: 17826, Severity: 18, State: 3 and statement

3) Error: 17120, Severity: 16, State: 1 and statement

Therefore, *Green* part is ignorable, or not key point for troubleshooting start up failure.

3. The *Blue* part is most important and the key to address your problem. To summary, when server start up fail,

Step 1: find the *first line* with " Error 17182 ";

Step 2: find the key words "TDSSNIClient initialization failed with error <xxx>" , <xxx> is the OS error, by typing " net helpmsg xxx", you will get clue. In above example, 0x7e = 126 (decimal )

C:>net helpmsg 126

The specified module could not be found.

Step 3: find the status code that followed: status code <xxx>, here is 0x60.

 

Part II- identify and resolve problem by mapping status code to specific problem.

 

1. TDSSNIClient initialization failed with error <xxx>, status code 0x3

This probably due to server fail to read the shared memory setting, go to sql server configuratin manager, check properties of shared memory in your sql instance.

2. TDSSNIClient initialization failed with error <xxx>, status code 0x4

This probably due to all protocols disabled on your server box, you need to enable at least one, shared memory/named pipe/TCP/VIA.

3. TDSSNIClient initialization failed with error <xxx>, status code 0xa

This probably due to your TCP protocol setting problem, go to sql server configuratin manager, check properties of TCP/IP, check whether you set invalid IP Address,port,any space around the address or port, etc.

4. TDSSNIClient initialization failed with error <xxx>, status code 0x8

This probably due to your TCP protocol setting problem, go to sql server configuratin manager, check properties of TCP/IP, check whether you set correct value of "Keep Alive", etc.

5. TDSSNIClient initialization failed with error <xxx>, status code 0x7

This probably due to your TCP protocol setting problem, go to sql server configuratin manager, check properties of TCP/IP, check whether you set correct value of "Keep Alive", it is supposed to be DWORD type.

6. TDSSNIClient initialization failed with error <xxx>, status code 0x9

Check whether registry key: HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerMSSQLServerSuperSocketNetLibTCP is still avaliable and if it somehow corrupt, please reinstall SQL Server to fix.

7. TDSSNIClient initialization failed with error <xxx>, status code 0x51

Check whether registry key: HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerMSSQLServerSuperSocketNetLibNP is still avaliable and if it somehow corrupt, please reinstall SQL Server to fix.

8. TDSSNIClient initialization failed with error <xxx>, status code 0xd

This probably due to your TCP protocol setting problem, go to sql server configuratin manager, check properties of TCP/IP, in *protocol* tab check whether you can see value of "Enabled" , "Listen All", "No Delay", etc.

9. TDSSNIClient initialization failed with error <xxx>, status code 0xe

This probably due to your TCP protocol setting problem, go to sql server configuratin manager, check properties of TCP/IP,in *Protocol* tab, check whether you can see value of "Listen All".

10. TDSSNIClient initialization failed with error <xxx>, status code 0x10

This probably due to your TCP protocol setting problem, go to sql server configuratin manager, check properties of TCP/IP, then firt you should see you "Listen All" in *Protocol* tab was set to 'yes', then go to *IPAddress* tab, in *IPAll* section,check whether you can see correct value of "TcpPort" or "TcpDynamicPort",no space around the value.

11. TDSSNIClient initialization failed with error <xxx>, status code 0x15

This probably due to your TCP protocol setting problem, especially when you enabled server listening on individual IP. go to sql server configuratin manager, check properties of TCP/IP, then firt you should see "Listen All" in *Protocol* tab was set to 'no', then go to *IPAddress* tab, in *IPxx*(the individual IP section that you enabld) section,check whether you can see value of "Enalbed".

12. TDSSNIClient initialization failed with error <xxx>, status code 0x16

This probably due to your TCP protocol setting problem, especially when you enabled server listening on individual IP. go to sql server configuratin manager, check properties of TCP/IP, then firt you should see "Listen All" in *Protocol* tab was set to 'no', then go to *IPAddress* tab, in *IPxx*(the individual IP section that you enabld) section,check whether you can see value of "Active".

13. TDSSNIClient initialization failed with error <xxx>, status code 0x19

This probably due to your TCP protocol setting problem, especially when you enabled server listening on individual IP. go to sql server configuratin manager, check properties of TCP/IP, then firt you should see "Listen All" in *Protocol* tab was set to 'no', then go to *IPAddress* tab, in *IPxx*(the individual IP section that you enabld) section,check whether the correctvalue of "TcpPort" or "TcpDynamicPort" was displayed,no space around the port value,etc.

14. TDSSNIClient initialization failed with error <xxx>, status code 0x1d

This probably due to your TCP protocol setting problem, go to sql server configuratin manager, check properties of TCP/IP, then firt you should see "Listen All" in *Protocol* tab was set to 'no', then go to *IPAddress* tab, in *IPxx*(the individual IP section that you enabld) section,check whether the value of "IPAddress",no space around the value,etc.

15. TDSSNIClient initialization failed with error <xxx>, status code 0x1e

This probably due to you set duplicate IP Address, nomarlly, the windows error should give you error. go to sql server configuratin manager, check properties of TCP/IP, then firt you should see "Listen All" in *Protocol* tab was set to 'no', then go to *IPAddress* tab, see whether there are two identical IP Address in different *IPXX" section and both of them was enabled.

16. TDSSNIClient initialization failed with error <xxx>, status code 0x22

This probably due to server fail to read DAC( Dedicated Admin Connection ) port.Check Books Online for topic "use a dedicated admin connection".

17. TDSSNIClient initialization failed with error <xxx>, status code 0x23

This probably due to server fail to read DAC( Dedicated Admin Connection ) port, there are might be no DAC port or multiple ports configured. Check Books Online for topic "use a dedicated admin connection".

18.TDSSNIClient initialization failed with error <xxx>, status code 0x35

This is typical error for NP Setting,go to sql server configuratin manager, check properties of Named Pipe, see whether the correct value of "Enabled" and "PipeName" was populated, any space around pipe name, etc.

19.TDSSNIClient initialization failed with error <xxx>, status code 0x36

This is typical error that server fail to read VIA setting if you enabled VIA.

The follow blog give the resolution for situations that no VIA support on the box but it was enabled.

https://blogs.msdn.com/sql_protocols/archive/2005/10/31/487090.aspx

However, this also could be hit even have VIA support and enabled.

Hence, to address the problem,

First, you need to know whether you want to use VIA and already installed VIA driver on your box,if so, go to sql server configuratin manager, check properties of VIA, see whether correct value of "Listen Info" , "Default Port", "Enabled" was displayed, any space around the value, etc.

Secondly, if you have no VIA driver installed on the machine, just simply disable VIA and restart SQL Server to take effect.

20. TDSSNIClient initialization failed with error <xxx>, status code 0x60

This is most common error if have VIA protocol enabled but no VIA support. And normally, there is a special error info in front of this status code, like:

Error: 26055, Severity: 16, State: 1.
2006-04-20 18:42:26.10 Server The SQL Server failed to initialize VIA support library [QLVipl.dll]. This normally indicates the VIA support library does not exist or is corrupted. Please repair or disable the VIA network protocol. Error: 0x7e

So, it is much easier to figure out what was wrong, in such situation, just simply disable VIA or fix the corrupt library.

21. TDSSNIClient initialization failed with error <xxx>, status code 0x38

This is typical error that server fail to read server encryption setting. go to sql server configuratin manager, check properties of sql instance, see whether value "ForceEncryption" was populated.

22. TDSSNIClient initialization failed with error <xxx>, status code 0x50

Check https://blogs.msdn.com/sql_protocols/archive/2006/03/09/546655.aspx .

23. TDSSNIClient initialization failed with error <xxx>, status code 0x3A

This is typical error that server load provider library fail, if you came across this issue, recommand reinstall sql server.

24. TDSSNIClient initialization failed with error <xxx>, status code 0x90

Check whether registry key "ProtocolList" under HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerMSSQLServerSuperSocketNetLib is still avaliable, suggest reinstall SQL server to fully address the issue.

25. TDSSNIClient initialization failed with error <xxx>, status code 0x57

This is typical error for server initialize VIA protocol listening fail, check VIA propery and make sure the setting match the configuration in your VIA driver utility.

Summary:

Most of above errors are due to registry key messed up or permission issue cause sql server fail to read them, but, those should rarely happen if you did successful installation of SQL Server and follow appropriate protocols configuration.

One suggestion:

After you installed SQL Server, backup following registry setting:

1) HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL Server
2) HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServer

So, if you have problem, you can roll back to the default setting.

Troubleshoot Tips:

1) Follow part I to dig out the exact status code; then map the code to possible reason that described in part II.

2) Try to fix the issue by carefully checking protocol configuration.

3) Roll back to original configuration and retry or reinstall SQL Server.

 

MING LU

SQL Server Protocols

 

Disclaimer: This posting is provided "AS IS" with no warranties, and confers no rights

Comments

  • Anonymous
    June 17, 2006
    PingBack from http://peki.pjwstk.edu.pl/blog/TDSSNIClientInitializationFailedWithError0x34StatusCode0x1d.aspx

  • Anonymous
    June 19, 2006
    The comment has been removed

  • Anonymous
    June 20, 2006
    I've been using SQL Server 2k5 for about 7 months without any problem. Then, when installing security updates from the last week along with SQL Server 2k5 SP1, i've recived an SP1 installation error and SQL Server no longer started.

    I'm pretty sure that there are no servers with the same name on the network.

    I'd got "Listen All" disabled, and only one IP was active.

    To solve this situation I've turned "Listen All" to on, on the "IPALL" I've set 1433 port, and SQL server started. I've also manually installed SP1 update, but still I can't set SQL Server to listen only on 1 IP

  • Anonymous
    March 19, 2007
    extremely helpful blog, thank you very much.

  • Anonymous
    February 05, 2008
    The comment has been removed

  • Anonymous
    March 04, 2008
    Hi, I am having the exact same problem right now i.e. the SQL service will not start when I disable "listen all".  I see two loopback IP's in the list - how do I remove one of them? Thanks!

  • Anonymous
    March 05, 2008
    Hi Chris,  SQL Server Configuration Manager doesn't support removing the IP, and it looks like disabling the extra loopback IP doesn't fix this problem.  The only way I know of to fix this problem is to manually remove the extra entry from the registry.  Be sure to make a backup of the area where you make changes to the registry before making any changes. Open regedit and go to the key: HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL Server"KeyForAppropriateInstance"MSSQLServerSuperSocketNetLibTcp You'll need to replace "KeyForAppropriateInstance" in that string. Then, delete just the key corresponding to the extra loopback interface.  On my machine, these keys are called IP1, IP2, IP3, etc.  Deleting either one of the extra loopback keys will work fine. After deleting that key, try starting the instance. Good luck! Dan

  • Anonymous
    June 14, 2008
    The comment has been removed

  • Anonymous
    June 14, 2008
    You closer to genius level than you may think--you knew where to look for the answer.  As Louis Pasteur said (translated from French, of course), "Chance favors the prepared mind".

  • Anonymous
    October 12, 2008
    OK I've just had to do this again, and since this seems to be the only complete (or nearly complete) reference on the net on how to fix it, i thought i'd update it! The fix to bind the SQL server to just one IP (listen all is NOT a proper fix) involves removing the second loopback instance in the SQL Server Configuration Manager, which you CAN do here without going in to the registry. The way to do it is to set the second loopback to enabled=false and then change the IP to 0.0.0.0 and restart the service. After this your SQL instances should bind to just the IP you want. Also, this fix allowed me to install SQL Server 2005 Express Edition Service pack 2 (KB 921896) which was failing every time prior to this.

  • Anonymous
    October 20, 2008
    You are a life saver mate! Thanks a million!!!

  • Anonymous
    December 31, 2008
    The comment has been removed

  • Anonymous
    December 31, 2008
    I installed another SQL Server Express instance based on the advice from this forum thread: http://social.msdn.microsoft.com/forums/en-US/sqldataaccess/thread/4d2771fc-8f8d-4485-bfbd-4f0772e6a470/ I checked to make sure that the settings on both instances were the same and the only difference was that the new instance only had the SM protocol enabled while the MYMOVIES instance also had NP and TCP. After disabling those additional protocols on the MYMOVIES instance, I now get error 0x2, status code 0x38.  The advice above is to check to see if ForceEncryption is populated.  That value is disabled in the properties for both instances. What else could I look into? Thanks, David

  • Anonymous
    January 02, 2009
    Well, after uninstalling and reinstalling again and making sure to disable NP and TCP before continuing with the rest of the My Movies installation, it worked.  I have no idea why, but at least I'm on my way again.

  • Anonymous
    March 12, 2009
    thanks, your post helped us to start the service!

  • Anonymous
    June 08, 2009
    PingBack from http://insomniacuresite.info/story.php?id=8901

  • Anonymous
    July 23, 2009
    multiple sql instances are installed to computer. mssqlserver             [sql2000 - msde] sql server (mssmlbiz)   [sql2005] sql server (sqlexpress) [sql2005] if either of the sql2005 instances are configured with just 'shared memory' network interface, the instance may be successfully 'stopped' and 'started'. however, once the network configurations are changed to include the following three protocols; a. shared memory b. named pipes c. tcp/ip further attempts to 'stop', then 'start' the sql2005 instance FAILS with the following found in sql server error log file. 2009-07-23 11:35:26.19 Server      Error: 26023, Severity: 16, State: 1. 2009-07-23 11:35:26.19 Server      Server TCP provider failed to listen on [ 'any' <ipv6> 0]. Tcp port is already in use. 2009-07-23 11:35:26.23 Server      Error: 17182, Severity: 16, State: 1. 2009-07-23 11:35:26.23 Server      TDSSNIClient initialization failed with error 0x271d, status code 0xa. 2009-07-23 11:35:26.23 Server      Error: 17182, Severity: 16, State: 1. 2009-07-23 11:35:26.23 Server      TDSSNIClient initialization failed with error 0x271d, status code 0x1. 2009-07-23 11:35:26.23 Server      Error: 17826, Severity: 18, State: 3. 2009-07-23 11:35:26.23 Server      Could not start the network library because of an internal error in the network library. To determine the cause, review the errors immediately preceding this one in the error log. 2009-07-23 11:35:26.23 Server      Error: 17120, Severity: 16, State: 1. 2009-07-23 11:35:26.23 Server      SQL Server could not spawn FRunCM thread. Check the SQL Server error log and the Windows event logs for information about possible related problems. i had assumed that when sqlserver 2005 is installed as a 'named instance' (as it is on this machine), the idea is that with each new instance restart, the system is somehow supposed to dynamically assign a next valid (not-otherwise-used) tcp port number to use for the socket connections. how is it then that this dynamic port assignment mechanism is suggesting to use a port number that is already being used? how would i go about troubleshooting this, please step by step, as i am not a networking expert. thanks.

  • Anonymous
    July 31, 2009
    It is the error: 2006-04-20 18:42:26.10 Server      The SQL Server failed to initialize VIA support library [QLVipl.dll]. This normally indicates the VIA support library does not exist or is corrupted. Please repair or disable the VIA network protocol. Error: 0x7e. Disabled the protocol VIA from SQL ServerConfiguration Manager or Repair the dll QLVipl.dll.

  • Anonymous
    February 25, 2010
    Hey This works beautifully! Thanks!

  • Anonymous
    April 27, 2010
    Was getting error The SQL Server (SQL2005) service terminated with service-specific error 126 (0x7E). Disabling VIA protocol from SQL Server Configuration Manager worked great

  • Anonymous
    August 24, 2010
    Deleting one of the IP key in HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL Server"KeyForAppropriateInstance"MSSQLServerSuperSocketNetLibTcp helped me resolve the issue. All IP1/2/3... entries are disabled but still they affect the sever. Does any one have any idea why ? Why does deleting any one of the keys resolve the issue??

  • Anonymous
    September 04, 2011
    try this . open sql server confguration manager, edit TCP IP protocol properties , then clear  Dynamic port No  field. It will work.....