我正在使用Marklogic 8.0.6和xquery请求。
我通过应用服务器执行那些xquery请求,但似乎巨大的请求到达超时并返回以下错误:
<?xml version="1.0"?>
<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=false;Switch.System.IO.BlockLongPaths=false"/>
<runtime targetFramework="4.7"/>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7"/>
</runtime>
<appSettings>
<add key="SQLServer" value="Server2"/>
<add key="database" value="FolderSizeMonitor"/>
<add key="server" value="Server3"/>
</appSettings>
<startup>
<dir ID="1" path="\\server20\d$\Data\BEG\Emergency\Emergency Management\Very Very Very Long pathVery Very Very Long path" DepthToLook="4">
</dir>
</startup>
</configuration>
您能否修改设置以增加此超时?
谢谢, 罗曼:)
答案 0 :(得分:4)
超时通常表明查询正在低效地执行操作(不利用索引,过滤等)。
请务必查看对查询进行概要分析(单击“查询控制台中的配置文件”选项卡并运行),使用xdmp:plan()等,然后查看Query Performance and Tuning Guide
如果要返回大量文档,请查看使用分页并使用多个请求获取较小的文档集,或者使用批处理工具或框架,例如Java Data Movement SDK,{{3 }},或CORB。
话虽这么说,要设置请求的超时,请使用MarkLogic Spring Batch
xdmp:set-request-time-limit(600)