
xdmp:set-transaction-mode( $value as xs:string ) as empty-sequence()
Set the transaction mode for the current session. Calling this function has no effect on existing transactions.
| Parameters | |
|---|---|
| value | The new transaction mode. Must be one of "auto", "query", "update", "query-single-statement", "update-auto-commit", and "multi-auto". |
Transaction mode determines what type of transaction MarkLogic creates
during a session. The transaction type is fixed when the transaction is
created, so calling xdmp:set-transaction-mode never affects
the current transaction.
The transaction mode defaults to "auto". To change the mode, you
may either call xdmp:set-transaction-mode or use the
xdmp:transaction-mode XQuery prolog option.
Use the xdmp:transaction-mode option to set the
transaction mode before a transaction exists. Use
xdmp:set-transaction-mode to set the mode during execution.
For more details, see Understanding Transactions in MarkLogic Server in the Application Developer's Guide.
declare option xdmp:transaction-mode "update";
(: this transaction runs in update mode, due to the option :)
xdmp:set-transaction-mode("query"),
xdmp:document-insert("/docs/mydoc.xml", <myData/>),
xdmp:commit();
(: but this new transaction runs in query mode :)
xdmp:get-transaction-mode(),
fn:doc("/docs/mydoc.xml")
=> "query"
<myData/>