We're trying to use the SlingPostServlet to save content to a page when an author interacts with various input. For example, we have a checkbox in the authoring environment that will post it's "checked" status every time it is clicked. This works well, except when the user clicks the checkbox rapidly or if the network is sluggish. This causes two or more requests to go out to the same node and at least one of the responses will return a 500 internal server error with the following message -
org.apache.sling.api.resource.PersistenceException: Unable to commit
changes to session.
I'm assuming this is happening because the node is locked by the first request when the second request tries to alter the value. Is there any easy way to get around this from the server side? The only solution i've thought of is to use javascript and build a queueing system for the requests on the client side so we only allow one request at a time, but it makes me nervous to queue up data like that.
Thanks
Solved! Go to Solution.
Views
Replies
Total Likes
Do you have clustered enviroment? if so, you can look at the following post
What happens is when you are continuously hitting it makes a server call which calls session.save for each hit. Some how if you have network problems or not enough gap between the request, this creates a conflict with previous request. Resulting in this exception.
Do you have clustered enviroment? if so, you can look at the following post
What happens is when you are continuously hitting it makes a server call which calls session.save for each hit. Some how if you have network problems or not enough gap between the request, this creates a conflict with previous request. Resulting in this exception.
Thanks, we're only running one author server so this isn't applicable to our situation. I'll most likely end up writing the queue system in javascript so only one request goes out at a time.