These problems can occur when you attempt to connect to a Network Name resource that is a name that is associated with a SQL server instance. SQL Server uses remapped pipe names.
By default, there is no scoping of server message block (SMB) resource names to virtual server names on a server cluster. Named pipe remapping provides scoping for pipe names. This makes it possible to run two instances of a program that use a well-known pipe name on the same computer under different virtual servers. The issue occurs because these specific network names redirect the named pipe connections and can cause connectivity issues for anything other than SQL Server.
Network Name resources that are created by the SQL Server Installation Wizard set the following registry value:
HKEY_LOCAL_MACHINE\Cluster\Resources\%ResourceGUID%\Parameters\RemapPipeNames
The RemapPipeNames property controls how named pipes are opened on the network that is managed by the Network Name resource. The following table summarizes the attributes of the RemapPipeNames property.
Attribute | Value |
---|
Data type | DWORD |
Access | Read/write |
Status | Optional |
Structure | CLUSPROP_DWORD |
Minimum | FALSE |
Maximum | TRUE |
Default | FALSE |
If RemapPipeNames is set to TRUE, named pipes are always opened by using local pipe names. For example, if a client opens \\
VSNAME\pipe\SQL\Query (where
VSNAME is a network name with RemapPipeNames set), the client actually opens \\.\pipe\$$\
VSNAME\SQL\Query.
SQL Server 2000 on a cluster listens on this pipe name rather than the default. Therefore, you can only connect to the server by using the virtual server name. If you use the node name, it does not work (as with TCP/IP).
If you create a Network Name resource manually, RemapPipeNames is set to FALSE by default. However, when SQL Server Setup creates the Network Name resource, it sets the RemapPipeNames flag to true.
If a request to access a named pipe arrives at the server through the SQL Server virtual server name, this remapping of the pipe name takes place. If the pipe is a system pipe that is not associated with the virtual server, the remapping of the pipe name still takes place and does not connect (generating the RPC error). This occurs because the process for the system is not listening on the remapped pipe as SQL Server is.
The SQL Network Name resource should be used only for SQL Server connectivity. Clients should not attempt to connect to this name for other functions (for example, file shares or the Computer Management utility), and no other non-SQL Server resources should be dependent on this Network Name resource.