【发布时间】:2010-02-28 02:35:53
【问题描述】:
刚刚偶然发现了 Oracle 10g 及更高版本中提供的新 ClientId(又名 client_identifier)变量,并希望将其合并到应用程序中以协助审计跟踪。
该应用正在使用生成的基于企业库 DAAB 的层 (netTiers),该层与 EntLibContrib 一起使用 ODP.NET 驱动程序,因此 CRUD 函数创建一个 OracleDatabase 对象,然后从中检索通用 DbCommand 对象
看起来 OracleConnection 类具有 ClientId 属性,那么在该模式中获取 Connection 对象的最简洁方法是什么?我是否应该从我创建的每个 DbCommand 中获取连接并将其设置在那里,还是有点矫枉过正?
因为 EntLib 在幕后做了大量的连接管理,我不确定是否可以在 CRUD 函数之外的某个地方设置 ClientId 并期望它持续存在?
【问题讨论】:
-
我看不出为什么您不能只获取连接并从 DbCommand 对象更新 ClientId 属性。虽然没有可以直接访问 DbConnection 对象的地方吗?除非 EntLib 对 ClientId 进行处理(我对此表示怀疑),否则它将在您的连接会话的剩余时间内持续存在。
标签: oracle enterprise-library odp.net