Skip to content

Commit d97f1f7

Browse files
committed
#534 added special handling for ML9.0-1.1
1 parent 38a19b9 commit d97f1f7

File tree

2 files changed

+39
-18
lines changed

2 files changed

+39
-18
lines changed

marklogic-data-hub/src/main/resources/ml-modules/root/com.marklogic.hub/lib/job-lib.xqy

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,30 @@ declare variable $FAILED-KEY := "failed";
1212

1313
(:
1414
: Given a list of job-ids, delete those jobs and any traces associated with them.
15+
:
16+
: ML 9.0-1.1 is the only DHF-supported version that does not support the <update> option
17+
: for xdmp:invoke-function. (<transaction-mode> has been deprecated.)
1518
:)
1619
declare function job:delete-jobs-and-traces($job-ids as xs:string*)
1720
{
1821
let $job-results := job:delete-jobs($job-ids)
22+
let $options :=
23+
<options xmlns="xdmp:eval">
24+
{
25+
if (xdmp:version() = "9.0-1.1") then
26+
<transaction-mode>update-auto-commit</transaction-mode>
27+
else
28+
<update>true</update>
29+
}
30+
<isolation>different-transaction</isolation>
31+
<database>{xdmp:database($config:TRACE-DATABASE)}</database>
32+
</options>
1933
let $deleted-traces :=
2034
xdmp:invoke-function(
2135
function() {
2236
job:delete-traces($job-ids)
2337
},
24-
<options xmlns="xdmp:eval">
25-
<update>true</update>
26-
<isolation>different-transaction</isolation>
27-
<database>{xdmp:database($config:TRACE-DATABASE)}</database>
28-
</options>
38+
$options
2939
)
3040
return
3141
document {

marklogic-data-hub/src/main/resources/ml-modules/services/delete-jobs.xqy

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -31,24 +31,35 @@ declare option xdmp:mapping "false";
3131
: REST API extension to delete jobs and associated traces.
3232
: Note: it shouldn't be necessary to use xdmp:invoke-function below, but a bug
3333
: in ML 8.0-7 (fixed in 8.0-7.1) messes up the transaction mode.
34+
:
35+
: Also, ML 9.0-1.1 is the only DHF-supported version that does not support the
36+
: <update> option for xdmp:invoke-function. (<transaction-mode> has been deprecated.)
3437
:)
3538
declare %rapi:transaction-mode("update") function service:post(
3639
$context as map:map,
3740
$params as map:map,
3841
$input as document-node()*
3942
) as document-node()?
4043
{
41-
perf:log('/v1/resources/delete-jobs:post', function() {
42-
xdmp:invoke-function(
43-
function() {
44-
let $job-ids := fn:tokenize(map:get($params, "jobIds"), ",")
45-
return
46-
job:delete-jobs-and-traces($job-ids)
47-
},
48-
<options xmlns="xdmp:eval">
49-
<update>true</update>
50-
<isolation>same-statement</isolation>
51-
</options>
52-
)
53-
})
44+
let $options :=
45+
<options xmlns="xdmp:eval">
46+
{
47+
if (xdmp:version() = "9.0-1.1") then
48+
<transaction-mode>update-auto-commit</transaction-mode>
49+
else
50+
<update>true</update>
51+
}
52+
<isolation>same-statement</isolation>
53+
</options>
54+
return
55+
perf:log('/v1/resources/delete-jobs:post', function() {
56+
xdmp:invoke-function(
57+
function() {
58+
let $job-ids := fn:tokenize(map:get($params, "jobIds"), ",")
59+
return
60+
job:delete-jobs-and-traces($job-ids)
61+
},
62+
$options
63+
)
64+
})
5465
};

0 commit comments

Comments
 (0)