データの順序付け
フィールドのデバイスからのストリーミングデータを使用して、ビジネスロジックやデータ処理などのイベントと購読が実行されます。購読によって処理されたデータは、サポートされているデータベースに取得されます。ThingWorx でのデータ処理は、多数の Thing および関連プロパティ値をサポートするために並行して実行されます。
データは ThingWorx にストリーミングされ、イベントと購読によって処理されますが、プロパティのイベントを順次処理するには順序付けされたデータが必要です。処理されたデータもデータベース内に順番に取得される必要があります。
問題ステートメント
データの順序が間違っている場合、イベントの生成、購読、そして最終的にはデータの取得に影響します。このシナリオは、Kepware が切断されてから再接続されるまでの間に、高可用性セットアップ (WebSocket 接続のバランスをとる接続サーバーが存在する場合) で確認されています。
ソリューション
ThingWorx 9.6 では、次のような変更が行われました。
1. 接続サーバーでは、ThingWorx ID と Websocket (WS) チャンネル ID のペアへの個々の Thing のスティッキネスを維持します。これにより、各 Thing のプロパティ値の更新が常に特定の ThingWorx および特定の WebSocket チャンネルに送信されます。
2. eMessage Connector (eMC) は、接続サーバーを内部で使用して ThingWorx Platform と通信します。接続サーバーの変更は、eMessage Connector (eMC) が順序付けられたデータを ThingWorx に送信する際に役立ちます。
3. ThingWorx Platform で、Thing ごとに Akka アクターを実装します。Thing の受信プロパティ値ごとにアクターが作成され、プロパティ値がアクターのメールボックスにプッシュされます。その後、Akka アクターはキューからメッセージを取得して順番に処理し、プラットフォーム側での順序付けされたデータ処理を保証します。
4. platform-settings.jsonBasicSettings でデータの順序付けを有効にする新しいフラグが公開されました。
設定
タイプ
デフォルト値
EnableDataOrdering
BOOLEAN
true または false
false
* 
イベントの順序付けは、9.5 で導入され、使用可能になった機能です。このコンフィギュレーションを購読定義で有効にするには、Execute Events Sequentially をクリックします。
その他のコンポーネントの影響
Java および C SDK は、以下の API を使用してプロパティ値を ThingWorx に送信できます。
VirtualThing.setProperty()
VirtualThing.updateSubscribedProperties();
前の API を使用して、プロパティは順番に ThingWorx Platform に送信されます。
データを順序付けするには、接続サーバーがロードバランサーの背後にある場合、ロードバランサーのコンフィギュレーションを調整してスティッキネスを有効にします。このデータがないと、順序付けはできません。
これは役に立ちましたか?