在tomcat9中,context.xml中有一个设置
<Resource name="jdbc/db2xx" auth="Container"
type="javax.sql.DataSource" driverClassName="com.ibm.db2.jcc.DB2Driver"
maxTotal="100" maxIdle="30"
maxWaitMillis="-1" username="xx" password="xx"
url="jdbc:db2://xxxx:xxx/dbname;" />在Java中是:
try {
Class.forName("com.ibm.db2.jcc.DB2SimpleDataSource");
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
com.ibm.db2.jcc.DB2SimpleDataSource ds = (com.ibm.db2.jcc.DB2SimpleDataSource) envContext.lookup("jdbc/db2xx");
ds.setClientProgramName("MyApplication");
conn = ds.getConnection();
}但我错了:
java.lang.ClassCastException: org.apache.tomcat.dbcp.dbcp2.BasicDataSource cannot be cast to com.ibm.db2.jcc.DB2SimpleDataSource我要换衣服吗?
org.apache.tomcat.dbcp.dbcp2.BasicDataSource
在哪里?要点是
ds.setClientProgramName("MyApplication");
因为我想看看
MyApplication in APPLICATION_NAME
当我跑的时候
SELECT APPLICATION_NAME FROM TABLE(MON_GET_CONNECTION(CAST(NULL AS BIGINT),-2))
或者还有别的办法吗?
如果我正在使用javax.sql.DataSource程序工作,但我不能使用setClientProgramName。
在maven pom中:
<dependency>
<groupId>com.ibm.db2</groupId>
<artifactId>jcc</artifactId>
<version>11.5.7.0</version>
</dependency>发布于 2022-01-27 13:01:58
ApplicationName
ClientAccountingInformation
ClientHostname
ClientUser上述链接中提到的这些属性不能用URL设置。
它们可以使用JDBC 4方法(使用db2jcc4.jar,而不是JDBC 3实现的db2jcc.jar )来设置,setClientInfo 只用于,如下所示:
conn = ds.getConnection();
conn.setClientInfo("ApplicationName", "MyApplication");https://stackoverflow.com/questions/70878117
复制相似问题