Using sling6 stand alone jar file, if I create 50 nodes and 50 properties on each node using 4 concurrent POSTs: $ seq 50 | xargs -P2 -I% bash -c "seq 50 | xargs -P2 -I~ curl -s -u admin:admin -Fprop~=value~ localhost:5100/tmp/test/node%" > /dev/null (more than one POST to same node)
I get garbage nodes like /tmp/test/node1[2] . And, node1 doesn't get all 50 properties. That seems to be due to concurrent POST to the same node. For example, executing these in parallel creates node1[2] even though I am POSTing to node1 curl -u admin:admin -Fprop1=value1 localhost:5100/tmp/test/node1 curl -u admin:admin -Fprop2=value2 localhost:5100/tmp/test/node1 When I use 4 concurrent POSTs but force them to POST to different nodes, I don't get such weird behavior: $ seq 50 | xargs -P4 -I% bash -c "seq 50 | xargs -P1 -I~ curl -s -u admin:admin -Fprop~=value~ localhost:5100/tmp/test/node%" > /dev/null I don't really have control of clients (web <form>'s). More than one user might submit the same form that will POST to same node. Is there a way to control concurrent number of POSTs to the same node in sling? I can't find plausible configuration on under /system/console/configMgr/ Or, can this be fixed through jackrabbit configuration? Or should I use a proxy server that can allow only 1 concurrent POST per url? Has anyone encountered problems with concurrent POSTs to the same node? How did you resolve? On Thu, Feb 7, 2013 at 5:21 PM, Paul McMahon <[email protected]> wrote: > I don't think that you'd really want Sling running in single threaded mode > - your performance would rapidly become unusable. > > Given that error I assume this is a CQ instance. You might want to check > with daycare - depending on which version of CQ you are one there might be > hot fix that resolves that issue - I seem to recall one at least > (specifically the on around replication data). > > Paul McMahon > > > ________________________________ > From: Sam Lee <[email protected]> > To: [email protected] > Sent: Thursday, February 7, 2013 10:23 AM > Subject: single threaded mode? > > Hey, > > I am getting lots of: > Caused by: org.apache.jackrabbit.core.state.StaleItemStateException: > 30a33d9e-ed9a-42bf-a8c6-14c74b6b3858/{ > http://www.day.com/jcr/cq/1.0}lastReplicatedBy has been modified > externally > > on different JCR items. > > How can I run sling in single threaded mode? Only one thread will write to > the repository. Or, one servlet thread handles all concurrent HTTP requests > (after queuing them up). > Is this possible? >
