hi ian On Thu, Mar 5, 2009 at 2:26 AM, Ian Boston <[email protected]> wrote: > I have an AccessManager implementation that uses its own session to get > properties (ACL) on nodes and the parents of nodes that it is controlling. > > I get lots of > WARN: overwriting cached item b38c5119-2aa2-4e08-b4bf-41dd1720c197 > (2009-03-03 17:10:59,740 > TP-Processor3_org.apache.jackrabbit.core.ItemManager) > > I think this is because the ItemManager is checking with the AccessManager, > which is adding the item to the cache in ItemManager, and when the current > thread returns to ItemManager to put the item in...... its already been > pulled in by AccessManager.. hence the warn.
that's correct. > > I am using 1.4.8, I couldn't find anything in jira to help. > > So, my questions: > > If I want to store ACL's on the nodes, can I use the same session as is > accessing the node, or do I have to create a second session just for > accessing the ACL's ? i would recommend using a dedicated session for accessing the ACL's. > > Will creating a second session per AccessManager have a performance impact ? a session is not light-weight and does have a considerable memory footprint. assuming you've got enough jvm heap it shouldn't cause performance issues. you might try to use a shared ACL reading session for multiple AccessManagers in order to reduce memory consumption. we've tried to make read-only sessions thread-safe, however this has only been a best effort. you might still run into the occasional concurrency issue under heavy load. our 'official' stamenet is: a Session is not thread-safe. cheers stefan > > Ian >
