It turns out the behavior indicated above is due to a bug in the nosqlSession manager. It does not update the last accessed time when reading the session from the database. As such, if a node isn't accessed within the session timeout period, it will invalidate the session, regardless whether any other node was accessed. I have filed this bug report: https://bugs.eclipse.org/bugs/show_bug.cgi?id=397193
We fixed it by making custom modifications to the files indicated in the bug so that the access time for the session was updated with the access time stored in the database when the session was refreshed from the database.