ThingWorx 10 ist seit Juni da – und wir haben die Neuerungen für dich getestet. In diesem Beitrag erfährst du, was beim Upgrade auffällt, welche neuen Features dich erwarten und worauf du achten solltest.
Upgrade auf ThingWorx 10: Problem beim Extension-Import
Nach dem Starten von ThingWorx 10 kam es beim Importieren von Extensions zu folgendem Fehler: „EXCEPTION trying to load [file:/….jar] with URLClassloader.addUrl“. Die Ursache lag im Import von Extensions mit .jar-Dateien. Die Lösung bestand darin, in Tomcat zusätzliche JVM-Parameter in den CATALINA_OPTS zu setzen.1
Auf den ersten Blick blieb alles beim Alten – doch ein Blick unter die Haube zeigt: ThingWorx 10 bringt einige wirklich nützliche neue Features mit.
Entdecke die neuen Features von ThingWorx 10
ThingWorx 10 bringt einige spannende Neuerungen mit – von Debugging-Tools bis zu neuen IoT-Stream-Funktionen. Wir stellen dir die wichtigsten Features vor.
JavaScript Debugger: Services endlich debuggen wie in der IDE
Der neue JavaScript Debugger (aktuell noch als Beta-Feature) bringt echte Debugging-Funktionen in ThingWorx: Du kannst Breakpoints in Services setzen, den Call-Stack analysieren, Variablen einsehen und Ausdrücke auswerten – ähnlich wie bei gängigen IDEs. In unserem Beispiel ruft Thing1.Service1 den Service GetExclamationMark von Thing2 auf. Hier ist ein Breakpoint gesetzt:

Gut zu wissen:
- Jeder Nutzer hat eigene Breakpoints
- Services müssen mit „Debug“ ausgeführt werden
- Breakpoints gelten nur für den jeweiligen ServiceCall, der mit Debug gestartet wurde. Die restliche Plattform wird davon nicht beeinflusst.
- Einige dieser Einschränkungen sollen mit Version 10.1 behoben werden (z.B. können aktuell keine InfoTable Variablen inspiziert werden)
- In ThingWorx 10.1 soll der Debugger außerdem kein Beta-Feature mehr sein – aktuell für Dezember 2025 geplant.2

IoT Streams & Durable Queues: So werden deine Daten robuster und flexibler verarbeitet
Mit dem neuen IoT-Streams-Feature kannst du Property-Werte direkt an ein externes Messaging-System wie Apache Kafka oder Azure Event Hub streamen – ohne eigene Mechanismen zur Weiterverarbeitung der Daten entwickeln zu müssen. Bisher war dafür meist einer der folgenden Wege nötig: Entweder wurden eigene Services erstellt oder es wurden regelmäßige SQL-Abfragen auf die Produktionsdatenbank ausgeführt – beides erzeugt zusätzliche Last.
Die Konfiguration erfolgt direkt auf Property-Ebene. Wie im folgenden Screenshot zu sehen, aktivierst du dafür einfach die Option „Externally Routed“ und wählst anschließend einen verfügbaren IoT-Stream aus.

Derselbe Mechanismus kann auch für ThingWorx interne Queues genutzt werden – über die neue „Internal Durable Queue“3. Bisher wurden Events in flüchtigen In-Memory-Queues wie EventQueues und ValueStreamQueues gespeichert. Bei einem Plattformabsturz gingen alle darin enthaltenen Events verloren.
Mit den neuen Durable Queues werden Events zunächst zu Kafka übergeben, dort gepuffert und dann in Batches verarbeitet. Das erhöht die Ausfallsicherheit der Plattform erheblich.
Im folgenden Schaubild erkennst du, wie ThingWorx sowohl externe Streams als auch interne Queues über Kafka oder Azure Event Hub weiterverarbeiten kann.

Als Consumer lassen sich beispielsweise Streaming-Engines wie Apache Spark einsetzen. Für weitere Informationen zu dieser Kombination empfehle ich dir den Beitrag IoT-Daten effizient verarbeiten – ist Kafka und Spark die Antwort?
Bitte beachte: Für die Nutzung von IoT Streams ist eine zusätzliche Lizenz erforderlich. Perspektivisch könnten sich über Java Extensions auch eigene Stream-Implementierungen anbinden lassen.4
Cache Thing: Temporäre Daten speichern ohne eigene Logik
ThingWorx 10 bringt mit dem Cache Thing eine neue Möglichkeit, temporäre Daten effizient zwischenzuspeichern – ohne eigene Caching-Logik schreiben zu müssen. Das Konzept ähnelt einer DataTable, ist aber speziell auf schnelle Zugriffe und kurze Lebenszeiten ausgelegt. So richtest du ein Cache Thing ein:
- Erstelle ein Thing auf Basis des Templates CacheThing
- Verknüpfe ein DataShape mit definiertem PrimaryKey
- Konfiguriere die Parameter: Maximum Cache Size, Expiration Policy und Expiration Time.
Du nutzt dieses Thing mit Services wie:
- PutEntry
- GetEntry oder
- DeleteEntry
Im Betrieb prüfst du mit GetEntry, ob bereits ein Wert im Cache liegt. Falls nicht, führst du den rechenintensiven Service aus, speicherst das Ergebnis mit PutEntry – und beim nächsten Zugriff ist es sofort verfügbar.
Löschen kannst du Einträge gezielt über DeleteEntry.
Zusätzlich werden automatisch zu jedem Cache Thing Metriken bereitgestellt, mit denen du zum Beispiel Cache Misses analysieren kannst.
Technische Updates: Neue Basis mit Java 21, Tomcat 11 und PostgreSQL 16
ThingWorx 10 bringt auch unter der Haube einige wichtige Technologie-Upgrades mit, die du für deine Umgebung im Blick haben solltest:
- Java 21: Der Wechsel von javax.* zu jakarta.* erfordert eventuell eine Neukompilierung deiner bestehenden Java Extensions.
- Tomcat 11: Das Application-Server-Upgrade bringt mehr Sicherheit und Performance – allerdings auch geänderte Konfigurationen.
- PostgreSQL 16: Neue Datenbankversion mit Performance-Verbesserungen und erweiterten SQL-Funktionen.
Das war eine Übersicht der wichtigsten Neuerungen. Für eine vollständige Liste aller Features – inklusive neuer Widgets – empfehlen wir die offiziellen Release Notes.5
Unser Fazit: Lohnt sich das Upgrade auf ThingWorx 10?
Ja – auch wenn die Anzahl neuer Features überschaubar ist, bieten sie echten Mehrwert im Alltag.
Besonders der JavaScript Debugger, die IoT Streams und das Cache Thing können Entwicklungs- und Integrationsaufwände deutlich reduzieren.
Support für ThingWorx 9.7 läuft noch bis Ende 2026. Nutze die Zeit, um abzuwägen, ob sich ein Wechsel für dich lohnt – und plane dein Upgrade frühzeitig.



