2009-11-05 3 views
0

Nous sommes confrontés à un problème étrange avec la source de données Websphere Application Server.Source de données Websphere Application Server

Environnement:

  • Websphere Application Server (6.1)
  • Linux
  • Liferay Portal (5,2)
  • Oracle 9i
  • Hibernate 3,0

Nous avons datasource dep Loyed dans le serveur d'applications faisant référence ODBC14.jar

Configuration Hibernate pour DataSource

<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> 

Nous obtenons une exception près:

Causée par: java.sql.SQLException: DSRA8101E: classe DataSource ne peut pas être utilisé comme monophasé: ClassCastException: oracle.jdbc.pool.OracleConnectionPoolDataSource incompatible avec 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

Nous avons essayé la solution suivante: classes12.jar était là dans WEB-INF/lib qui a ORACLE pilote qui peut causer classe Chargement conflit avec Shared/apps/lib odbc14.jar

classes12.jar donc retiré de l'application Web Lib et de l'application et redéployé redémarré, mais a encore la même erreur. Une idée sur la façon de résoudre ce problème?

Répondre

1

DSRA8101E: classe DataSource ne peut pas être utilisé comme une phase: ClassCastException: {0} Explication: La propriété 'enable2Phase' ne peut être réglé sur false si la classe DataSource implémente ConnectionPoolDataSource. User Réponse: Définissez 'enable2Phase' sur true pour XADataSource ou false pour ConnectionPoolDataSource.

Avez-vous essayé de définir la valeur enable2Phase sur false?

0

J'ai eu le même problème dans websphere 7 lorsque j'essayais d'utiliser classes12.jar se connecter à une ancienne base de données Oracle.

Ma solution est de créer un nouveau fournisseur jdbc défini par l'utilisateur pour la source de données de l'application websphere V4 (la nouvelle source de données de type utilisera le problème incompatible) qui pointera vers l'ancienne classes12.jar.

et utilisez l'option isolat pour isoler le nouvel oracle source de données (si vous en avez un) pour prévenir les conflits classloader (Ceci est très important!)

L'ancien websphere v4 n'ont pas datasource cette option.

0

Dans la section Fournisseur JDBC, la case à cocher "Isoler ce fournisseur de ressources" a fonctionné pour moi.

Questions connexes