gpt4 book ai didi

java - 如何跟踪 Java Web 应用程序中的连接池 - DBMS_APPLICATION_INFO

转载 作者:搜寻专家 更新时间:2023-11-01 03:15:01 24 4
gpt4 key购买 nike

我需要改进通常在固定数据库用户上运行的 Web 应用程序的可追溯性。 DBA 应该能够快速访问有关正在降低数据库性能的重度用户的信息。

5 年前,我实现了一个 .NET ORM 引擎,它使用 DBMS_APPLICATION_INFO 包生成用户和服务器的日志。使用以下代码在连接管理器之上使用包装器:

DBMS_APPLICATION_INFO.SET_MODULE('"+ User + "- "+ appServerMachine + "','');

每次连接从池中获取连接时,都会执行包以将信息记录在 V$SESSION 中。

是否有人使用 Toplink 或 Hibernate 发现或实现了解决此问题的方法?这个问题有默认实现吗?

我在这里找到了 5 年前实现的解决方案,但我想知道任何人有更好的解决方案并与 ORM 集成。

using DBMS_APPLICATION_INFO with Jboss

我的应用程序在 Spring 之上,DAO 是用 JPA(使用 hibernate )实现的,实际上直接在 Tomcat 中运行,并计划(明年)迁移到 SAP Netwevare Application Server。

谢谢。

最佳答案

在 Oracle 10g 中我们可以使用 DBMS_SESSION.SET_IDENTIFIER以唯一标识特定 session 。 Oracle 还提供 a JDBC built-in将其挂接到连接池中。您必须提供自己的方法来唯一标识 session ,这取决于您的应用程序。

然后您的 DBA 将有足够的信息来识别资源匮乏的 session 。

我认识的 DBA 都不会对从中间层生成的巨大文本文件印象深刻。

关于java - 如何跟踪 Java Web 应用程序中的连接池 - DBMS_APPLICATION_INFO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/829302/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com