xdmp.setTransactionMode( value as String ) as null
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.
// this transaction runs in update mode, due to the declaration xdmp.eval('declareUpdate({explicitCommit: true}); \n\ xdmp.setTransactionMode("query"); \n\ xdmp.documentInsert("/docs/mydoc.json", {"myData": "data"}); \n\ xdmp.commit();'); // but this new transaction runs in query mode xdmp.eval('var res = []; \n\ res.push(xdmp.getTransactionMode()); \n\ res.push(cts.doc("/docs/mydoc.json")); \n\ res;'); => ["query",{"myData":"data"}]
Stack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.