Datensortierung
Mit den Streaming-Daten von Geräten vor Ort sind Ereignisse und Abonnements für Geschäftslogik, Datenverarbeitung usw. vorhanden. Daten, die über ein Abonnement verarbeitet werden, werden in die unterstützte Datenbank aufgenommen. Die Datenverarbeitung in ThingWorx wird parallel ausgeführt, um viele Dinge und zugeordnete Eigenschaftswerte zu unterstützen.
Während Daten zu ThingWorx strömen und über Ereignisse und Abonnements verarbeitet werden, werden sortierte Daten für die sequenzielle Verarbeitung von Ereignissen in Eigenschaften erwartet. Verarbeitete Daten sollten auch in sequenzieller Reihenfolge in der Datenbank aufgenommen werden.
Problemstellung
Wenn die Datenreihenfolge nicht beachtet wird, hat dies Auswirkungen auf die Generierung von Ereignissen, Abonnements und letztendlich auf die Datenaufnahme. Dieses Szenario wird während Trennung und Wiederherstellung der Verbindung von Kepware im Hochverfügbarkeits-Setup beobachtet (in Gegenwart eines Connection Server zum Ausgleichen von WebSocket-Verbindungen).
Lösung
In ThingWorx 9.6 wurden folgende Änderungen vorgenommen:
1. Behalten Sie bei Connection Server die Bindung für ein bestimmtes Ding zu einem Paar von ThingWorx-ID und Websocket(WS)-Kanal-ID bei. Dadurch wird sichergestellt, dass Eigenschaftswertaktualisierungen für ein bestimmtes Ding immer an bestimmte ThingWorx und bestimmte WebSocket-Kanäle gesendet werden.
2. Der eMessage Connector (eMC) verwendet intern den Connection Server, um mit ThingWorx Platform zu kommunizieren. Die Änderungen für den Connection Server helfen eMessage Connector (eMC), sortierte Daten an ThingWorx zu senden.
3. Implementieren Sie auf ThingWorx Platform den Akka Actor pro Ding. Bei jedem eingehenden Eigenschaftswert für ein Ding wird ein Actor erstellt, und der Eigenschaftswert wird an das Postfach des Actors übertragen. Der Akka Actor fordert dann die Nachrichten aus der Warteschlange an und verarbeitet sie sequenziell, um die sortierte Datenverarbeitung auf Plattform-Seite zu gewährleisten.
4. Ein neues Kennzeichen wird angezeigt, um die Datensortierung in der Datei BasicSettings platform-settings.json zu aktivieren.
Einstellung
Typ
Wert
Standardwert
EnableDataOrdering
BOOLEAN
wahr ODER falsch
false
* 
Die Ereignissortierung ist eine Funktion, die in Version 9.5 bereitgestellt und verfügbar ist. Klicken Sie in der Abonnementdefinition auf Execute Events Sequentially, um diese Konfiguration zu aktivieren.
Sonstige Komponentenwirkungen
Java und C SDK können Eigenschaftswerte an ThingWorx mit den folgenden APIs senden:
VirtualThing.setProperty()
VirtualThing.updateSubscribedProperties();
Unter Verwendung der vorherigen APIs werden Eigenschaften nacheinander an ThingWorx Platform gesendet.
Wenn sich hinter dem Lastenausgleich ein Connection Server befindet, müssen Sie die Konfiguration des Lastenausgleichs so anpassen, dass eine Bindung erreicht wird. Ohne diese Daten ist die Sortierung nicht möglich.
War dies hilfreich?