SQL RPC vs. Windows RPC

This post has been republished via RSS; it originally appeared at: SQL Server Support articles.

First published on MSDN on Dec 11, 2012


Question : “If one executes stored procedures using the RPC events mechanism (instead of Language events ), do any additional RPC ports need to be open (as is the case with SSIS )?

Configuring the Windows Firewall to Allow SQL Server Access - http://msdn.microsoft.com/en-us/library/cc646023(v=sql.100).aspx



Answer : This confusion is introduced by "name overloading", i.e "RPC" (or Remote Procedure Calls) being used to designate multiple technologies that have nothing to do with each other. The "RPC" naming in SQL Server came from Sybase and it represents a type of "formatting" of the query inside a TDS packet before it is sent over the wire to SQL Server. RPC events differ from Language events in that the latter are simple, plain text submitted to SQL Server for parsing as is, while the former are “pre-formatted" a bit by the driver/provider (OLEDB, ODBC, SNAC, JDBC, etc.) and SQL Server has to do a bit less work (thus a small performance gain on the server). All this happens strictly at the TDS protocol level (SQL Server SNI layer performs it) to which anything outside of SQL Server is oblivious. TDS (Tabular Data Stream) is an Application-Layer protocol in the OSI Model and is used by SQL Server and client drivers/providers to exchange information.

Note: RPC events show up as RPC:Starting/RPC:Completed events in Profiler or Xevents. Language events show up as SQL:BatchStarting/SQL:BatchCompleted events in Profiler or Xevent.

The RPC protocol used in Windows on the other hand is a completely different technology. It is an interprocess communication mechanism (IPC) that allows applications to talk to each other over the network (or locally). It is a Sessions-layer protocol in the OSI Model . Here is a place to start http://msdn.microsoft.com/en-us/library/windows/desktop/aa378651(v=vs.85).aspx

Summary : One does not need to enable any ports for the Windows RPC protocol to allow SQL Server to use RPC formatting calls.

Namaste!

Joseph

Leave a Reply

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.