By default, access to external resources (files on hard disk, HTTP requests, ...) is not controlled by the transaction monitor of BaseX. You can use custom XQuery locks to do so:
[[Link title]]===Option Declarations, Pragmas, Function Annotations===
{{Mark|Introduced with Version 9.1}}: locks via pragmas and function annotations.
* Similar to the internal database locks, write locks block all other operations while read locks allow parallel access.
* The internal locks and XQuery locks can co-exist (there will be no conflicts, even if your lock string equals the name of a database that will be locked by the transaction manager).
Before {{Version|9.1}}, locks were declared in the {{Code|query}} namespace.
{{Code|basex:read-lock}} and {{Code|basex:write-lock}} options in the query prolog
file:write('config.xml', <config/>)
</pre>
Before {{Version|9.1}}, locks were declared in the {{Code|query}} namespace.
===Java Modules===