Risolvere i problemi di Scale OutTroubleshoot Scale Out

SSIS Scale Out richiede la comunicazione tra il database del catalogo SSIS SSISDB, il servizio Scale Out Master e il servizio Scale Out Worker.SSIS Scale Out involves communication among the SSIS Catalog database SSISDB, the Scale Out Master service, and the Scale Out Worker service. In alcuni casi la comunicazione viene interrotta a causa di errori di configurazione, mancanza di autorizzazioni di accesso e per altri motivi.Sometimes this communication breaks due to configuration mistakes, lack of access permissions, and other reasons. Questo articolo contiene le informazioni necessarie per risolvere i problemi relativi alla configurazione di Scale Out.This article helps you to troubleshoot issues with your Scale Out configuration.

Per analizzare i sintomi riscontrati, seguire uno alla volta i passaggi illustrati di seguito fino alla risoluzione del problema.To investigate the symptoms you encounter, follow the steps below one by one until your problem is resolved.

Errore di Scale Out MasterScale Out Master fails

SintomiSymptoms

  • Scale Out Master non si connette al database SSISDB.Scale Out Master cannot connect to SSISDB.

  • Non è possibile visualizzare le proprietà master in Scale Out Manager.Master properties cannot show in Scale Out Manager.

  • Le proprietà master non vengono popolate nella vista [catalog].[master_properties].Master properties are not populated in the view [catalog].[master_properties].

SoluzioneSolution

  1. Verificare che Scale Out sia abilitato.Check whether Scale Out is enabled.

    Fare clic con il pulsante destro del mouse su SSISDB in Esplora oggetti di SSMS e selezionare La funzionalità Scale Out è abilitata.In SSMS, in Object Explorer, right-click SSISDB and check Scale Out feature is enabled.

    Verificare che Scale Out sia abilitato

    Se il valore della proprietà è False, abilitare Scale Out chiamando la stored procedure [catalog].[enable_scaleout].If the property value is False, enable Scale Out by calling the stored procedure [catalog].[enable_scaleout].

  2. Verificare che il nome SQL Server specificato nel file di configurazione di Scale Out Master sia corretto e riavviare il servizio Scale Out Master.Check whether the SQL Server name specified in the Scale Out Master configuration file is correct, and restart the Scale Out Master service.

Errore di Scale Out WorkerScale Out Worker fails

SintomiSymptoms

  • Scale Out Worker non si connette a Scale Out Master.Scale Out Worker cannot connect to Scale Out Master.

  • Dopo l'aggiunta in Scale Out Manager, Scale Out Worker non viene visualizzato.Scale Out Worker does not show after adding it in Scale Out Manager.

  • Scale Out Worker non viene visualizzato nella vista [catalog].[worker_agents].Scale Out Worker does not show in the view [catalog].[worker_agents].

  • Il servizio Scale Out Worker è in esecuzione, ma Scale Out Worker è offline.The Scale Out Worker service is running, but the Scale Out Worker is offline.

SoluzioneSolution

Controllare i messaggi di errore nel log del servizio Scale Out Worker in \<drive\>:\Users\\*[account running worker service]*\AppData\Local\SSIS\Cluster\Agent.Check the error messages in the Scale Out Worker service log under \<drive\>:\Users\\*[account running worker service]*\AppData\Local\SSIS\Cluster\Agent.

Nessun endpoint in ascoltoNo endpoint listening

SintomiSymptoms

"System.ServiceModel.EndpointNotFoundException: Non è disponibile alcun endpoint in ascolto su https://[NomeComputer]:[Porta]/ClusterManagement/ in grado di accettare il messaggio.""System.ServiceModel.EndpointNotFoundException: There was no endpoint listening at https://[MachineName]:[Port]/ClusterManagement/ that could accept the message."

