Check your code for calls to http://docs.marklogic.com/xdmp:set-session-field and its friends. Those will block concurrent requests, because the session data has to be locked for update. I believe the lock is per-host, not per-cluster or per-port.
-- Mike On 4 Jan 2013, at 08:00 , Steve Carton <[email protected]> wrote: > Btw, if I delete the session cookie in my browser, the progress query starts > working. > > Steve > On 1/3/2013 5:15 PM, Steve Carton wrote: >> Hi Guys, >> >> I'm back at this problem after the holidays - and I hope all of you had a >> nice time and a happy new year. >> >> I'm beginning to wonder if this is a Marklogic issue at all, but I'm going >> to post my latest tests and see if these cause someone to think of an >> answer. Failing that, I'll try and put the code out for your consumption. >> >> I discovered some interesting things. The way this application works (it is >> a browser application) is that the user first comes to a "Dashboard" that >> gives them some data statistics and some options. It also presents a number >> of content editions. The user can click on an edition and they get more >> stats and some edition options. One of the edition options is to perform my >> cross-reference analysis. If the user clicks on that link, the browser is >> directed to a URL that controls the cross-reference analysis. From there, >> the user can start the analysis - clicking the start button triggers an Ajax >> call to ML to run the analysis and then subsequent Ajax calls for the >> progress. It is these subsequent calls that lock up. >> >> What I've found is that if I start a browser and point it at the URL for the >> cross-reference analysis page, and then start the analysis, it all works >> fine - the analysis call is made, the analysis starts and the subsequent >> progress requests are made, processed and the progress bar is updated. It is >> only if I first go to that opening dashboard that the progress calls wait. >> And, if I first go to the dashboard and then to the cross-reference analyzer >> and start it, although the Ajax calls to update the progress wait, I can >> open a different browser and enter the URL to the progress XQY directly and >> that works. >> >> So this had me believing that one of two things is happening - either the >> browser is not clearing some object or another from the dashboard that is >> preventing the progress Ajax requests from being sent to the server, or that >> there is some kind of session-related block in Marklogic that is somehow set >> and not cleared when the dashboard is accessed, but not set when the >> cross-reference analyzer is loaded directly. >> >> So I installed a TCP/IP sniffer to look at the requests being sent to the >> server and as near as I can tell, the progress requests are in fact going to >> the server even though a response is not being sent back. >> >> Is there such a think as a session lock? Or a session query limit? >> >> >> On 12/20/2012 7:17 PM, Charles Greer wrote: >>> Hi Steve, >>> >>> Did you verify Geert's guess that the status query might be running in >>> update mode? >>> >>> What you're describing now is rather perplexing, you might want to share >>> some code; maybe the issue it can be reproduced. >>> >>> Charles >>> >>> >>> On 12/20/2012 03:33 PM, Steve Carton wrote: >>>> Geert, Charles, >>>> >>>> To test this, I removed logging entirely so that the main query now just >>>> loops over all of the cross reference elements. >>>> >>>> >>>> Some of these elements get an update made to them - a flag if you will >>>> indicating that the cross reference target doesn't exist - cannot be >>>> resolved. >>>> >>>> >>>> But even with creation of the log elements removed, the second, progress >>>> query waits for the first one to complete. >>>> >>>> >>>> Steve >>>> >>>> ==================================================== >>>> >>>> >>>> 'stitching': or just use search:search on that log collection to scroll >>>> through the log page by page. If you have a range index on some dateTime >>>> field, you should be able to sort it as well.. >>>> >>>> Cheers, >>>> >>>> Geert >>>> >>>> *Van:* [email protected] [mailto: >>>> [email protected]] *Namens *Charles Greer *Verzonden:* >>>> woensdag 19 december 2012 22:25 *Aan:* [email protected] >>>> *Onderwerp:* Re: [MarkLogic Dev General] Fwd: Re: running two queries at >>>> the same time >>>> >>>> Hello Steve, >>>> >>>> Geert's suggestion might avoid this issue entirely. MarkLogic is much >>>> better at inserting a lot of small documents than appending to a big one. >>>> I think you'll end up with a lot less disk IO by avoiding an operation >>>> that updates a big document lots of times. >>>> >>>> If you need to return the whole log as one document you might provide an >>>> endpoint that stitches together a lot of documents into one wrapper. >>>> >>>> Hope that helps, >>>> >>>> Charles >>>> >>>> On 12/19/2012 07:36 AM, Steve Carton wrote: >>>> >>>> Geert - >>>> >>>> They are two separate .xqy files. The big one does update the log >>>> document. The small one has an option to return log information or to >>>> return just progress. >>>> >>>> So I removed the option to return the log data. Now it simply returns the >>>> contents of the server fields. But it still waits. >>>> >>>> _______________________________________________ >>>> >>>> General mailing list >>>> >>>> [email protected] >>>> >>>> http://developer.marklogic.com/mailman/listinfo/general >>>> >>>> >>>> >>>> _______________________________________________ >>>> General mailing list >>>> >>>> [email protected] >>>> http://developer.marklogic.com/mailman/listinfo/general >>> >>> -- >>> Charles Greer >>> Senior Engineer >>> MarkLogic Corporation >>> >>> [email protected] >>> >>> Phone: +1 707 408 3277 >>> >>> www.marklogic.com >>> >>> >>> _______________________________________________ >>> General mailing list >>> >>> [email protected] >>> http://developer.marklogic.com/mailman/listinfo/general >> >> -- >> Steve >> >> >> _______________________________________________ >> General mailing list >> >> [email protected] >> http://developer.marklogic.com/mailman/listinfo/general > > -- > Steve > _______________________________________________ > General mailing list > [email protected] > http://developer.marklogic.com/mailman/listinfo/general _______________________________________________ General mailing list [email protected] http://developer.marklogic.com/mailman/listinfo/general
