在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");
因为我想看看APPLICATION_NAME
中的MyApplication
当我跑步时SELECT APPLICATION_NAME FROM TABLE(MON_GET_CONNECTION(CAST(NULL AS BIGINT),-2))
还是有其他办法?
如果我使用javax.sql.DataSource
程序工作,但我不能使用setClientProgramName
。
在美芬·庞:
<dependency>
<groupId>com.ibm.db2</groupId>
<artifactId>jcc</artifactId>
<version>11.5.7.0</version>
</dependency>
1条答案
按热度按时间gj3fmq9x1#
Client info properties support by the IBM Data Server Driver for JDBC and SQLJ。
以上链接中提到的这些属性不能用URL设置。
它们可以使用JDBC 4方法(使用
db2jcc4.jar
,而不是JDBC 3实现的db2jcc.jar
)setClientInfo
仅进行设置,如下所示: