【发布时间】:2010-10-24 04:17:28
【问题描述】:
我需要改进通常在固定数据库用户上运行的 Web 应用程序的可追溯性。 DBA 应该能够快速访问有关降低数据库性能的重度用户的信息。
5 年前,我实现了一个 .NET ORM 引擎,它使用 DBMS_APPLICATION_INFO 包记录用户和服务器。在连接管理器上方使用包装器,代码如下:
DBMS_APPLICATION_INFO.SET_MODULE('" + 用户 + " - " + appServerMachine + "','');
每次连接从池中获得连接时,都会执行该包以将信息记录在 V$SESSION 中。
有没有人使用 Toplink 或 Hibernate 发现或实施了解决此问题的方法?这个问题有默认实现吗?
我在这里找到了我 5 年前实施的解决方案,但我想知道任何人有更好的解决方案并与 ORM 集成。
using DBMS_APPLICATION_INFO with Jboss
我的应用程序在 Spring 之上,DAO 是用 JPA(使用休眠)实现的,并且实际上直接在 Tomcat 中运行,计划(明年)迁移到 SAP Netwevare Application Server。
谢谢。
【问题讨论】:
-
从 DBA 的角度来看,应用程序开发人员通常不会这么想。我赞赏您将其合并到您的数据库访问层中。在我无法让开发人员在数据库访问层代码中添加对 SET_IDENTIFIER 的调用的情况下,我会保留一个登录触发器。
标签: java oracle hibernate logging application-pool