Risolvere i problemi di Scale Out

Si applica a: SQL Server SSIS Integration Runtime in Azure Data Factory

SSIS Scale Out richiede la comunicazione tra il database del catalogo SSIS SSISDB, il servizio Scale Out Master e il servizio Scale Out Worker. In alcuni casi la comunicazione viene interrotta a causa di errori di configurazione, mancanza di autorizzazioni di accesso e per altri motivi. Questo articolo contiene le informazioni necessarie per risolvere i problemi relativi alla configurazione di Scale Out.

Per analizzare i sintomi riscontrati, seguire uno alla volta i passaggi illustrati di seguito fino alla risoluzione del problema.

Errore di Scale Out Master

Sintomi

  • Scale Out Master non si connette al database SSISDB.

  • Non è possibile visualizzare le proprietà master in Scale Out Manager.

  • Le proprietà master non vengono popolate nella vista [catalog].[master_properties].

Soluzione

  1. Verificare che Scale Out sia abilitato.

    Fare clic con il pulsante destro del mouse su SSISDB in Esplora oggetti di SSMS e selezionare La funzionalità Scale Out è abilitata.

    Verificare che Scale Out sia abilitato

    Se il valore della proprietà è False, abilitare Scale Out chiamando la 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.

Errore di Scale Out Worker

Sintomi

  • Scale Out Worker non si connette a Scale Out Master.

  • Dopo l'aggiunta in Scale Out Manager, Scale Out Worker non viene visualizzato.

  • Scale Out Worker non viene visualizzato nella vista [catalog].[worker_agents].

  • Il servizio Scale Out Worker è in esecuzione, ma Scale Out Worker è offline.

Soluzione

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

Nessun endpoint in ascolto

Sintomi

"System.ServiceModel.EndpointNotFoundException: Non è disponibile alcun endpoint in ascolto su https://[NomeComputer]:[Porta]/ClusterManagement/ in grado di accettare il messaggio."

Soluzione

  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.

  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.

  3. Verificare che la porta del firewall sia aperta nel nodo Scale Out Master.

  4. Risolvere altri eventuali problemi di connessione tra il nodo Scale Out Master e il nodo Scale Out Worker.

Impossibile stabilire una relazione di trust

Sintomi

""System.ServiceModel.Security.SecurityNegotiationException: Impossibile stabilire una relazione di trust per il canale sicuro SSL/TLS con l'autorità '[Nome computer]:[Porta]'."

"System.Net.WebException: Connessione sottostante chiusa: Impossibile stabilire una relazione di trust per il canale sicuro SSL/TLS."

"System.Security.Authentication.AuthenticationException: Il certificato remoto non è stato ritenuto valido dalla procedura di convalida."

Soluzione

  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.

  2. Verificare che il nome host nell'endpoint master sia incluso nei nomi comuni (CN) del certificato di Scale Out Master. In caso contrario, reimpostare l'endpoint master nel file di configurazione di Scale Out Worker e riavviare il servizio Scale Out Worker.

    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. Vedere Gestire i certificati per 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.

Impossibile stabilire un canale sicuro

Sintomi

"System.ServiceModel.Security.SecurityNegotiationException: Impossibile stabilire un canale sicuro per SSL/TLS con l'autorità '[Nome computer]:[Porta]'."

"System.Net.WebException: Richiesta annullata: Impossibile creare un canale sicuro SSL/TLS."

Soluzione

Verificare che l'account che esegue il servizio Scale Out Worker abbia accesso al certificato di Scale Out Worker usando il comando seguente:

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.

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

Richiesta HTTP non consentita

Sintomi

"System.ServiceModel.Security.MessageSecurityException: Richiesta HTTP non consentita con lo schema di autenticazione client 'Anonimo'."

"System.Net.WebException: Errore del server remoto: (403) Non consentito."

Soluzione

  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.

  2. Eseguire la pulizia dei certificati inutili nell'archivio radice dei certificati del computer locale nel nodo Scale Out Master.

  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.

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

    Nome valore: SendTrustedIssuerList

    Tipo valore: REG_DWORD

    Dati valore: 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.

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

    Nome valore: ClientAuthTrustMode

    Tipo valore: REG_DWORD

    Dati valore: 2

    Nota

    In presenza di certificati non autofirmati nell'archivio certificati radice, l'autenticazione del certificato client non riesce. Per altre informazioni, vedere Internet Information Services (IIS) 8 potrebbe rifiutare le richieste di certificati client con gli errori HTTP 403.7 o 403.16.

Errore di richiesta HTTP

Sintomi

"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."

Soluzione

  1. Verificare che il certificato di Scale Out Master sia associato correttamente alla porta nell'endpoint master nel nodo master eseguendo il comando seguente:

    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. Se l'associazione non è corretta, reimpostarla eseguendo i comandi seguenti e riavviare il servizio Scale Out Worker.

    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 certificati

Sintomi

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".

Soluzione

  1. Eseguire Scale Out Manager come amministratore. Se si apre Scale Out Manager con SSMS, è necessario eseguire SSMS come amministratore.

  2. Avviare il servizio Registro di sistema remoto nel computer, se non è in esecuzione.

Avvio dell'esecuzione impossibile

Sintomi

Non è possibile avviare l'esecuzione in Scale Out.

Soluzione

Verificare lo stato dei computer selezionati per eseguire il pacchetto nella vista [catalog].[worker_agents]. È necessario che almeno un ruolo di lavoro sia online e abilitato.

Nessun log

Sintomi

I pacchetti vengono eseguiti correttamente, ma non vengono registrati messaggi.

Soluzione

Verificare che l'autenticazione di SQL Server sia consentita dall'istanza di SQL Server che ospita il database 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.

I messaggi di errore non sono utili

Sintomi

I messaggi di errore nel report di esecuzione del pacchetto non sono sufficienti per la risoluzione del problema.

Soluzione

Sono disponibili più log di esecuzione in TasksRootFolder configurati in WorkerSettings.config. Per impostazione predefinita, la cartella è \<drive\>:\Users\\[account]\AppData\Local\SSIS\ScaleOut\Tasks. [account] indica l'account che esegue il servizio Scale Out Worker con il valore predefinito 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. Quindi, individuare il nome della sottocartella contenente [task ID] in 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. Le viste interne a cui si fa riferimento nella query devono poi essere modificate.

Passaggi successivi

Per altre informazioni, vedere gli articoli seguenti relativi all'impostazione e alla configurazione di SSIS Scale Out: