We have a long-lived Process, which my client has noticed some inconsistency in the numbering.
i.e. In the Admin UI Process List, we can see (in Chronological order from oldest to newest creation date) the following IDs:
Can someone explain why the ordering appears out of order (note - this is not a cluster, but a single server running on SQL server database). Also, can you confirm it will maintain referential integrity ... i.e. if the number keeps incrementing from 818, we won't get a duplicate of a previous ID such as 901
The list is ordered in most recently updated Process Instance at top.
i.e. If you notice the Update Date/Time, you will find that the recently modified process will appear first. That is how it is ordered.
I appreciate that the list is ordered by update date.
However my question is why have the Process IDs been created out of order. i.e. an Old Process ID is larger than a more recent one.
e.g. 916 is from October, whilst 818 is from November
As odd as it sounds there is no guarantee that the process ids,or Task Ids, will be in consecutive order.
Numbers are assigned in blocks (task are blocks of 100, not sure block size for proc instances). When the server starts it looks for next starting block number. That's why you get taskid = 1 for a new install and then after restarting the server you get taskid starting at 101. The same conept works with Process IDs as well.
If you require an ID value to be in a consecutive order then your best bet would be to assign your own ID as process field and then expose that process field to the end user which would allow the user to sort on that ID.
Hope that helps,
In normal scenarios, the Process Id will be in the order of increasing
sequence. However, sometimes we noticed that there is a deviation in that.
At any case, the Process Id is always unique across each server / server