2012-12-30 10 views
9

Sembra che sto colpendo un muro con questo, e non avendo molta documentazione in merito non è di aiuto neanche.Bilanciamento del carico Servizio di elaborazione sandbox per MS Dynamics CRM 2011

Eseguo regolarmente grandi lavori di importazione personalizzati in CRM e tutti implicano la chiamata del servizio di organizzazione da un client personalizzato per inviare record in CRM. I record passano attraverso plugin personalizzati sandboxed.

Le importazioni richiedono un po 'di tempo e sto cercando di migliorare la velocità di importazione impostando il servizio di elaborazione Sandbox su più server.

Ecco quello che ho provato finora:

  1. aggiungere un altro server con il Servizio per la lavorazione Sandbox.

         /Sandbox Processing Service (crmsb1) 
    Client > Front End (crm) < 
              \ Sandbox Processing Service (crmsb2) 
    

    L'aggiunta di un altro server con il servizio di elaborazione Sandbox non ha aiutato. Il server Front End non ha distribuito il carico su entrambi i server, ha continuato a utilizzare il server originale. Solo quando disabilitando il Sandbox Processing Service sul primo server Back End il secondo server ha iniziato a elaborare richieste di plugin. (Non è stato utile riportare il primo online)

  2. Due server con carico bilanciato con tutti i ruoli.

         /Full Server (crm1) 
    Client > IIS ARR (crm) < 
             \ Full Server (crm2) 
    

    I follwoed this guide (e un sacco di altri) alla lettera e ottenuto l'applicazione Web di lavoro attraverso il proxy inverso, ma non è riuscito eseguendo le richieste attraverso il Servizio Organizzazione. Dopo aver eliminato gli innumerevoli errori WCF cambiando continuamente un'altra impostazione, ho colpito un muro con questo errore The security context token is expired or is not valid. The message was not processed. lasciandomi pensare che il bilanciamento del carico funzionerà solo per l'app Web.

  3. Chiamare manualmente il servizio di organizzazione su più server.

     /Full Server (crm1) 
    Client < 
         \ Full Server (crm2) 
    

    sono riuscito a impostare il client di importazione di dividere il processo di importazione in più pezzi e chiamando tutti gli endpoint Organizzazione servizio in una maniera robin giro per ciascuno dei pezzi contemporaneamente. Ciò ha accelerato significativamente il processo di importazione, come speravo, e mi dà la possibilità di scalare ulteriormente, se necessario.

ho letto tutto quello che potevo trovare sulla questione, ma io sono ancora confuso esattamente come il bilanciamento del carico funziona in CRM 2011 e quali configurazioni sono possibili.

Questi twoguides utilizzano il bilanciamento del carico ampiamente, ma non descrivono in dettaglio come sono stati configurati.

Questo è tutto impostato in un ambiente di test prima di andare in diretta. Ho usato account di dominio per tutti i servizi, configurato gli SPN corretti e non ho usato SSL. Ho provato con & senza affinità client in ARR (funziona con i cookie, quindi presumo che il servizio WCF non sia bloccato su un back-end).

Le mie domande sono le seguenti:

  1. E 'possibile impostare il Sandbox Servizio per la lavorazione stessa (1 di cui sopra) su più server in una configurazione attivo/attivo (carico equilibrato), o è supportato solo come attivo/passivo (HA)?

  2. Se l'unico modo per utilizzare più istanze del Servizio di elaborazione sandbox è impostare più server con i ruoli Front End e Back End (2 sopra), esiste un modo per utilizzare un bilanciamento del carico, come NLB o ARR , per il servizio di organizzazione, o è un sistema di bilanciamento del carico supportato solo per l'app Web e devo utilizzare il terzo metodo sopra riportato per bilanciare il carico del servizio di elaborazione sandbox?

risposta

4

Questo è in risposta al tuo commento sul mio articolo (http://bit.ly/QOEvLF) io attraversare dopo la risposta anche lì:

I servizi Sandbox non sono in grado di sedersi dietro un bilanciamento del carico - o il modo sono progettati non si prestano bene a quella configurazione. Credo che la guida all'implementazione di CRM contenga informazioni su questo, ma i servizi Sandbox apriranno una presa di rete e ascolteranno su una porta specifica per il traffico. Quando il servizio sandbox è online, richiama il CRM per registrarsi come "disponibile" (quindi i servizi come async e front end sanno che è disponibile). I ruoli che richiedono l'isolamento (sandboxing) inoltreranno la chiamata di robin ai servizi sandbox direttamente su quel canale TCP su richiesta. Per maggiori informazioni su questo vedi: http://bit.ly/CRMSetupFAQ. Si noti inoltre che potrebbe essere necessario impostare un SPN personalizzato per il servizio sandbox.

Fatemi sapere se avete ulteriori domande su questo - grazie!

Sean

+0

Grazie per la risposta. Tuttavia, non spiega perché un server front-end non carichi il bilancio di due server sandbox (1 sopra). – Yona

+0

Ciao Yona, poco dopo un cliente che ho incontrato a Convergence ha aggiunto un altro contesto a un problema simile e alla fine ho scoperto un bug logico nel codice. Ora dovrebbe essere risolto e dovresti vedere il corretto comportamento di condivisione del carico del servizio sandbox. Ora dovrebbe essere risolto, non sono sicuro di quale sia la spedizione di UR, ma credo che 15 contenga quella correzione per il 2011 come dovrebbe CRM 2013. –