admin:appserver-set-multi-version-concurrency-control( $config as element(configuration), $appserver-id as xs:unsignedLong, $value as xs:string ) as element(configuration)
This function sets the multi version concurrency
control value in the configuration for this App
Server. This option specifies how the latest
timestamp is chosen for lock-free queries.
When set to contemporaneous
, the server
chooses the latest timestamp for which any
transaction is known to have committed, even though
there still may be other transactions for that
timestamp that have not yet fully committed. Queries
will see more timely results, but may block waiting
for contemporaneous transactions to fully commit.
When set to nonblocking
, the server
chooses the latest timestamp for which all
transactions are known to have committed, even though
there may be a later timestamp for which another
transaction has committed. Queries won't block
waiting for transactions, but they may see less timely
results.
http://marklogic.com/xdmp/privileges/admin/app-server
http://marklogic.com/xdmp/privileges/admin/app-server/{id}
http://marklogic.com/xdmp/privileges/admin/group
http://marklogic.com/xdmp/privileges/admin/group/{id}
xquery version "1.0-ml"; import module namespace admin = "http://marklogic.com/xdmp/admin" at "/MarkLogic/admin.xqy"; let $config := admin:get-configuration() let $groupid := admin:group-get-id($config, "Default") return admin:appserver-set-multi-version-concurrency-control($config, admin:appserver-get-id($config, $groupid, "myAppServer"), "nonblocking") (: returns the new configuration element -- use admin:save-configuration to save the changes to the configuration or pass the configuration to other Admin API functions to make other changes. :)