Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Kategorie: Leistung
Wirkungspotential: Hoch
Symptome
Doppelte Plug-In-Schritt-Registrierung bewirkt, dass das Plug-In mehrmals in derselben Nachricht/demselben Ereignis ausgelöst wird. Die doppelte Registrierung von Plug-In-Schritten kann zu Folgendem führen:
Verzögerte Verarbeitung asynchroner Aufträge, wenn sie als asynchroner Ausführungsmodus registriert wurden.
Beeinträchtigte Benutzerleistung, wenn sie als synchroner Ausführungsmodus registriert wurde. Zu den Erfahrungen gehören:
- Nicht reagierende modellgesteuerte Apps
- Langsame Clientinteraktionen
- Der Browser reagiert nicht mehr
Leitfaden
Stellen Sie sicher, dass Sie vorhandene Plug-In-Registrierungsschritte aktualisieren, anstatt sie zu löschen und erneut zu erstellen. Darüber hinaus erstellen und aktualisieren Sie nur Plug-In-Registrierungsschritte auf unterstützte Weise.
Problematische Muster
Warnung
Diese Muster sollten vermieden werden.
Durch Löschen und Erneutes Erstellen eines Schritts in der Quellinstanz (Test, Dev, Preprod) wird ein doppelter Schritt erstellt, der in der Zielumgebung registriert wird, wenn dieser Schritt zuvor registriert wurde.
Das manuelle Erstellen der SDKMessageProcessingSteps mit einer neuen GUID oder das Aktualisieren der bestehenden GUID innerhalb der Datei customizations.xml führt zur Registrierung eines doppelten Schrittes. Diese Art von Aufgaben wird nicht unterstützt, wie in Wann soll die Anpassungsdatei bearbeitet werden?
Weitere Informationen
Die doppelte Plug-In-Schritt-Registrierung kann dazu führen, dass SQL-Deadlocking verursacht wird, wenn die Ereignisse in einer Aktualisierungsnachricht registriert werden. Beim Ausgeben einer Aktualisierung für einen Datensatz erstellt SQL eine Zeilensperre für diesen Datensatz. Wenn eine andere Transaktion versucht, denselben Datensatz zu aktualisieren, muss sie warten, bis die Sperre freigegeben wird, bevor sie das Update vornehmen kann. Wenn ein Timeout auftritt, wird die Transaktion zurückgesetzt, und die Aktualisierung wird nicht für die SQL-Datenbank übernommen.