2010-08-02 69 views
3

我想设置v$session.program Oracle属性以便在会话表中具有可用信息。我正在使用JPA,它使用在Jboss的deploy文件夹中部署的oracle-xa-ds.xml创建的jndi XA datasource,因此我无法访问Connection的构造函数。 我可以在JPA 1中通过将JPA强制转换为Hibernate类来访问JPA 2中使用解包的Connection对象,但是没有属性设置器(只有客户端信息属性是继续启动JDBC 4.0的方式)。

所以我的问题是,使用JPA使用JBoss 4.2(使用Hibernate):

  • 是否有可能配置在persistence.xml的V $ session.program?
  • 是否可以在oracle-ds.xml中配置v $ session.program?
  • 他们的解决方案是否有其他方法?

谢谢你的宝贵意见和答案!

回答

1

今天我有同样的问题,很多fiddeling和阅读文档后,终于我有激动人心的时刻:

加入以下参数:

<xa-datasource-property name="connectionProperties">v$session.program=YourUniqueName</xa-datasource-property> 

就是这样。

1

我敢肯定,这一点必须记录在案的地方,但这里是我们可以在JBoss维基发现:

How To Specify "PROGRAM" Oracle Connection Property

JBoss的版本:4.0.3 JBoss的SP1,Oracle数据库版本: 10克

为了能够区分在Oracle服务器侧的JDBC连接 ,其通过不同的JBoss 实例创建 ,Oracle的程序连接离子 属性可能的 Oracle专用JDBC数据源配置中使用下列变量设置 文件

<connection-property name="v$session.program">ADistinguishedNameForPROGRAMProperty</connection-property> 

... 
<connection-url>AConnectionURL</connection-url> 
<connection-property name="v$session.program">ADistinguishedNameForPROGRAMProperty</connection-property> 
<driver-class>oracle.jdbc.OracleDriver</driver-class> 
... 

这样的DBA可以有适当的 粒度在:

  • AWRs
  • v $ session视图
  • 被检查的其他工具/评估程序连接 财产
+0

谢谢帕斯卡,感谢您的回答,但不幸的是,连接属性不适用于XA数据源。对于XA数据源,只有xa-datasource-property标记可用,并且只能配置可用作XADataSource JavaBeans属性的属性。我刚刚发现了一个同样的问题http://community.jboss.org/message/227607#227607 – snowflake 2010-08-03 08:11:17

+1

@snowflake:Erf,没有注意到你使用XA的事实。将需要挖掘更多......如果你没有按照链接建议的那样实施补丁:) – 2010-08-03 09:44:28

+0

我希望我有机会在Jboss 5或更高版本上测试它,然后我将有效地考虑实施补丁! – snowflake 2010-08-03 12:43:12