Ripristino di emergenza in Microsoft Dynamics CRM Online

 

Data di pubblicazione: novembre 2016

Si applica a: Dynamics CRM 2015

Il ripristino di emergenza è una funzionalità di Microsoft Dynamics CRM Online per ripristinare da un'interruzione di servizio pianificata o imprevista. Un esempio di interruzione pianificata di servizio è la manutenzione periodica del sistema di data center. Un esempio di una interruzione imprevista di servizio è un errore in un componente di un computer o rete principali in un data center. In entrambi i casi, si perde temporaneamente l'accesso ai dati dell'organizzazione e i servizi di Microsoft Dynamics CRM Online.

Le interruzioni pianificate di servizio sono precedute da un avviso pubblica nell'applicazione Web o in Dynamics CRM per Outlook che identifica data e ora della manutenzione del servizio in modo che le aziende possano tenere conto dell'interruzione dell'accesso ai dati dell'organizzazione nella loro pianificazione. Le interruzioni di servizio impreviste hanno come risultato un avviso in cui si specifica che per l'organizzazione è in corso un'attività di manutenzione non pianificata.

Quando si verifica un'emergenza o un errore, vengono applicati processi ben definiti dagli amministratori del data center di Microsoft Dynamics CRM Online per ripristinare dall'interruzione di servizio. I processi e software di ripristino da tali interruzioni di servizio sono noti come failover di ripristino di emergenza. Il data center di Microsoft Dynamics CRM Online gestisce un duplicato e una copia (alternativa) sincronizzata dei dati dell'organizzazione in un server diverso. Se si verifica un'emergenza nel data center in cui non si ha più accesso ai dati, gli amministratori che monitorano il data center possono cambiare l'accesso dall'organizzazione primaria a tale organizzazione alternativa, riducendo l'interruzione di servizio. Quando l'errore è stato corretto, l'accesso di servizio all'organizzazione primaria può essere ripristinato.

Questo ripristino viene eseguito nel data center e viene gestito in maniera trasparente per l'utente per le applicazioni gestite con .NET. Tuttavia, esiste un problema di cui gli sviluppatori di applicazioni devono occuparsi: la perdita di dati. Quando si verifica un errore nei servizi di Microsoft Dynamics CRM Online, le operazioni di modifica di dati che l'applicazione esegue utilizzando le chiamate di servizi Web possono non venire completate correttamente. Questo può comportare la perdita di dati. Nelle sezioni seguenti in questo argomento viene descritto come è possibile scrivere le applicazioni in modo che siano in grado di occuparsi dei problemi di perdita di dati.

In questo argomento

Sviluppare un'applicazione con codice gestito con .NET per il failover di ripristino

Sviluppare un'applicazione non .NET per il failover di ripristino

Procedure consigliate

Sviluppare un'applicazione con codice gestito con .NET per il failover di ripristino

Gli sviluppatori possono scrivere le applicazioni in modo che rispondano degli errori del data center e gestiscano il ripristino implementando il codice per verificare e gestire un evento di failover normalmente. Un'applicazione può essere iscritta agli eventi di notifica EndpointSwitchRequired e EndpointSwitched. Questi eventi sono inoltre disponibili nelle classi derivate come OrganizationServiceProxy. Per ulteriori informazioni su questi eventi, vedere la documentazione di classe ServiceProxy<TService>.

L'applicazione può controllare la proprietà EndpointAutoSwitchEnabled per determinare se il comportamento automatico di failover sia abilitato per un'organizzazione. Questa proprietà è impostata su true per le organizzazioni per le quali un endpoint alternativo di failover è disponibile. Non è necessario nessun altro codice speciale nell'applicazione, oltre alla sottoscrizione facoltativa agli eventi di notifica quando EndpointAutoSwitchEnabled è true.

Il tipico flusso logico dell'applicazione per un evento di emergenza e un failover

  1. Un evento di emergenza si verifica nel data center di Microsoft Dynamics CRM Online.

  2. L'applicazione fa una chiamata di servizio tramite un oggetto della classe proxy del servizio: OrganizationServiceProxy, DiscoveryServiceProxy.

  3. L'oggetto della classe proxy del servizio riceve un'eccezione dopo aver tentato la chiamata di servizio.

  4. Se l'organizzazione di destinazione della chiamata non è abilitata al failover, andare al passaggio 9.

  5. L'evento EndpointSwitchRequired viene generato.

  6. L'evento EndpointSwitched viene generato.

  7. L'oggetto della classe proxy del servizio riprova automaticamente ad effettuare la chiamata.

  8. Se la seconda chiamata ha esito positivo, l'applicazione continua normalmente.

  9. Se la chiamata ha esito positivo, viene restituita un'eccezione all'applicazione: EndpointNotFoundException, TimeoutException, FaultException<OrganizationServiceFault> dove fault.Detail.ErrorCode == -2147176347.

Può essere opportuno implementare codice che controlli la potenziale perdita di dati in seguito alla ricezione e gestione appropriata di eventi di cambio di endpoint.

Quando l'emergenza relativa all'endpoint dell'organizzazione primaria è stata risolta nel data center, si verifica un failback dall'URL dell'endpoint alternativo all'URL dell'endpoint primario dell'organizzazione, nell'ambito della manutenzione pianificata dell'organizzazione.

Sviluppare un'applicazione non .NET per il failover di ripristino

Le applicazioni non collegate agli assembly Microsoft Dynamics CRM SDK, ad esempio le applicazioni Java che accedono ai servizi Web tramite SOAP o ODATA, possono provare ad accedere all'URL di failover dell'organizzazione di destinazione. L'URL dell'organizzazione alternativa di failover sarà equivalente a quello dell'organizzazione primaria con “--S” aggiunto al nome dell'organizzazione. Ad esempio, un'organizzazione denominata Contoso avrebbe gli URL primario e alternativo come illustrato nella tabella seguente.

URL primario organizzazione

URL alternativo organizzazione

https://CONTOSO.API.CRM.DYNAMICS.COM

https://CONTOSO--S.API.CRM.DYNAMICS.COM

Per le applicazioni non connesse con .NET, non è presente alcun evento di notifica al quale l'applicazione può iscriversi per ricevere avvisi relativi a un failover e a un'interruzione di servizio. L'applicazione inizierà a ricevere diverse eccezioni di errore, come indicato in precedenza, durante l'interruzione di servizio. A questo punto, l'applicazione può tentare di connettersi all'URL alternativo di failover dell'organizzazione di destinazione. Una volta risolta l'emergenza, si verifica un failback all'URL primario dell'organizzazione, nell'ambito della manutenzione pianificata dell'organizzazione.

Procedure consigliate

L'elenco seguente descrive le procedure consigliate che è possibile implementare nelle applicazioni per renderle più affidabile quando si occupano di interruzione dei servizi e del ripristino in caso di errore.

  • Creare il codice dell'applicazione per controllare il valore della proprietà EndpointAutoSwitchEnabled per stabilire se sia impostato su true. Se true, prendere in considerazione la possibilità di iscrivere l'applicazione agli eventi di notifica EndpointSwitched e EndpointSwitchRequired.

  • Se l'applicazione utilizza dei dati critici, per cui qualsiasi perdita di dati è disastrosa, creare il codice gestore eventi per intercettare le eccezioni indicate in modo da gestire gli eventi di emergenza e i failover nella maniera più appropriata per le esigenze aziendali.

Vedere anche

Sviluppo avanzato
Amministrare la distribuzione utilizzando il servizio Web di distribuzione

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright