Sql-server – SQL Server was unable to communicate with the LaunchPad service

sql serversql-server-2016ssms

I have run the below code:

execute sp_configure 'external scripts enabled';

and it is giving me the output as:

name                    minimum maximum config_value    run_value
external scripts enabled    0    1       1              1

I have also started the launchpad services, still when I am running the below code:

exec sp_execute_external_script @language =N'R',   
@script=N'OutputDataSet<-InputDataSet',  
@input_data_1 =N'select 1+1 as SUMOutput'  
with result sets (([SUM Output] int not null));  
go 

It is throwing the error:

Msg 39011, Level 16, State 1, Line 7 SQL Server was unable to
communicate with the LaunchPad service. Please verify the
configuration of the service. Msg 11536, Level 16, State 1, Line 7
EXECUTE statement failed because its WITH RESULT SETS clause specified
1 result set(s), but the statement only sent 0 result set(s) at run
time.

I have SQL Server 2016 editon and the SQL Server Management Studio is 2017.
i have the following snippet of my services.
Services running

Best Answer

I had the same issue and I solved it by installing the Service Pack on top of the media installed R.

I think it is a related to install an old version of LaunchPad on an already updated SQL Server.

As per this Q&A

SQL Server LaunchPad "The service did not respond in a timely fashion" + No Log in ExtensibilityLog

My timeline.

  • My sql install was a semi-updated SP1.
  • My media was a stock SP1.
  • I installed R, wouldn't work (Restarted, same)
  • LaunchPad wouldn't start (Restarted, same)
  • Made sure the SQL user account was part of the R group
  • LauchPad would start but R wouldn't work. (Restarted, same)
  • Updated to SP2 (Restarted)
  • R worked.
  • Updated to SP2 CU4 (Restarted)
  • R worked.

My testing script

    EXEC sp_execute_external_script
                      @language =N'R',
                      @script=N'OutputDataSet<-InputDataSet',
                      @input_data_1 =N'SELECT 1 AS hello'
                      WITH RESULT SETS (([Hello World] INT));
                        GO