我在oracle数据源中填充v $ session属性时出现问题,即启动tomcat服务器后我的应用程序将使用连接,现在如果我使用以下查询查询数据库,我应该从DB获取一行,目前我没有得到任何行第一种方法,但第二种方法
select schemaname, osuser, machine, program
from v$session
where program = 'Test';
下面是我正在使用的配置和工具,任何有助于重新审核的帮助都是适用的。
由于
1.Tomcate 6.0.35.3
2.Oracle version :Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
3.Spring and JPA
方法1: -
server.xml:
<Resource
name="jdbc/oraclepool"
auth="Container"
factory="oracle.ucp.jdbc.PoolDataSourceImpl"
type="oracle.ucp.jdbc.PoolDataSource"
description="main DB"
connectionFactoryClassName="oracle.jdbc.pool.OracleDataSource"
connectionPoolName="UCPPool"
url="${db.url}"
user="${db.username}"
password="${db.password.encrypted}"
initialPoolSize="3"
minPoolSize="1"
maxPoolSize="5"
maxIdleTime="${db.maxIdleTime}"
inactiveConnectionTimeout="${db.inactiveConnectionTimeout}"
abandonedConnectionTimeout="${db.abandonedConnectionTimeout}"
timeToLiveConnectionTimeout="${db.timeToLiveConnectionTimeout}"
maxStatements="${db.maxOpenPreparedStatements}"
timeoutCheckInterval="${db.timeoutCheckInterval}"
connectionWaitTimeout="${db.connectionWaitTimeout}"
sqlForValidateConnection="${db.validationQuery}"
connectionProperties="v$session.program=Test;"
/>
方法2: -
在java类中添加了下面的代码片段,它起作用了。
当我用下面的查询查询数据库时,我得到了这行。
select schemaname, osuser, machine, program
from v$session
where program = 'Test';
Connection conn=null;
// set connection properties
Properties info = new java.util.Properties();
info.put("v$session.program", "Test");
// connect to database
Context context = new InitialContext();
PoolDataSourceImpl ds = (PoolDataSourceImpl)context.lookup("java:comp/env/jdbc/oraclepool");
((PoolDataSourceImpl)ds).setConnectionProperties(info);
conn = ds.getConnection();
任何人都能说出第一种方法的问题
再次感谢。