Risoluzione dei problemi di scalabilità orizzontaleTroubleshooting Scale Out

SSIS Scale Out implica communtication tra SSISDB, servizi di scala Out Master e scala il lavoro.SSIS Scale Out involves communtication among SSISDB, Scale Out Master service and Scale Out Worker service. In alcuni casi, la comunicazione è interrotta a causa di errori di configurazione, mancanza di autorizzazioni di accesso e per altri motivi.Sometimes, the communication is broken due to configuration mistakes, lack of access permissions and other reasons. Questo documento consente di risolvere i problemi relativi alla configurazione orizzontale.This document helps you to troubleshoot your Scale Out configuration.

Per analizzare i problemi riscontrati, seguire questa procedura uno alla volta finché non viene risolto il problema.To investigate the symptoms you encounter, follow the steps below one by one until your problem is resolved.

SintomiSymptoms

Scala Out Master non è possibile connettersi a SSISDB.Scale Out Master cannot connect to SSISDB.

Proprietà master non è possibile visualizzare in scala Out Manager.Master properties cannot show in Scale Out Manager.

Proprietà master non sono state compilate [SSISDB]. [catalog]. [master_properties]Master properties are not filled in [SSISDB].[catalog].[master_properties]

SoluzioneSolution

Passaggio 1: Verificare se orizzontale è abilitata.Step 1: Check if Scale Out is enabled.

Fare doppio clic su SSISDB nodo in Esplora oggetti di SQL Server Management Studio e controllo è abilitata la funzionalità orizzontale.Right-click SSISDB node in the object explorer of SSMS and check Scale Out feature is enabled.

È scalabile abilitato

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

Passaggio 2: Verificare se il nome di Sql Server specificato nel file di configurazione di scala Out Master sia corretto e riavviare il servizio di scala Out Master.Step 2: Check if Sql Server name specified in Scale Out Master configuration file is correct and restart Scale Out Master service.

SintomiSymptoms

Scala il lavoro non è possibile connettersi al scala Out MasterScale Out Worker cannot connect to Scale Out Master

Scala il lavoro non viene visualizzato dopo averlo aggiunto in scala Out ManagerScale Out Worker does not show after adding it in Scale Out Manager

Scala il lavoro non viene visualizzato in [SSISDB]. [catalog]. [worker_agents]Scale Out Worker does not show in [SSISDB].[catalog].[worker_agents]

Servizio scala Out Worker è in esecuzione, mentre è in linea scala Out lavoroScale Out Worker service is running, while Scale Out Worker is offline

SoluzioniSolutions

Controllare i messaggi di errore nel registro servizio scala Out lavoro <driver>: \Users\[account che esegue il servizio di lavoro]\AppData\Local\SSIS\Cluster\Agent.Check the error messages in Scale Out Worker service log under <driver>:\Users\[account running worker service]\AppData\Local\SSIS\Cluster\Agent.

CaseCase

EndpointNotFoundException: Si è verificato 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.

Passaggio 1: Verificare se il numero di porta specificato nel file di configurazione del servizio di scala Out Master sia corretto e riavviare il servizio di scala Out Master.Step 1: Check if the port number specified in Scale Out Master service configuration file is correct and restart Scale Out Master service.

Passaggio 2: Verificare se l'endpoint master specificato nella configurazione del servizio scala Out lavoro sia corretto e riavviare il servizio di scala il lavoro.Step 2: Check if the master endpoint specified in Scale Out Worker service configuration is correct and restart Scale Out Worker service.

Passaggio 3: Verificare se la porta firewall è aperta nel nodo scala Out Master.Step 3: Check if firewall port is open on Scale Out Master node.

Passaggio 4: Risolvere altri problemi di connessione tra nodo di scala Out Master e scala il lavoro.Step 4: Resolve any other connection issues between Scale Out Master node and Scale Out Worker node.

CaseCase

