使用 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!
当我尝试使用 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!