You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MarkLogic中通过会话ID查看运行的查询及详情

检查MarkLogic指定会话ID对应的运行查询方法

通过日志查看会话关联的运行查询

MarkLogic的请求日志(比如RequestLog.txt)会记录会话ID(对应字段session-id)和请求的基础信息,但默认日志不会完整输出查询内容,需要先调整配置:

  • 登录Admin界面,进入Groups > [目标组] > App Servers > [对应应用服务] > Logging,把Request Log Level设为debug。开启后,日志会包含查询语句、发起用户、请求时间等细节。
  • 直接在日志文件里搜索目标会话ID,就能定位到对应的请求记录,从中提取你需要的信息。

用API或内置函数获取会话查询详情

MarkLogic提供了两种直接通过会话ID查询的方式:

内置XQuery管理函数

使用admin:cluster-get-requests()或admin:server-get-requests(),结合会话ID过滤结果:

xquery version "1.0-ml";
import module namespace admin = "http://marklogic.com/xdmp/admin" at "/MarkLogic/admin.xqy";

let $target-session := "your-session-id-value"
return
admin:cluster-get-requests()
=> filter(fn:matches(xdmp:request-field(., "session-id"), $target-session))
=> for-each(function($req) {
  map:merge((
    map:entry("session-id", xdmp:request-field($req, "session-id")),
    map:entry("query-content", xdmp:request-field($req, "query")),
    map:entry("user", xdmp:request-field($req, "user")),
    map:entry("start-time", xdmp:request-field($req, "start-time"))
  ))
})

这个查询会返回集群内当前运行或近期完成的请求,过滤出目标会话的条目后,能拿到查询内容、用户、启动时间等核心信息。

REST管理API

调用/manage/v2/requests端点,传入session-id参数过滤:

curl -X GET "http://<your-host>:<manage-port>/manage/v2/requests?format=json&session-id=your-session-id-value" \
  -u <admin-username>:<admin-password>

返回的JSON响应里会包含该会话下请求的完整详情,包括查询文本、用户身份、请求状态、运行时长等。

关键注意事项

  • 操作这些工具需要具备管理权限(比如admin角色,或拥有manage-requests权限的自定义角色)。
  • 已完成的请求只能从历史日志中查询,admin函数和REST API主要针对当前运行或刚结束不久的请求。
  • 如果会话已经过期,系统可能已经清理了相关的运行数据,此时只能依赖日志记录。

内容的提问来源于stack exchange,提问作者Aviator

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 23:24:47