I think I may have fixed this problem with more aggressive explicit
locking and putting all the observation code in transactions.
Its also possible that updates are now serial so the problem just
doesn't happen, rather than being fixed..... alternatively you could
say its the right way to do it.
The only problem that I have now is that the locks timeout in the
observation code before they have a chance to get granted, but thats
my problem (I am using an external lock manager to avoid the journal
records hitting the db on lock/unlock)
On 24 Mar 2009, at 21:00, Ian Boston wrote:
I have some code that writes about 4 nt:file nodes which are
observed. (each group of 4 files represents a user and their profile)
I test this will a perl script over HTTP to rest that is capable of
running multithreaded.
When I run single threaded, then there is no problem, I can create
25k, although a bit slowly.
However when I run with 8 threads I get the below in within the
first few create requests.
Any idea what the problem is ?
Ian
[exec] Caused by: javax.jcr.RepositoryException:
09a609cb-267f-4dfc-bc95-56eff64a08b7: 09a609cb-267f-4dfc-
bc95-56eff64a08b7
[exec] at
org
.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:
505)
[exec] at
org
.apache
.jackrabbit
.core
.version
.AbstractVersionManager
.createVersionHistory(AbstractVersionManager.java:321)
[exec] at
org
.apache
.jackrabbit
.core
.version.XAVersionManager.createVersionHistory(XAVersionManager.java:
138)
[exec] at
org
.apache.jackrabbit.core.ItemImpl.initVersionHistories(ItemImpl.java:
782)
[exec] at
org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1224)
[exec] at
org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:897)
[exec] at
org
.sakaiproject
.kernel
.jcr
.jackrabbit.sakai.SakaiXASessionImpl.save(SakaiXASessionImpl.java:220)
[exec] at
org
.sakaiproject
.kernel.jcr.jackrabbit.JCRServiceImpl.save(JCRServiceImpl.java:114)
[exec] at
org
.sakaiproject
.kernel.rest.RestUserProvider.createUser(RestUserProvider.java:378)
[exec] at
org
.sakaiproject
.kernel.rest.RestUserProvider.dispatch(RestUserProvider.java:134)
[exec] ... 22 more
[exec] Caused by:
org.apache.jackrabbit.core.state.NoSuchItemStateException:
09a609cb-267f-4dfc-bc95-56eff64a08b7
[exec] at
org
.apache
.jackrabbit
.core
.state
.SharedItemStateManager.getItemState(SharedItemStateManager.java:260)
[exec] at
org
.apache
.jackrabbit
.core
.state.LocalItemStateManager.getNodeState(LocalItemStateManager.java:
93)
[exec] at
org
.apache
.jackrabbit
.core
.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:
158)
[exec] at
org
.apache
.jackrabbit
.core.state.XAItemStateManager.getItemState(XAItemStateManager.java:
243)
[exec] at
org
.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:
533)
[exec] at
org
.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:
503)