SoluzioneSolution

  1. Verificare che il numero di porta specificato nel file di configurazione del servizio Scale Out Master sia corretto e riavviare il servizio Scale Out Master.Check whether the port number specified in the Scale Out Master service configuration file is correct, and restart the Scale Out Master service.

  2. Verificare che l'endpoint master specificato nel file di configurazione del servizio Scale Out Worker sia corretto e riavviare il servizio Scale Out Worker.Check whether the master endpoint specified in the Scale Out Worker service configuration is correct, and restart the Scale Out Worker service.

  3. Verificare che la porta del firewall sia aperta nel nodo Scale Out Master.Check whether the firewall port is open on the Scale Out Master node.

  4. Risolvere altri eventuali problemi di connessione tra il nodo Scale Out Master e il nodo Scale Out Worker.Resolve any other connection issues between the Scale Out Master node and the Scale Out Worker node.

Impossibile stabilire una relazione di trustCould not establish trust relationship

SintomiSymptoms

""System.ServiceModel.Security.SecurityNegotiationException: Impossibile stabilire una relazione di trust per il canale sicuro SSL/TLS con l'autorità '[Nome computer]:[Porta]'."""System.ServiceModel.Security.SecurityNegotiationException: Could not establish trust relationship for the SSL/TLS secure channel with authority '[Machine Name]:[Port]'."

"System.Net.WebException: Connessione sottostante chiusa: Impossibile stabilire una relazione di trust per il canale sicuro SSL/TLS.""System.Net.WebException: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel."

"System.Security.Authentication.AuthenticationException: Il certificato remoto non è stato ritenuto valido dalla procedura di convalida.""System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure."

SoluzioneSolution

  1. Installare il certificato di Scale Out Master nell'archivio radice dei certificati del computer locale nel nodo Scale Out Worker se il certificato non è ancora installato e riavviare il servizio Scale Out Worker.Install the Scale Out Master certificate to the Root certificate store of the local computer on the Scale Out Worker node, if the certificate is not yet installed, and restart the Scale Out Worker service.

  2. Verificare che il nome host nell'endpoint master sia incluso nei nomi comuni (CN) del certificato di Scale Out Master.Check whether the host name in the master endpoint is included in the CNs of the Scale Out Master certificate. In caso contrario, reimpostare l'endpoint master nel file di configurazione di Scale Out Worker e riavviare il servizio Scale Out Worker.If not, reset the master endpoint in the Scale Out Worker configuration file, and restart the Scale Out Worker service.

    Nota

    Se non è possibile modificare il nome host dell'endpoint master a causa di impostazioni DNS, sarà necessario modificare il certificato di Scale Out Master.If it's not possible to change the host name of the master endpoint due to DNS settings, you have to change the Scale Out Master certificate. Vedere Gestire i certificati per SSIS Scale Out.See Manage certificates for SSIS Scale Out.

  3. Verificare che l'identificazione personale master specificata nella configurazione di Scale Out Worker corrisponda all'identificazione personale del certificato di Scale Out Master.Check whether the master thumbprint specified in the Scale Out Worker configuration matches the thumbprint of the Scale Out Master certificate.

Impossibile stabilire un canale sicuroCould not establish secure channel

SintomiSymptoms

"System.ServiceModel.Security.SecurityNegotiationException: Impossibile stabilire un canale sicuro per SSL/TLS con l'autorità '[Nome computer]:[Porta]'.""System.ServiceModel.Security.SecurityNegotiationException: Could not establish secure channel for SSL/TLS with authority '[Machine Name]:[Port]'."

"System.Net.WebException: Richiesta annullata: Impossibile creare un canale sicuro SSL/TLS.""System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel."

SoluzioneSolution

Verificare che l'account che esegue il servizio Scale Out Worker abbia accesso al certificato di Scale Out Worker usando il comando seguente:Check whether the account running the Scale Out Worker service has access to the Scale Out Worker certificate by running the following command:

winhttpcertcfg.exe -l -c LOCAL_MACHINE\MY -s {CN of the worker certificate}

Se l'account non ha accesso, concederlo usando il comando seguente e riavviare il servizio Scale Out Worker.If the account does not have access, grant access by running the following command, and restart Scale Out Worker service.