System.ServiceModel.Security.SecurityNegotiationException: Impossibile stabilire una relazione di trust per il canale sicuro SSL/TLS con l'autorità '[nome macchina]: [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. ---> AuthenticationException: il certificato remoto non è valido in base alla procedura di convalida.---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.

Passaggio 1: Installare scala Out Master certificato all'archivio certificati radice del computer locale nel nodo scala Out lavoro se non è ancora stato installato e riavviare il servizio di scala il lavoro.Step 1: Install Scale Out Master certificate to Root certificate store of local machine on Scale Out Worker node if not installed yet and restart Scale Out Worker service.

Passaggio 2: Controllare se il nome host nell'endpoint master viene incluso nel certificato CN della scala Out Master.Step 2: Check if the host name in master endpoint is included in the CNs of Scale Out Master certificate. In caso contrario, reimpostare l'endpoint master nel file di configurazione di scala il lavoro e riavviare il servizio di scala il lavoro.If not, reset the master endpoint in Scale Out Worker configuration file and restart Scale Out Worker service.

Nota

Se non è possibile modificare il nome host dell'endpoint master a causa delle impostazioni DNS, è necessario modificare il certificato di scala Out Master.If it is not possible to change the host name of master endpoint due to DNS settings, you have to change the Scale Out Master certificate. Vedere gestire certificati in SSIS Scale Out.See Deal with certificates in SSIS Scale Out.

Passaggio 3: Controllare se l'identificazione personale del master specificato nella configurazione di scala Out lavoro corrispondente all'identificazione personale del certificato di scala Out Master.Step 3: Check if the master thumbprint specified in Scale Out Worker configuration matches the thumbprint of Scale Out Master certificate.

CaseCase

System.ServiceModel.Security.SecurityNegotiationException: Impossibile stabilire un canale sicuro per SSL/TLS con l'autorità '[nome macchina]: [porta]'.System.ServiceModel.Security.SecurityNegotiationException: Could not establish secure channel for SSL/TLS with authority '[Machine Name]:[Port]'. ---> System.NET. WebException: la richiesta è stata interrotta: Impossibile creare un canale protetto SSL/TLS.---> System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel.

Passaggio 1: Verificare se l'account che esegue servizio scala Out Worker ha accesso al certificato scala il lavoro tramite il comando riportato di seguito.Step 1: Check if the account running Scale Out Worker service has access to Scale Out Worker certificate by the command below.

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

Se l'account non dispone di accesso, concedere usando il comando seguente e riavviare il servizio di scala il lavoro.If the account does not have access, grant by the command below 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}

CaseCase

MessageSecurityException: La richiesta HTTP vietata con lo schema di autenticazione client 'Anonymous'.System.ServiceModel.Security.MessageSecurityException: The HTTP request was forbidden with client authentication scheme 'Anonymous'. ---> System.NET. WebException: il server remoto ha restituito un errore: (403) accesso negato.---> System.Net.WebException: The remote server returned an error: (403) Forbidden.

Passaggio 1: Installare scala Out lavoro certificato all'archivio certificati radice del computer locale nel nodo scala Out Master se non è ancora stato installato e riavviare il servizio di scala il lavoro.Step 1: Install Scale Out Worker certificate to Root certificate store of local machine on Scale Out Master node if not installed yet and restart Scale Out Worker service.

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

Passaggio 3: Configurare Schannel per non inviare l'elenco di autorità di certificazione radice attendibili durante il processo di handshake TLS/SSL, aggiungendo la voce del Registro di sistema seguente nel nodo scala Out Master.Step 3: Configure Schannel to no longer send the list of trusted root certification authorities during the TLS/SSL handshake process, by adding the registry entry below on Scale Out Master node.

Hkey_local_machine\system\currentcontrolset\control\securityproviders\schannel.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

Nome valore: SendTrustedIssuerListValue name: SendTrustedIssuerList

Tipo di valore: REG_DWORDValue type: REG_DWORD

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

CaseCase

CommunicationException: Si è verificato un errore durante la richiesta HTTP con https://[nome macchina]: [porta]ClusterManagement /.System.ServiceModel.CommunicationException: An error occurred while making the HTTP request to https://[Machine Name]:[Port]/ClusterManagement/. È possibile che il certificato del server non è configurato correttamente con HTTP. SYS nel caso HTTPS.This could be due to the fact that the server certificate is not configured properly with HTTP.SYS in the HTTPS case. Ciò potrebbe essere causato anche da una mancata corrispondenza di associazione di sicurezza tra il client e server.This could also be caused by a mismatch of the security binding between the client and the server.

Passaggio 1: Verificare se il certificato di scala Out Master è associato alla porta nell'endpoint master correttamente sul nodo principale con il comando seguente.Step 1: Check if Scale Out Master certificate is bound to the port in master endpoint correctly on master node with the command below. Controllare se l'hash del certificato visualizzato viene confrontata con identificazione personale del certificato di scala Out Master.Check if the certificate hash displayed is matched with Scale Out Master certificate thumbprint.

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

Se l'associazione non è corretto, ripristinare le impostazioni con i comandi seguenti e riavviare il servizio di scala il lavoro.If the binding is not correct, reset it with 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}

SintomiSymptoms

Non si avvia l'esecuzione in orizzontale.Execution in Scale Out does not start.

SoluzioneSolution

Verificare lo stato dei computer che si è scelto di eseguire il pacchetto in [SSISDB]. [catalog]. [worker_agents].Check the status of the machines you selected to run the package in [SSISDB].[catalog].[worker_agents]. Almeno un lavoro deve essere online e abilitato.At least one worker must be online and enabled.

SintomiSymptoms

Pacchetti eseguiti correttamente, ma nessun messaggio registrato.Packages run successfully, but there is no message logged.

SoluzioneSolution

Controllare se l'autenticazione di SQL Server è consentito da Sql Server che ospita SSISDB.Check if SQL Server Authentication is allowed by the Sql Server hosting SSISDB.

Nota

Se è stato modificato l'account per la registrazione orizzontale, vedere modificare l'Account per la scala Out registrazione e verificare la stringa di connessione utilizzata 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.

SintomiSymptoms

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

SoluzioneSolution

Più log di esecuzione è reperibile in TasksRootFolder configurato in WorkerSettings.config.More execution logs can be found under TasksRootFolder configured in WorkerSettings.config. Per impostazione predefinita è <driver>: \Users\[account]\AppData\Local\SSIS\ScaleOut\Tasks.By default, it is <driver>:\Users\[account]\AppData\Local\SSIS\ScaleOut\Tasks. Il [account] è l'account che esegue servizio scala Out Worker con il valore predefinito SSISScaleOutWorker140.The [account] is the account running Scale Out Worker service with default value SSISScaleOutWorker140.

Per individuare il log per l'esecuzione del pacchetto con [id esecuzione], eseguire il comando T-SQL seguente per ottenere il [id attività].To locate the log for the package execution with [execution id], execute the T-SQL command below to get the [task id]. Quindi, individuare la sottocartella denominata con [id attività] in TasksRootFolder. 1Then, find the subfolder named with [task id] under TasksRootFolder.1

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

1 questa query è per la risoluzione dei problemi relativi a scopo aprire e solo per modificare quando lo scenario di registrazione/diagnostica di scala i thread di lavoro è stato migliorato in futuro.1 This query is for troubleshooting purpose only and open to change when the logging/diagnostic scenario for Scale Out Worker is improved in the future.