Verwenden von "ExecuteMultiple" zur Verbesserung der Leistung bei Massendatenlast

Sie können die ExecuteMultipleRequest-Nachricht verwenden, um einen höheren Durchsatz für Massennachricht-Szenarien in Dynamics 365 for Customer Engagementzu unterstützen (vor allem bei Dynamics 365 for Customer Engagement, bei dem die Internet-Latenz der größte einschränkende Faktor sein kann). ExecuteMultipleRequest nimmt eine Eingang-Collection der Requests-Nachricht entgegen, führt jede Nachrichtenanforderung in der Reihenfolge in der Collection aus, und gibt optional eine Collection von Responses mit jeder Reaktion auf die Nachricht oder dem aufgetretenen Fehler zurück. Jede Messageanforderung in der Eingabesammlung wird in einer separaten Datenbanktransaktion verarbeitet. ExecuteMultipleRequest wird über IOrganizationService.Execute ausgeführt. Methode.

Generell verhält sich ExecuteMultipleRequest genauso, als ob Sie jede Messageanforderung separat in der Eingabeanforderungssammlung ausführen, nur mit besserer Leistung. Die Verwendung der CallerId-Parameter des Serviceproxys wird berücksichtigt und wird bei der Ausführung jeder Message in der Eingabeanforderungssammlung angewendet. Plug-Ins und Workflowaktivitäten werden ausgeführt, wie es für jede verarbeitete Message zu erwarten ist.

Benutzerdefinierter Code in Form von Plug-Ins und benutzerdefinierter Workflowaktivitäten kann sogar ExecuteMultipleRequest ausführen. Allerdings gibt es mehrere wichtige Punkte zu beachten. Eine Ausnahme, die von einem synchronen, registrierten Plug-In ausgelöst wird, wird, wird im Fault-Parameter des Antwortsammlungselements zurückgegeben. Falls ein Plug-In innerhalb einer Datenbanktransaktion ausgeführt wird, führt das Plug-In ExecuteMultipleRequest aus, und ein Transaktionsrollback wird gestartet. In diesem Rollback sind alle Daten enthalten, die von Anforderungen stammen, die von ExecuteMultipleRequest ausgeführt werden.

Weitere detaillierte Informationen zu ExecuteMultiple finden Sie unter Mehrere Anforderung mithilfe des Organisationsservice ausführen.

Lokale Ablaufbeschränkungen

Es gibt mehrere Beschränkungen, die zur mit der Verwendung von ExecuteMultipleRequest in Beziehung stehen, wie in der folgenden Liste beschrieben.

  • Keine Rekursion zulässig - ExecuteMultipleRequest kann ExecuteMultipleRequest nicht aufrufen. Ein ExecuteMultipleRequest-Element, das in der Anforderungssammlung gefunden wird, verursacht einen Fehler für das Anforderungselement.

  • Maximale Batchgröße - es gibt eine Beschränkung bei der Anzahl von Anforderungen, die einer Anforderungssammlung hinzugefügt werden können. Wird dieser Grenzwert überschritten, wird ein Fehler ausgelöst, bevor die erste Anforderung ausgeführt wird. Eine Limit von 1000 Anforderungen ist typisch, obwohl die maximale Menge für die Dynamics 365 for Customer Engagement-Bereitstellung festgelegt werden kann. Die Bereitstellungseinstellung für diesen Grenzwert ist BatchSize.

  • Einschränkung der gleichzeitigen für Aufrufe - bei Dynamics 365 for Customer Engagement gibt es eine Beschränkung von 2 gleichzeitig ausgeführten ExecuteMultipleRequest-Elementen pro Organisation. Wird dieser Grenzwert überschritten, wird ein "Server Ausgelastet"-Fehler ausgelöst, bevor die erste Anforderung ausgeführt wird. Bei einer lokalen Bereitstellung ist Einschränkung standardmäßig nicht aktiviert. Die Bereitstellungseinstellung für diesen Grenzwert ist ExecuteMultiplePerOrgMaxConnectionsPerServer.

    Tipp

    Für jede mögliche Customer Engagement-Bereitstellung kann ein Bereitstellungsadministrator den Einschränkungsgrenzwert festlegen oder ändern.

Siehe auch

Lesen und Schreiben von Metadaten mit dem IOrganizationService-Webdienst
Microsoft.Xrm.Sdk-Meldungen
IOrganizationService.Execute
OrganizationRequest
OrganizationResponse
Microsoft.Crm.Sdk-Meldungen
Importieren von Daten