Oracle11g 为什么C3p0';s ComboPooledDataSource成功连接到数据库,但其克隆未';T
在使用Oracle 11数据库的Tomcat 8.5.15环境中,我想实现一个数据源,该数据源在context.xml中处理加密的密码。我在这方面遇到了麻烦,如本文所述 为了确定潜在的问题,我简化了场景。首先,我验证了C3p0资源规范工作正常Oracle11g 为什么C3p0';s ComboPooledDataSource成功连接到数据库,但其克隆未';T,oracle11g,c3p0,Oracle11g,C3p0,在使用Oracle 11数据库的Tomcat 8.5.15环境中,我想实现一个数据源,该数据源在context.xml中处理加密的密码。我在这方面遇到了麻烦,如本文所述 为了确定潜在的问题,我简化了场景。首先,我验证了C3p0资源规范工作正常 <Resource auth="Container" description="MyDataSource" driverClass="oracle.jdbc.
<Resource
auth="Container"
description="MyDataSource"
driverClass="oracle.jdbc.OracleDriver"
maxPoolSize="100"
minPoolSize="10"
acquireIncrement="1"
name="jdbc/MyDataSource"
user="me"
password="mypassword"
factory="org.apache.naming.factory.BeanFactory"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
jdbcUrl="jdbc:oracle:thin:@mydb:1521:dev12c"
/>
我使用克隆的类创建了修订的资源规范:
<Resource
auth="Container"
description="MyDataSource"
driverClass="oracle.jdbc.OracleDriver"
maxPoolSize="100"
minPoolSize="10"
acquireIncrement="1"
name="jdbc/MyDataSource"
user="me"
password="mypassword"
factory="org.apache.naming.factory.BeanFactory"
type=type="com.mycompany.ComboPooledDataSourceCopy"
jdbcUrl="jdbc:oracle:thin:@mydb:1521:dev12c"
/>
为什么克隆尝试连接失败
更新:
在本地DBA的帮助下,我们能够审核我的连接尝试。看来我们正在成功连接到数据库并登录。基于此,听起来问题可能在于代码如何处理数据库的响应,而不是在我们的请求生成中。错误是由于类加载问题造成的,Oracle类是从多个JAR加载的(
%CATALINA\u HOME%\lib\ojdbc7-12.1.0.2.0.jar
和%CATALINA\u HOME%\webapps\my-webapps-1.0.0\WEB-INF\lib\ojdbc7-12.1.0.2.0.jar
)被不同的类加载器删除。当我删除%CATALINA\u HOME%\webapps\my-webapps-1.0.0\WEB-INF\lib\ojdbc7-12.1.0.2.0.0.0.jar
时,我的问题就消失了
这些来源(,)更详细地讨论了这一点
<Resource
auth="Container"
description="MyDataSource"
driverClass="oracle.jdbc.OracleDriver"
maxPoolSize="100"
minPoolSize="10"
acquireIncrement="1"
name="jdbc/MyDataSource"
user="me"
password="mypassword"
factory="org.apache.naming.factory.BeanFactory"
type=type="com.mycompany.ComboPooledDataSourceCopy"
jdbcUrl="jdbc:oracle:thin:@mydb:1521:dev12c"
/>
...
Caused by: java.sql.SQLException: com.mchange.v2.c3p0.impl.NewProxyConnection@6950dfda
[wrapping: oracle.jdbc.driver.T4CConnection@765426dd]
is not a wrapper for or implementation of oracle.jdbc.OracleConnection
at com.mchange.v2.c3p0.impl.NewProxyConnection.unwrap(NewProxyConnection.java:1744)
at org.jaffa.security.JDBCSecurityPlugin.executeStoredProcedure(JDBCSecurityPlugin.java:117)
... 67 more