No Alias needed for Non-Default Port Number

  • I have set up several SQL Server machines and have been using TCP/IP with a non-default port number. The application server that I would setup would require the alias for it to make a connection to the database server. I have set up a new server with Windows 2003 R2 w/ SQL Server 2000 SP4. I have removed Named Pipes and left only TCP/IP with the port number being for example 5000. The application server that is also running Windows 2003 R2 does not have any SQL Server client tools installed and they were able to make an ODBC connection to the new database server wihtout an Alias. I did a netstat on the database server and found that it is connecting with TCP/IP and the non-default port number. I tried connecting to the database server from my workstation (XP) and found that it connected without setting up an alias. All is good, since it works, but I want to know what "fixed" it so that no Alias is required.

  • This was removed by the editor as SPAM

  • When the connection was specified on the application server, was the port specified in the connection string? For instance <server>,<port>? This is one way to establish the connection to a non-standard port without using an alias.

    Also, was this a default instance of SQL Server? If it was a named instance, then the SQL Server client software on Windows Server 2003 is able to handle named instances and will talk to the SQL Server Listener Service to determine what port to connect to.

     

    K. Brian Kelley
    @kbriankelley

  • No port is specified just the database name, instance name(it is a named instance not a default instance), and username/password.  I will look for some articles on the server figuring out which port by itself, but if you have any links to send me to it would be much appreciated

     

  • Behavior for a default instance and named instance are totally different.

    For a default instance, the server is assumed to be listening on tcp/1433. Therefore, if a default instance is installed but it is NOT listening on the default port, either an alias has to be created or the client has to be told what port the server is listening on.

    For a named instance, the server is assumed to be listening on a dynamic port that could change any time SQL Server is restarted. As a result, if a client is told to communicate with a named instance, it will contact the SQL Server listener service on the server at udp/1434. It will find out how to talk to the named instance because the SQL Server listener service will tell the client what port the server is listening on. That's why for a named instance you don't have to specify the port or an alias.

    K. Brian Kelley
    @kbriankelley

  • Thank you for the explanation

     

Viewing 6 posts - 1 through 5 (of 5 total)

You must be logged in to reply to this topic. Login to reply