Data Ordering
To achieve high throughput, Thingworx relies heavily on parallel and distributed processing. However, high concurrency can cause requests and events to be processed out of order relative to their emission time.
- Starting with Thingworx 9.5, it is possible to configure Subscriptions to execute sequentially. Sequential Subscriptions ensure that events are processed in the order they occur.
- Since 9.7, it is possible to configure Thingworx to ensure that Property updates (i.e. data pushed from devices) are processed in order.
- Data Ordering refers to the combination of the above features to ensure that data is ingested and data change events are executed in order.
Info
The use of Data Ordering can impact processing performance
Sequential Subscriptions (9.5+)
- Configurable at Subscription level
- Driven by the Execute Events Sequentially option on the Subscription
Ordered Property Updates (9.7+)
- Applies to data pushed from AlwaysOn devices and Axeda agents using the
UpdateSubscribedPropertyValues
andUpdateSubscribedPropertyValuesBatched
services- CSDK -
twApi_PushSubscribedProperties()
- NSDK/JSDK -
VirtualThing::updateSubscribedProperties()
- EMS/LSR -
thingworx.server.setProperties()
- Axeda - Data item
- CSDK -
-
System wide configuration to be applied on multiple Thingworx components
-
Platform
In
platform-settings.json
: -
Connection Server (9.3+) / eMessage Connector (2.5+)
- In connector.conf add
cx-server.data-ordering true
- It is recommended to configure the Load Balancer in front of multiple connectors to use device/ip stickiness (for both CXS and EMC)
- In connector.conf add
-
External Resources
- PTC Help Center - Data Ordering