You receive error messages if the VIA protocol is enabled when you restart the SQL Server 2008 service or the SQL Server 2008 R2 service or when you upgrade an instance of SQL Server 2005 to SQL Server 2008 or to SQL Server 2008 R2


Symptoms


In Microsoft SQL Server 2008 or Microsoft SQL Server 2008 R2, you experience one of the following problems.

Problem 1

When you enable the Virtual Interface Adapter (VIA) protocol and then you restart the SQL Server service, you receive the following error message:
The request failed or the service did not respond in a timely fashion. Consult the event log or other applicable error logs for details.

Problem 2

When you upgrade an instance of SQL Server 2005 that has the VIA protocol enabled to SQL Server 2008 or to SQL Server 2008 R2, the upgrade is unsuccessful. Additionally, you experience the following symptoms during the upgrade.
  • You receive the following error message:
    Wait on the Database Engine recovery handle failed. Check the SQL Server error log for potential causes.
    Note This error message is also logged in the setup log files. By default, the setup log files are located in the following folder:
    %programfiles%\Microsoft SQL Server\100\Setup Bootstrap\LOG
  • The following error message is logged in the SQL Server error log file:
    Server VIA provider is ready for clients to connect to [ QLogic:10001 ].
    Note The text in brackets may be different.
  • One of the following error messages is logged in the SQL Server error log file:

    Error message 1
    The parameter is incorrect.
    Error message 2
    Process ProcessID generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.
    Error message 3
    Exception raised in initCM.

Cause


This issue occurs for one of the following reasons:
  • The connection affinity mask is not set for the VIA protocol.
  • The connection affinity mask that is set for the VIA protocol does not match the configuration of the computer.

Resolution


To resolve this issue, set a connection affinity mask for the VIA protocol that matches the configuration of the computer. For more information about how to determine the connection affinity mask on the computer, click the following article number to view the article in the Microsoft Knowledge Base:

299641 Understanding how to configure a SQL Server connection affinity mask

To set a connection affinity mask, use the appropriate method for your situation.

Method 1

If you experience this issue after you enable the VIA protocol in SQL Server 2008, follow these steps to set the connection affinity mask for the VIA protocol:
  1. Click Start, point to All Programs, point to Microsoft SQL Server 2008, point to Configuration Tools, and then click SQL Server Configuration Manager.
  2. In the left pane, expand SQL Server Network Configuration, and then click Protocols for InstanceName.
  3. In the right pane, right-click VIA, and then click Enable. When you are prompted, click OK.
  4. Right-click VIA, and then click Properties. In the Listen Info box, type a connection affinity mask that matches the configuration of the computer, and then click OK.
  5. In the left pane, click SQL Server Services.
  6. In the right pane, right-click SQL Server InstanceName, and then click Restart.

Method 2

If you have an existing SQL Server 2005 installation that has the VIA protocol enabled, but you do not specify a connection affinity mask for the VIA protocol or you specify a connection affinity mask that does not match the configuration of the computer, follow these steps to avoid the problem when you upgrade to SQL Server 2008:
  1. Click Start, point to All Programs, point to Microsoft SQL Server 2005, point to Configuration Tools, and then click SQL Server Configuration Manager.
  2. In the left pane, expand SQL Server 2005 Network Configuration, and then click Protocols for InstanceName.
  3. In the right pane, right-click VIA, and then click Disable. When you are prompted, click OK.
  4. Upgrade the instance to SQL Server 2008.
  5. After the upgrade is complete, in SQL Server Configuration Manager, expand SQL Server Network Configuration, and then click Protocols for InstanceName.
  6. In the right pane, right-click VIA, and then click Enable. When you are prompted, click OK.
  7. Right-click VIA, and then click Properties. In the Listen Info box, type a connection affinity mask that matches the configuration of the computer, and then click OK.
  8. In the left pane, click SQL Server Services.
  9. In the right pane, right-click SQL Server InstanceName, and then click Restart.

Method 3

If you experience this issue when you upgrade an instance of SQL Server 2005 to SQL Server 2008, follow these steps to repair the installation:
  1. Click Start, point to All Programs, point to Microsoft SQL Server 2008, point to Configuration Tools, and then click SQL Server Configuration Manager.
  2. In the left pane, expand SQL Server 2008 Network Configuration, and then click Protocols for InstanceName.
  3. Right-click VIA, and then click Properties. In the Listen Info box, type a connection affinity mask that matches the configuration of the computer, and then click OK.
  4. Locate the installation media of SQL Server 2008, and then run the Setup program.
  5. When the SQL Server Installation Center dialog box appears, click Maintenance, and then click Repair.
  6. Select the appropriate instance of SQL Server.
  7. Follow the steps to repair the instance of SQL Server.
  8. Open SQL Server Configuration Manager.
  9. In the left pane, expand SQL Server Network Configuration, and then click Protocols for InstanceName.
  10. In the right pane, right-click VIA, and then click Enable. When you are prompted, click OK.
  11. In the left pane, click SQL Server Services.
  12. In the right pane, right-click SQL Server InstanceName, and then click Restart.

Status


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

More Information


The VIA protocol only works with VIA hardware that has the VIA driver installed. If you enable the VIA protocol on a computer that does not support the VIA protocol, the SQL Server service will not start. In SQL Server 2008, when you use the VIA protocol on a computer that supports the VIA protocol, a network reader thread is created for each port that is defined. You can restrict this thread to run on a defined set of CPUs by setting a connection affinity mask. If you enable the VIA protocol, but you do not specify a connection affinity mask, the SQL Server service will not start.