Wer mit komplexen Nintex Worklfows arbeitet, darf die Wartung des Systems von Anfang an nicht aus den Augen verlieren. Spätestens bei Verwendung von Schleifen muss man ein Auge auf die Nintex Content Datenbank sowie die versteckte Liste NintexWorkflowHistory werfen. Macht man dies nicht, hat man je nach Workflowaufkommen früher oder später ein Performanceproblem. Ursache dafür ist der verbaute Logging-Mechanismus, der in einem starken Datenbankwachstum resultieren kann. Diese Erfahrung muss man wohl einmal gemacht haben, man kann sie aber von Anfang an vermeiden.
Bei jedem Nintex Workflow werden folgende Einträge in der ContentDB erzeugt:
| Anzahl | Beschreibung |
| 1 | Zeile pro Workflow |
| 2 | Zeilen pro Action, die ausgeführt wird |
| 1 | Zeile pro TaskAction (Request Approval…) |
| 1 | Zeile für jeden Approver, der einem Task zugewiesen wird |
| 1 | Zeile für jede Delegation eines Tasks |
Außerdem wird für jede Action ein Item in der Liste NintexWorkflowHistory erzeugt.
Als Worklfow Designer hat man zum Glück einige Werkzeuge, um dem entgegen wirken zu können. Man ist schon im Nintex Designer in der Lage, das erzeugen von Datenbankeinträgen zu verhindern. Das machen Sie wie folgt:
In der Konfiguration einer Action gehen Sie in den Reiter Common und aktivieren die markierte Checkbox. Nach der Neuveröffentlichung des Workflows logt die Action nicht mehr in die Datenbank. Sie ist allerdings nun auch nicht mehr in dem Workflowverlauf sichtbar. Daher sollten Sie das erst durchführen nachdem Sie den Workflow nicht mehr debuggen müssen und er fehlerfrei läuft. Sie können außerdem darüber nachdenken Actions nur während konfigurierter Geschäftszeiten ausführen zu lassen. Auch das senkt die Anzahl der Logeinträge. Das können Sie in dem Reiter Action einschalten.
Bereits erzeugte Logeinträge behandeln Sie mit einem Tool namens NWAdmin, das bei der Nintex Installation mit ausgeliefert wird. Sie finden das Tool im Ordner “C:\Program Files\Nintex\Nintex Workflow 2010”
Mit diesem Tool (NWADMIN.exe) sollten Sie folgende Dinge durchführen.
1. Den Nintex Datenbestand mit der WorkflowFoundation synchronisieren / Sync Terminated Workflows
NWAdmin.exe -o SyncTerminatedWorkflows -url “http.//url” -verbose -showMissingItems –terminateDeletedItems
Sollten Dokumente ohne Beendigung des Worklfows entfernt worden sein, so werden evtl. bestehende Workflows in den Zustand cancelled versetzt.
2. Den Datenbankbestand aufräumen / Purge Workflow Data
NWAdmin.exe -o PurgeWorkflowData -url http://url -state completed -verbose
REM States: completed/cancelled/errored/all
Mit diesem Befehl werden Logeinträge aus der Datenbank entfernt.
3. Die Liste NintexWorkflowHistory verkleinern / Purge Workflow History
NWAdmin.exe -o purgeHistoryListData -siteUrl “http:URL” -verbose -batchSize 500 -state completed
REM States: completed/cancelled/errored/all
Mit diesem Befehl werden SPListItems aus der Liste NintexWorkflowHistory abgeräumt.
Beachtet man obige Dinge, steht einem langzeitstabilem System nichts im Wege. Ab der Version 2.2 des Nintex Worklfows 2010 kann man meiner Kenntnis nach diese Wartungsarbeiten in der CA konfigurieren. Ansonsten gelten die obigen ToDos ebenfalls für den Nintex Workflow 2007.
Führen Sie diese Tasks am besten außerhalb der Produktivzeiten durch, da doch etwas Last auf der DB erzeugt wird. TaskScheduler… Wer wissen will, wie man das automatisiert sucht bitte einfach den Kontakt.
Happy Coding!