winhttpcertcfg.exe -g -c LOCAL_MACHINE\My -s {CN of the worker certificate} -a {the account running Scale Out Worker service}

Richiesta HTTP non consentitaHTTP request forbidden

SintomiSymptoms

"System.ServiceModel.Security.MessageSecurityException: Richiesta HTTP non consentita con lo schema di autenticazione client 'Anonimo'.""System.ServiceModel.Security.MessageSecurityException: The HTTP request was forbidden with client authentication scheme 'Anonymous'."

"System.Net.WebException: Errore del server remoto: (403) Non consentito.""System.Net.WebException: The remote server returned an error: (403) Forbidden."

SoluzioneSolution

  1. Installare il certificato di Scale Out Worker nell'archivio radice dei certificati del computer locale nel nodo Scale Out Master se il certificato non è ancora installato e riavviare il servizio Scale Out Worker.Install the Scale Out Worker certificate to the Root certificate store of the local computer on the Scale Out Master node, if the certificate is not yet installed, and restart the Scale Out Worker service.

  2. Eseguire la pulizia dei certificati inutili nell'archivio radice dei certificati del computer locale nel nodo Scale Out Master.Clean up useless certificates in the Root certificate store of the local computer on the Scale Out Master node.

  3. Configurare Schannel in modo da non inviare più l'elenco delle autorità di certificazione radice attendibili durante il processo di handshake TLS/SSL aggiungendo la voce del Registro di sistema seguente nel nodo Scale Out Master.Configure Schannel to no longer send the list of trusted root certification authorities during the TLS/SSL handshake process by adding the following registry entry on the Scale Out Master node.

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

    Nome valore: SendTrustedIssuerListValue name: SendTrustedIssuerList

    Tipo valore: REG_DWORDValue type: REG_DWORD

    Dati valore: 0 (False)Value data: 0 (False)

  4. Se non è possibile pulire tutti i certificati non autofirmati come descritto nel passaggio 2, impostare il valore della chiave del Registro di sistema seguente su 2.If it is not possible to clean up all non-self-signed certificates as described in step 2, set the value of the following registry key to 2.

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

    Nome valore: ClientAuthTrustModeValue name: ClientAuthTrustMode

    Tipo valore: REG_DWORDValue type: REG_DWORD

    Dati valore: 2Value data: 2

Errore di richiesta HTTPHTTP request error

SintomiSymptoms

"System.ServiceModel.CommunicationException: Errore durante la richiesta HTTP a https://[NomeComputer]:[Porta]/ClusterManagement/. È possibile che il certificato server non sia configurato correttamente con HTTP.SYS nel caso HTTPS o che il binding di sicurezza tra il client e il server non corrisponda.""System.ServiceModel.CommunicationException: An error occurred while making the HTTP request to https://[Machine Name]:[Port]/ClusterManagement/. This could be due to the fact that the server certificate is not configured properly with HTTP.SYS in the HTTPS case. This could also be caused by a mismatch of the security binding between the client and the server."

SoluzioneSolution

  1. Verificare che il certificato di Scale Out Master sia associato correttamente alla porta nell'endpoint master nel nodo master eseguendo il comando seguente:Check whether the Scale Out Master certificate is bound to the port in the master endpoint correctly on the master node by running the following command:

    netsh http show sslcert ipport=0.0.0.0:{Master port}
    

    Verificare che l'hash del certificato visualizzato corrisponda all'identificazione personale del certificato di Scale Out Master.Check whether the certificate hash displayed matches the Scale Out Master certificate thumbprint. Se l'associazione non è corretta, reimpostarla eseguendo i comandi seguenti e riavviare il servizio Scale Out Worker.If the binding is not correct, reset the binding by running the following commands, and restart Scale Out Worker service.

    netsh http delete sslcert ipport=0.0.0.0:{Master port}
    netsh http add sslcert ipport=0.0.0.0:{Master port} certhash={Master certificate thumbprint} certstorename=Root  appid={random guid}
    

Impossibile aprire l'archivio certificatiCannot open certificate store

