使用 REST 存储 200MB+ 文件时出现 MarkLogic "XDMP-FRAGTOOLARGE" 错误

MarkLogic "XDMP-FRAGTOOLARGE" error while storing 200MB+ File using REST

当我尝试使用 REST 将 200MB+ xml 文件存储到 marklogic 时,出现以下错误“XDMP-FRAGTOOLARGE: Fragment of /testdata/upload/submit.xml too large for in-memory storage”。

我尝试了 Fragment Roots 和 Fragment Parents 选项,但仍然出现相同的错误。

但是当我在 uri 中存储不带“.xml”扩展名的文件时。它会保存文件,但不能对其执行 Xquery 操作。

MarkLogic 将无法从没有扩展名的 uri 派生 mime。然后它将退回到将其存储为二进制文件。

我认为如果您使用 xdmp:document-从 QConsole 加载,您可能能够正确加载它,因为它不会首先尝试将整个文档保存在内存中。虽然它对你没有多大帮助,但你可能会在其他地方遇到同样的错误。 REST api 必须在内存中传递它,所以不会像这样工作。

您可以在 Admin UI 中提高内存设置,但通常最好分开输入。 MarkLogic Content Pump (MLCP) 将允许您使用 aggregate_record 选项执行此操作。这将根据特定元素将文件分成更小的部分,并将它们作为单独的文档存储在 MarkLogic 中。

HTH!