JBoss kullanıyorsanız, "geçerli bağlantı denetleyicisi" kullanabilirsiniz. Bu sınıf, Bağlantının geçerliliğini kontrol etmek için normal olarak kullanılır. Ancak, Bağlantı havuzu kullanıcıya Bağlantı verildiğinde her zaman çağrılacağından, DBMS_ APPLICATION _INFO değerini ayarlamak için kullanabilirsiniz.
Böyle kahin-ds.xml böyle bir sınıf bildirmek:
<local-tx-datasource>
<jndi-name>jdbc/myDS</jndi-name>
<connection-url>jdbc:oracle:thin:@10.10.1.15:1521:SID</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<security-domain>MyEncryptDBPassword</security-domain>
<valid-connection-checker-class-name>test.MyValidConn</valid-connection-checker-class-name>
<metadata>
<type-mapping>Oracle9i</type-mapping>
</metadata>
</local-tx-datasource>
Sınıfınız org.jboss.resource.adapter.jdbc.ValidConnectionChecker arabirimini uygulamalıdır. isValidConnection:
<dependency>
<groupId>jboss</groupId>
<artifactId>jboss-common-jdbc-wrapper</artifactId>
<version>3.2.3</version>
<scope>provided</scope>
</dependency>
Bu arayüz tek yöntemi vardır: Maven kullanıyorsanız , aşağıdaki bağımlılık ile bu arayüzü içerebilir. benim uygulanmasını kopyalayın:
public SQLException isValidConnection(Connection arg0) {
CallableStatement statement;
try {
statement = arg0.prepareCall("call dbms_application_info.set_client_info('"+getInfos()+"')");
statement.execute();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
yardımcı olur Umut!
Benoît
-ds.xml, içeri her oturumun
PROGRAMI sütunu dolduracaktır
v $ session.program ve bu özelliğin değeri denilen bir bağlantı özelliği ayarlayabilirsiniz sizin de