SintomiSymptoms

Alla connessione di Scale Out Worker a Scale Out Master, la convalida in Scale Out Manager non è riuscita generando il messaggio di errore "Non è possibile aprire l'archivio certificati nel computer".Validation fails when connecting a Scale Out Worker to the Scale Out Master in Scale Out Manager with the error message, "Cannot open certificate store on the machine."

SoluzioneSolution

  1. Eseguire Scale Out Manager come amministratore.Run Scale Out Manager as administrator. Se si apre Scale Out Manager con SSMS, è necessario eseguire SSMS come amministratore.If you open Scale Out Manager with SSMS, you have to run SSMS as administrator.

  2. Avviare il servizio Registro di sistema remoto nel computer, se non è in esecuzione.Start the Remote Registry service on the computer if it is not running.

Avvio dell'esecuzione impossibileExecution doesn't start

SintomiSymptoms

Non è possibile avviare l'esecuzione in Scale Out.Execution in Scale Out does not start.

SoluzioneSolution

Verificare lo stato dei computer selezionati per eseguire il pacchetto nella vista [catalog].[worker_agents].Check the status of the computers you selected to run the package in the view [catalog].[worker_agents]. È necessario che almeno un ruolo di lavoro sia online e abilitato.At least one worker must be online and enabled.

Nessun logNo log

SintomiSymptoms

I pacchetti vengono eseguiti correttamente, ma non vengono registrati messaggi.Packages run successfully, but there no messages are logged.

SoluzioneSolution

Verificare che l'autenticazione di SQL Server sia consentita dall'istanza di SQL Server che ospita il database SSISDB.Check whether SQL Server Authentication is allowed by the SQL Server instance that hosts SSISDB.

Nota

Se è stato modificato l'account per la registrazione di Scale Out, vedere Modificare l'account per la registrazione di Scale Out e verificare la stringa di connessione usata per la registrazione.If you have changed the account for Scale Out logging, see Change the Account for Scale Out Logging and verify the connection string used for logging.

I messaggi di errore non sono utiliError messages aren't helpful

SintomiSymptoms

I messaggi di errore nel report di esecuzione del pacchetto non sono sufficienti per la risoluzione del problema.The error messages in the package execution report are not sufficient for troubleshooting.

SoluzioneSolution

Sono disponibili più log di esecuzione in TasksRootFolder configurati in WorkerSettings.config.More execution logs can be found under the TasksRootFolder configured in WorkerSettings.config. Per impostazione predefinita, la cartella è \<drive\>:\Users\\[account]\AppData\Local\SSIS\ScaleOut\Tasks.By default, this folder is \<drive\>:\Users\\[account]\AppData\Local\SSIS\ScaleOut\Tasks. [account] indica l'account che esegue il servizio Scale Out Worker con il valore predefinito SSISScaleOutWorker140.The [account] is the account running the Scale Out Worker service, with default value SSISScaleOutWorker140.

Per individuare il log per l'esecuzione del pacchetto con [execution ID], eseguire il comando Transact-SQL seguente per ottenere il valore di [task ID.To locate the log for the package execution with [execution ID], execute the following Transact-SQL command to get the [task ID]. Quindi, individuare il nome della sottocartella contenente [task ID] in TasksRootFolder.Then, find the subfolder name that contains [task ID] under TasksRootFolder.

SELECT [TaskId]
FROM [SSISDB].[internal].[tasks] tasks, [SSISDB].[internal].[executions] executions 
WHERE executions.execution_id = *Your Execution Id* AND tasks.JobId = executions.job_id

Avviso

Questa query serve solo alla risoluzione dei problemi.This query is for troubleshooting purpose only. Le viste interne a cui si fa riferimento nella query devono poi essere modificate.The internal views referenced in the query are to change in the future.

Passaggi successiviNext steps

Per altre informazioni, vedere gli articoli seguenti relativi all'impostazione e alla configurazione di SSIS Scale Out:For more info, see the following articles about setting up and configuring SSIS Scale Out: