【发布时间】:2020-01-23 15:35:26
【问题描述】:
让我们看一个基本的网络应用架构,即客户端 网络服务器 应用服务器 数据库
在很多情况下,我们需要在应用程序中端到端地跟踪用户活动。例如:哪个用户会话对应于 DB 中运行不佳的查询?等等
我们有一个明确的方法来获取数据库中的会话数据(我们(或任何)Oracle DB 的 v$session)。如果我们一直返回到客户端,我们会通过 M&A 工具 (Dynatrace) 跟踪 cookie,以及在 Web 服务器和应用服务器日志中跟踪用户 ID。
但是我无法在数据库会话记录和特定用户 http 会话之间建立连接,因为数据库中的所有会话都标记有相同的应用程序用户 ID(Wildfly 用户 ID 用于建立数据源连接)。
能否请您帮助如何建立这种联系,以便可以追踪整个用户旅程?
我尝试在 jmx 控制台中检查可以提供此信息但找不到的 mbean。表 v$sql_bind_capture 提供绑定变量数据。如果幸运的话,一些绑定变量可用于指示单个用户[变量,如用户 ID(或)位置(如果使用)],但不是跟踪所有用户的可靠方法。
【问题讨论】:
标签: oracle session wildfly session-cookies jmx