Drücke „Enter”, um zum Inhalt zu springen.

Timer Activities bleiben stehen

Kürzlich sind wir auf ein Problem mit den Timer Aktivitäten in Workflows gestoßen. Alle Timer Aktivitäten sind stehen geblieben und damit wurden auch die betroffenen Workflowinstanzen nicht fortgeführt.
Parallel dazu wuchs zudem das Transaction Log in unkontrollierter Weise, so dass die Platte auf dem SQL-Server ständig vollzulaufen drohte. Wie sich herausstellte gab es wohl ein Zusammenhang zwischen den beiden Problemen. Jedenfalls war das Problem mit dem Transaction Log nicht mehr vorhanden nachdem wir das Timer-Problem gelöst hatten.
Das Timer-Problem habe ich zunächst eher zufällig behoben, indem ich einige Langläufer-Prozesse abgeschlossen bzw. gelöscht hatte. Sehr wahrscheinlich war da der ein oder andere korrupte Prozess dabei, der das Problem verusrsachte. Dieser wiederum verursachte vermutlich eine nicht enden wollende Transaktion auf dem SQL Server. Ein Shrinken war währenddessen nicht möglich – selbst das Umstellen auf das Recovery Model Simple brachte nichts. Wir mussten jeweils die blockierende Session killen um das File shrinken zu können.

Aber zurück zum Problem mit unseren Timer-Aktivitäten …
In einer Session mit dem NINTEX/K2 Support wurde mir erklärt wie die Timer Aktivitäten funktionieren.
Alle anstehenden Aktionen, auf die gewartet werden muss, landen in der Tabelle [Server].[Async]
Ein einfaches select * from [Server].[Async] gibt alle anstehenden Aktionen in der Reihenfolge zurück, wie sie von K2 abgearbeitet werden.

Das Ergebnis kann wie folgt aussehen:

Jedenfalls war in dieser Tabelle sehr wahrscheinlich ein Prozess zu finden, mit dem es ein Problem gab, und verhinderte, dass alle nachfolgenden Aktivitäten abgearbeitet werden konnten. Leider war in den Fehlerlogs auf dem K2-Application Server nichts zu finden.

Sollten wir wieder mal Probleme mit den Timer Aktivitäten haben, wird diese Tabelle jedenfalls meine erste Anlaufstelle sein.

Normalerweise sollten sich in dieser Tabelle keine Einträge finden lassen, deren Wert in der Spalte „Date“ in der Vergangenheit liegt. Das gilt zumindest für aktive Workflow-Instanzen (ich habe bei uns einen Eintrag gefunden, bei dem in der Spalte Date ein Datum aus der Vergangenheit lag, diese Workflow-Instanz befand sich allerdings im Fehlerstatus)


Artikelbild von Gerd Altmann auf Pixabay