If you are working with complex Nintex Workflows, you should always keep an eye on the maintenance of your Environment. You should have especially a closer look to the Nintex Content Database and the hidden List “NintexWorkflowHistory”, if you are working with loops inside the workflow. This is necassary to avoid to run into performance issues, which is essentially in long time scenarios. Your system will be affected by this problem sooner or later, depending on your Solution. This is a result of the built in Logging Mechanism which can end in a excessive Database growth. But, knowing this, you can use built in NintexSettings in your Workflow and schedule some BatchTasks to keep your environment healthy and performant. I just want to describe the possibilities Nintex is giving us.
Nintex generates per default the following Entries in the ContentDatabase:
Number of Rows
|
Description |
| 1 |
Row per Workflow |
| 2 |
Rows per Action, which is executed |
| 1 |
Row per TaskAction (Request Approval…) |
| 1 |
Row for each Approver, which is participating to a Request |
| 1 |
Row per each Delegation of a task |
But that`s not all, there will be created a SPListItem for each executed Activity in the hidden List NintexWorkflowHistory. For example, i once found the List containing 4.5 Mio. entries affecting the whole environmentperformance massively.
But Nintex gave us some Tools to keep the System on track, even in Long Time Scenarios. Begin to avoid unneccessary entries to the db in your Workflow by Setting a Checkbox in the ConfigurationPanel of your Activity.

Just have a closer Look to the Common Tab. You will find a checkbox there “Hide from workflow Status”, which is disabling the Loggingmechanism for this Activity. After you published your Workflow again, this Activity is not logging to the db anymore, which also means, that you can not see the Appearance of the Activity in the WorkflowHistory either. So you should do this after debugging your Workflow and knowing that everything behaves as expected. You can also configure, that the Activity is only executed at business Times. This also reduces the amount of logging entries especially when you use Loops, which maybe are running some days.
You can get rid of existing Entries by using a tool named NWAdmin. You will find this tool in the folder: “C:\Program Files\Nintex\Nintex Workflow 2010”
Create some BatchFiles there and do the following things:
1. Synchronize Nintex with the MS Workflow Foundation / Sync Terminated Workflows
NWAdmin.exe -o SyncTerminatedWorkflows -url “http.//url” -verbose -showMissingItems –terminateDeletedItems
Maybe you deleted some documents without ending a running workflow, you may have a discrepancy in the Workflowstati safed in the MS Workflow Foundation on the one hand and Nintex on the other hand. Deleted Items have to be terminated in Nintex. So you can do this with this command.
2. Purge Workflow Data
NWAdmin.exe -o PurgeWorkflowData -url http://url -state completed -verbose
REM States: completed/cancelled/errored/all
You can delete existing log entries in the Nintex DB. Maybe for completed Workflows or cancelled and errored Workflows. You can even configure to only delte entries which are older than n days to keep some informations available for a while.
3. Purge Workflow History
NWAdmin.exe -o purgeHistoryListData -siteUrl “http:URL” -verbose -batchSize 500 -state completed
REM States: completed/cancelled/errored/all
You can remove ListItems from the mentioned List NintexWorkflowHistory.
Conclusion
Keeping this in mind, you will have a long time stable Workflow Environment! Some of the mentioned things are configurable now in the CA if you have the Nintex Version >2.2 installed. The ToDos are valid (or a must) for Nintex 2007 either.
Create some BatchFiles and use you TaskScheduler to automate this. It´s a bit tricky to automate the manually needed Submission with “yes”. If you want to know how that works, don`t hesitate to contact us at ecspand, d-velop or leave a Comment.
Happy Coding!
Latest Comments