Server Is Not Configured for RPC | Explained and Solved
Encountering Msg 7411, Level 16 or the “server is not configured for RPC” error in SQL Server often indicates a missing “RPC out” activation on the linked server where you’re attempting to execute code.
Therefore, enabling “RPC out” on a linked server is the secret sauce for avoiding such errors. Follow the steps in this article, and you’ll be smoothly executing stored procedures across linked servers like a pro.
What Is RPC in Linked Server?
RPC stands for Remote Procedure Call, which is a protocol used to allow a program to execute code on a remote system as if it were local. In the context of linked servers in a database management system, RPC in linked server refers to the ability to execute stored procedures or functions that reside on a remote server.
When setting up a linked server in a database environment, you can configure it to allow RPC. This enables you to call stored procedures or functions located on the linked server as if they were local objects within your own database. This functionality is commonly used in distributed database systems.
By enabling RPC in linked servers, you can perform various tasks such as querying remote data, executing remote procedures, and integrating data from multiple sources seamlessly within your database environment.
RPC | Enables remote procedure calls (RPC) from the specified server. |
RPC Out | Enables RPC to the specified server. |
Why Am I Getting the ‘Server Is Not Configured for RPC’ Error?
Encountering an error message such as ‘Server ‘SERVERNAME’ is not configured for RPC’ indicates potential issues with RPC configuration. One crucial check involves ensuring that the linked server permits RPC.
This can be verified by inspecting the linked server properties, specifically the Server Options tab, where options for RPC and RPC Out can be found. Setting RPC Out to True is imperative for executing a stored procedure located on the linked server.
How to Check If RPC Is Enabled?
To verify if the RPC service is operational on a remote machine, navigate to Start, then Run, and type “services.msc”. From there, confirm if the Remote Procedure Call service is active.
If you want to inspect the RPC output setting using SQL code, here’s what to execute:
SELECT
is_rpc_out_enabled AS RPC_Output_Enabled
FROM sys.servers
WHERE name = ' TargetServer';
If the output is ‘0’, it means RPC is not enabled.
How to Enable RPC in SQL Server?
If RPC is not listed in the STATUS column of the sp_helpserver command output, it signifies that RPC is not enabled on the server. To rectify this, the following commands can be used:
exec sp_serveroption @server=’MYPROD’, @optname=’rpc’, @optvalue=’TRUE’
exec sp_serveroption @server=’MYPROD’, @optname=’rpc out’, @optvalue=’TRUE’
Frequently Asked Questions
What is RPC event in SQL Server?
In SQL Server, an RPC event refers to a Remote Procedure Call event. These events occur when a client application calls a stored procedure or executes a batch of Transact-SQL statements on the server remotely, typically over a network connection.
Are there any risks associated with enabling RPC on a server?
Enabling RPC introduces potential security risks, as it opens up the server to remote access and execution of procedures.
Conclusion
By addressing RPC and RPC out configuration issues and ensuring proper settings on the linked server, the execution of stored procedures to and from linked servers can proceed smoothly. Also, it eliminates the chances of getting a “service is not configured for RPC” error. That’s about it. Thanks for tuning in!