Hi,
I have sent a request for this issue last month, but my example was too complex.
Here is the simplest example I could get that reproduces the issue. This seems to be a problem with updating restqx functions, so I'm unsure how to reproduce it with a .bsx.
If you use the attached db with the attached query on localhost:8984. The browser should freeze on BaseXMas when accessing debug/debug-freeze.
- The xslt works. If you make the function none updating and return $result. You'll see the video.png in the browser. - The updating function works. If you replace the node $result with <hey/> and comment out the xslt:transform line. The document will be replace in the db. - The two don't work together.
Specific characteristic if this xsl:
- It uses a rest access to extract the path for the video. Without the doc('http://...rest%E2%80%A6') line, this would work.
Note that this used to work with prior versions of BaseX.
Thanks,
France
Hi France,
as your query is an updating one, the server will be deadlocked when triggering another query: the second query cannot be evaluated before the current one has been finished, and the current query is waiting for this second query.
To debug your query, you’ll have to Instead, you’ll need to directly pass on all XML documents to XSLT and remove all the embedded REST calls that point to the same BaseX server instance.
You may as well want to try Jens’ latest database locking mode, which will only lock those databases that will actually be affected by update operations. However, please note the current limitations listed in our documentation [1]
And yet another alternative: multiple read-only and updating operations can also be sequentially chained via restxq:forward [2].
I hope this gives you some clue on how to get rid of the latest conflicts, Christian
[1] http://docs.basex.org/wiki/Transaction_Management#Limitations [2] http://docs.basex.org/wiki/RESTXQ#Forward_and_Redirect
basex-talk@mailman.uni-konstanz.de