Concurrency issue due to parallel processing

Certified Associate Developer

In our Appian application there is a Process Model which is associated with a Form and it is used for updating some user performance related data along with some status information like Enabled, Started, Initiated, Acknowledged and Filed. The Form is being used by Manager and his/her Subordinates and there is a both way communication through this Form. Status of the data is changed depending on different stages of communication. Though it is used for both way communications, Process Model has been made such a way so that more than one user can not work simultaneously with the same user data. However one thing is noticed that when limited people are working with the form then it works fine but when 50-60 or more people are accessing the Form simultaneously then in a few cases user data goes back to initial stage. It seems to me that it is a Concurrency issue due to parallel processing. For your convenience I am attaching the screen shots of the Form and the Process Model. Can anyone help me to get read of the issue?

  Discussion posts and replies are publicly visible

  • As you note that only one user can act on one data set at a time, and it appears pessimistic locking is implemented to handle this, I would not expect any amount of concurrent processes using the same interface object, but different data sets, to cause any issues that revert data unless there is a design situation allowing such.

    Are locks granted at both the Add Editing User and Update Status node?  For instance, if a lock was not granted at the Update Status node, a second user could begin and complete an Edit.  After that time if the initial Update process's MER Form node timed out to the Remove Editing User node - if that node is updating the full data set which was queried into a process variable prior to the edit, it would revert any edits made through the other process.  Just a thought - as it appears the "Button?" XOR allows the process to close without updating any data / removing locks (unless you are doing so on the form with a!writeToDataStoreEntity().

    Additionally, are you able to locate any specific instances which have 'reverted' the data for troubleshooting?

  • 0
    Certified Associate Developer
    in reply to Chris

    Thank you for your suggestion. I shall recheck all the nodes which you have mentioned.