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) and SQL Server has to do a bit less work (thus a small performance gain on the server). All this happens strictly at TDS protocol (SQL Server SNI layer performs it) to which anything outside of SQL Server is oblivious.

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). Here is a place to start http://msdn.microsoft.com/en-us/library/windows/desktop/aa378651(v=vs.85).aspx

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

Namaste!

Joseph