Cannot get connection to Progress 10.0B DB
tsar_bomba Jun 23, 2006 1:24 PMWe're trying to use JBoss 4.0.4.GA and EJB3 to connect to a Progress database, which is supported according to the example progress-ds.xml file I found in the examples.
We're using Progress 10.0B and have tried their type 3 and type 4 JDBC drivers and consistently get the same errors.
Here's my progress-ds.xml file:
<datasources> <local-tx-datasource> <jndi-name>Sports2000PROGRESSDS</jndi-name> <connection-url>jdbc:jdbcprogress:T:localhost:3805:sports2000</connection-url> <driver-class>com.progress.sql.jdbc.JdbcProgressDriver</driver-class> <user-name>myuser</user-name> <password></password> <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) --> <metadata> <type-mapping>PostgreSQL 7.2</type-mapping> </metadata> </local-tx-datasource> </datasources>
Here's my persistence.xml file:
<persistence> <persistence-unit name="sports2000"> <jta-data-source>java:/Sports2000PROGRESSDS</jta-data-source> <properties> <!-- <property name="hibernate.hbm2ddl.auto" value="create-drop"/> --> <property name="hibernate.show_sql" value="false"/> <property name="hibernate.format_sql" value="true"/> <property name="hibernate.use_sql_comments" value="true"/> <property name="hibernate.max_fetch_depth" value="1"/> </properties> </persistence-unit> </persistence>
Here's the exception we get when deploying the .ear app into JBoss:
..... 11:10:28,630 INFO [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=Sports2000PROGRESSDS' to JNDI name 'java:Sports2000PROGRESSDS' ..... 11:11:05,298 INFO [Ejb3Configuration] found EJB3 Entity bean: com.mydomain.model.Customer 11:11:05,308 WARN [Ejb3Configuration] Persistence provider caller does not implements the EJB3 spec correctly. PersistenceUnitInfo.getNewTempClassLoader() is null. 11:11:05,449 INFO [Configuration] Reading mappings from resource: META-INF/orm.xml 11:11:05,449 INFO [Ejb3Configuration] [PersistenceUnit: sports2000] no META-INF/orm.xml found 11:11:05,599 INFO [AnnotationBinder] Binding entity from annotated class: com.mydomain.model.Customer 11:11:05,689 INFO [EntityBinder] Bind entity com.mydomain.model.Customer on table pub.Customer 11:11:06,060 INFO [ConnectionProviderFactory] Initializing connection provider: org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider 11:11:06,080 INFO [InjectedDataSourceConnectionProvider] Using provided datasource 11:11:06,140 WARN [JBossManagedConnectionPool] Throwable while attempting to get a new connection: null org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (org.jboss.resource.JBossResourceException: Wrong driver class for this connection URL) at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:177) at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.createConnectionEventListener(InternalManagedConnectionPool.java:539) at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:228) at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:417) at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:324) at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:301) at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:379) at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:812) at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88) at org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:69) at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:73) at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1928) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1211) at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:631) at org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Ejb3Configuration.java:760) at org.hibernate.ejb.Ejb3Configuration.createContainerEntityManagerFactory(Ejb3Configuration.java:350) at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:119) at org.jboss.ejb3.entity.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:264)
Obviously, there's a glaring message in there, "Wrong driver class for this connection URL" - however this can't be. I can create jdbc connections w/ this class, no problem. I'm also using it in my database manager in eclipse and that was the class it chose to use.
So, I suppose the question is; is Progress 10.x or greater even supported by Hibernate currently? We need to know if JBoss will fit as an app server at one of our companies for future projects and everything they've built in-house is sitting on Progress 10.0+ databases.
Any help would be greatly appreciated, thanks!