Database WebSphereApplicationServer数据源

Database WebSphereApplicationServer数据源,database,oracle,hibernate,jdbc,websphere-6.1,Database,Oracle,Hibernate,Jdbc,Websphere 6.1,我们在WebSphereApplicationServer数据源方面面临一个奇怪的问题 环境: WebSphereApplicationServer(6.1) Linux Liferay门户(5.2) 甲骨文9i Hibernate3.0 我们在应用服务器中部署了数据源,引用了ODBC14.jar 数据源的休眠配置: <property name="connection.datasource">jdbc/appDB</property> <property na

我们在WebSphereApplicationServer数据源方面面临一个奇怪的问题

环境:

  • WebSphereApplicationServer(6.1)
  • Linux
  • Liferay门户(5.2)
  • 甲骨文9i
  • Hibernate3.0
我们在应用服务器中部署了数据源,引用了
ODBC14.jar

数据源的休眠配置:

<property name="connection.datasource">jdbc/appDB</property>
<property name="jndi.class">com.ibm.websphere.naming.WsnInitialContextFactory</property>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</property>
<property name="connection.autocommit">false</property>
jdbc/appDB
com.ibm.websphere.naming.WsnInitialContextFactory
org.hibernate.dialogue.oracle9dialogue
假的
我们得到以下例外情况:

原因:java.sql.SQLException: DSRA8101E:无法创建数据源类 用作一个阶段:ClassCastException: oracle.jdbc.pool.OracleConnectionPoolDataSource 不符合 javax.sql.ConnectionPoolDataSource位于 com.ibm.ws.rsadapter.AdapterUtil.toSQLException(AdapterUtil.java:1375) 在 com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:462) 在 com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:418) 在 org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:69) 在 org.hibernate.jdbc.ConnectionManager.openConnection

我们尝试了以下解决方法 知道classes12.jar在WEB-INF/lib中 它有ORACLE驱动程序,可能会导致类加载与Shared/apps/lib ODBC14.jar冲突

所以从Web应用程序库中删除classes12.jar,重新部署应用程序并重新启动,但再次出现相同的错误。有没有办法解决这个问题

DSRA8101E:无法创建数据源类 用作一个阶段:ClassCastException: {0}说明:“enable2Phase” 属性只能在以下情况下设置为false DataSource类实现了 ConnectionPoolDataSource。使用者 响应:将“enable2Phase”设置为true 对于Xadasource或对于false ConnectionPoolDataSource


您是否尝试将enable2Phase设置为false?

当我尝试使用classes12.jar连接到旧的oracle数据库时,我在websphere 7中遇到了相同的问题

我的解决方案是为WebSphereApplicationV4数据源创建一个新的用户定义的jdbc提供程序(新类型的数据源将导致不兼容的问题),它将指向旧的classes12.jar

并使用隔离选项隔离新的oracle数据源(如果有),以防止类加载器冲突(这非常重要!)


旧的WebSphereV4数据源没有此选项。

在JDBC提供程序部分,选中复选框“隔离此资源提供程序”对我来说很有效