使用Jboss和JPA(hibernate)配置JDBC oracle特定属性v $ session.program

时间:2010-08-02 15:25:09

标签: oracle hibernate jpa jboss datasource

我想设置v$session.program Oracle属性,以便在会话表中提供信息。我正在使用带有jndi XA 数据源的JPA,该数据源是使用部署在Jboss的deploy文件夹中的oracle-xa-ds.xml创建的,因此我无法访问Connection的构造函数。 我可以在JPA 1中使用unwrap访问Connection对象,在JPA 1中将JPA强制转换为Hibernate类,但是没有属性setter(只有Client Info属性可以继续启动JDBC 4.0)。

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

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

感谢您提出宝贵的意见和解答!

2 个答案:

答案 0 :(得分:1)

我很确定必须在某处记录,但这是我们在JBoss wiki中可以找到的内容:

  

How To Specify "PROGRAM" Oracle Connection Property

     

JBoss版本:JBoss 4.0.3 SP1,Oracle DB版本:10g

     

能够区分JDBC   Oracle服务器端的连接,   这是由不同的JBoss创建的   实例, Oracle的PROGRAM连接   属性可能设置在   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 view
  •   
  • 正在检查/评估PROGRAM连接的其他工具   属性
  •   

答案 1 :(得分:1)

今天我遇到了同样的问题,经过大量的阅读和阅读文档后,我终于得到了尤里卡时刻:

添加以下参数:

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

多数人。