Транзакции управляются только для постоянного хранения в базе данных.
xdmp.save()
сохраняет в файловую систему локального E-узла, который не является транзакционным или не используется в кластере.
Напротив, xdmp.documentInsert()
вставляет в базу данных. Операции базы данных буферизуются до завершения основного модуля, после чего все операции по умолчанию применяются в одной транзакции.
Таким образом, в приведенном выше примере явные транзакции не потребуются. Либо обе вставки документа будут успешными, либо ни одна из них не будет успешной.
Явные транзакции полезны для сохранения транзакции открытой для дополнительной работы при другом вызове того же основного модуля или другого основного модуля. Там, где это возможно, следует избегать явных транзакций из-за дополнительной сложности, необходимости привязки хоста к клиенту и т. Д.
Возможно ли, что xdmp.documentInsert()
сможет удовлетворить ваши требования? Например, вставив модули XQuery в базу данных контента для последующей загрузки в каталог проекта в другой системе?
Надеясь, что поможет,