You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Horacio Antonelli (JIRA)" <ji...@apache.org> on 2009/01/02 04:49:44 UTC

[jira] Created: (OPENJPA-848) Pool configuration error

Pool configuration error
------------------------

                 Key: OPENJPA-848
                 URL: https://issues.apache.org/jira/browse/OPENJPA-848
             Project: OpenJPA
          Issue Type: Bug
          Components: jdbc
    Affects Versions: 1.2.0
         Environment: windows, db2
            Reporter: Horacio Antonelli
            Priority: Blocker


I'm using this persistence.xml configuration, and it works

<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
	<persistence-unit name="RP" transaction-type="RESOURCE_LOCAL">
    <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
		<class>model.Address</class>
		<class>model.Business</class>		
		<properties>		
			<property name="openjpa.ConnectionProperties" 
				value="Url=jdbc:db2:RP,
				DriverClassName=COM.ibm.db2.jdbc.app.DB2Driver,
				Username=User,
				Password=User1"/>
			<property name="openjpa.ConnectionDriverName" 
				value="org.apache.commons.dbcp.BasicDataSource"/> 
		</properties>
	</persistence-unit>
</persistence>

Now I need to configure it using openjpa.ConnectionProperties to specify the connection pool information, and It isn't working

<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
	<persistence-unit name="RP" transaction-type="RESOURCE_LOCAL">
    <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
		<class>model.Address</class>
		<class>model.Business</class>		
		<properties>		
                        <property name="openjpa.ConnectionURL" value="jdbc:db2:RP"/>
			<property name="openjpa.ConnectionDriverName" value="COM.ibm.db2.jdbc.app.DB2Driver"/>
			<property name="openjpa.ConnectionUserName" value="User"/>
			<property name="openjpa.ConnectionPassword" value="User1"/>
			<property name="openjpa.Log" value="DefaultLevel=WARN, Tool=INFO"/>	
		</properties>
	</persistence-unit>
</persistence>

I get this

30188  ReportAndPay  INFO   [main] openjpa.Runtime - Starting OpenJPA 1.2.0
<openjpa-1.2.0-r422266:683325 fatal user error> org.apache.openjpa.persistence.ArgumentException: A connection could not be obtained for driver class "org.apache.commons.dbcp.BasicDataSource" and URL "null".  You may have specified an invalid URL.
	at org.apache.openjpa.jdbc.schema.DataSourceFactory.newConnectException(DataSourceFactory.java:256)
	at org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:125)
	at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:784)
	at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:561)
	at org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1265)
	at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:505)
	at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:430)
	at org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:103)
	at org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68)
	at org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83)
	at org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:863)
	at org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:854)
	at org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:638)
	at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:183)
	at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
	at com.ibm.gatewayservices.util.TransactionManager.beginTransaction(TransactionManager.java:23)
	at com.ibm.gatewayservices.test.Main.main(Main.java:65)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
	at java.lang.Class.forName(Class.java:130)
	at org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:87)
	... 18 more

Please, enlight me on this. thank you!

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Re: [jira] Created: (OPENJPA-848) Pool configuration error

Posted by hantone <ho...@gmail.com>.
Thank you very much Jeremy! :D
You are right, I forgot to add the dbcp jar.
-- 
View this message in context: http://n2.nabble.com/-jira--Created%3A-%28OPENJPA-848%29-Pool-configuration-error-tp2100757p2114660.html
Sent from the OpenJPA Developers mailing list archive at Nabble.com.


[jira] Closed: (OPENJPA-848) Pool configuration error

Posted by "Jeremy Bauer (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/OPENJPA-848?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jeremy Bauer closed OPENJPA-848.
--------------------------------

    Resolution: Invalid
      Assignee: Jeremy Bauer

Horacio added the dbcp plugin and that resolved the issue.

> Pool configuration error
> ------------------------
>
>                 Key: OPENJPA-848
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-848
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jdbc
>    Affects Versions: 1.2.0
>         Environment: windows, db2
>            Reporter: Horacio Antonelli
>            Assignee: Jeremy Bauer
>            Priority: Blocker
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> I'm using this persistence.xml configuration, and it works
> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
> 	<persistence-unit name="RP" transaction-type="RESOURCE_LOCAL">
>     <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
> 		<class>model.Address</class>
> 		<class>model.Business</class>		
> 		<properties>		
> 			<property name="openjpa.ConnectionProperties" 
> 				value="Url=jdbc:db2:RP,
> 				DriverClassName=COM.ibm.db2.jdbc.app.DB2Driver,
> 				Username=User,
> 				Password=User1"/>
> 			<property name="openjpa.ConnectionDriverName" 
> 				value="org.apache.commons.dbcp.BasicDataSource"/> 
> 		</properties>
> 	</persistence-unit>
> </persistence>
> Now I need to configure it using openjpa.ConnectionProperties to specify the connection pool information, and It isn't working
> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
> 	<persistence-unit name="RP" transaction-type="RESOURCE_LOCAL">
>     <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
> 		<class>model.Address</class>
> 		<class>model.Business</class>		
> 		<properties>		
>                         <property name="openjpa.ConnectionURL" value="jdbc:db2:RP"/>
> 			<property name="openjpa.ConnectionDriverName" value="COM.ibm.db2.jdbc.app.DB2Driver"/>
> 			<property name="openjpa.ConnectionUserName" value="User"/>
> 			<property name="openjpa.ConnectionPassword" value="User1"/>
> 			<property name="openjpa.Log" value="DefaultLevel=WARN, Tool=INFO"/>	
> 		</properties>
> 	</persistence-unit>
> </persistence>
> I get this
> 30188  ReportAndPay  INFO   [main] openjpa.Runtime - Starting OpenJPA 1.2.0
> <openjpa-1.2.0-r422266:683325 fatal user error> org.apache.openjpa.persistence.ArgumentException: A connection could not be obtained for driver class "org.apache.commons.dbcp.BasicDataSource" and URL "null".  You may have specified an invalid URL.
> 	at org.apache.openjpa.jdbc.schema.DataSourceFactory.newConnectException(DataSourceFactory.java:256)
> 	at org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:125)
> 	at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:784)
> 	at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:561)
> 	at org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1265)
> 	at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:505)
> 	at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:430)
> 	at org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:103)
> 	at org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68)
> 	at org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83)
> 	at org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:863)
> 	at org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:854)
> 	at org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:638)
> 	at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:183)
> 	at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
> 	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
> 	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
> 	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
> 	at com.ibm.gatewayservices.util.TransactionManager.beginTransaction(TransactionManager.java:23)
> 	at com.ibm.gatewayservices.test.Main.main(Main.java:65)
> Caused by: java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
> 	at java.lang.Class.forName(Class.java:130)
> 	at org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:87)
> 	... 18 more
> Please, enlight me on this. thank you!

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (OPENJPA-848) Pool configuration error

Posted by "Jeremy Bauer (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/OPENJPA-848?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12660889#action_12660889 ] 

Jeremy Bauer commented on OPENJPA-848:
--------------------------------------

Based on the error, I expect the failure to be caused by not having the dbcp [1] jar in your classpath.  Your comment "Now I need to configure it using openjpa.ConnectionProperties to specify the connection pool information, and It isn't working" and the order of the included persistence.xml's indicates they may have been pasted in reverse order (since the first uses dbcp and the second does not).  If they were pasted in reverse order my guess is that adding the dbcp jar to your classpath will correct the problem.  Otherwise, the dbcp driver is not specified in your persistence.xml so OpenJPA should/would not be trying to load it.

[1] http://commons.apache.org/dbcp/

> Pool configuration error
> ------------------------
>
>                 Key: OPENJPA-848
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-848
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jdbc
>    Affects Versions: 1.2.0
>         Environment: windows, db2
>            Reporter: Horacio Antonelli
>            Priority: Blocker
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> I'm using this persistence.xml configuration, and it works
> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
> 	<persistence-unit name="RP" transaction-type="RESOURCE_LOCAL">
>     <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
> 		<class>model.Address</class>
> 		<class>model.Business</class>		
> 		<properties>		
> 			<property name="openjpa.ConnectionProperties" 
> 				value="Url=jdbc:db2:RP,
> 				DriverClassName=COM.ibm.db2.jdbc.app.DB2Driver,
> 				Username=User,
> 				Password=User1"/>
> 			<property name="openjpa.ConnectionDriverName" 
> 				value="org.apache.commons.dbcp.BasicDataSource"/> 
> 		</properties>
> 	</persistence-unit>
> </persistence>
> Now I need to configure it using openjpa.ConnectionProperties to specify the connection pool information, and It isn't working
> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
> 	<persistence-unit name="RP" transaction-type="RESOURCE_LOCAL">
>     <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
> 		<class>model.Address</class>
> 		<class>model.Business</class>		
> 		<properties>		
>                         <property name="openjpa.ConnectionURL" value="jdbc:db2:RP"/>
> 			<property name="openjpa.ConnectionDriverName" value="COM.ibm.db2.jdbc.app.DB2Driver"/>
> 			<property name="openjpa.ConnectionUserName" value="User"/>
> 			<property name="openjpa.ConnectionPassword" value="User1"/>
> 			<property name="openjpa.Log" value="DefaultLevel=WARN, Tool=INFO"/>	
> 		</properties>
> 	</persistence-unit>
> </persistence>
> I get this
> 30188  ReportAndPay  INFO   [main] openjpa.Runtime - Starting OpenJPA 1.2.0
> <openjpa-1.2.0-r422266:683325 fatal user error> org.apache.openjpa.persistence.ArgumentException: A connection could not be obtained for driver class "org.apache.commons.dbcp.BasicDataSource" and URL "null".  You may have specified an invalid URL.
> 	at org.apache.openjpa.jdbc.schema.DataSourceFactory.newConnectException(DataSourceFactory.java:256)
> 	at org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:125)
> 	at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:784)
> 	at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:561)
> 	at org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1265)
> 	at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:505)
> 	at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:430)
> 	at org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:103)
> 	at org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68)
> 	at org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83)
> 	at org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:863)
> 	at org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:854)
> 	at org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:638)
> 	at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:183)
> 	at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
> 	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
> 	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
> 	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
> 	at com.ibm.gatewayservices.util.TransactionManager.beginTransaction(TransactionManager.java:23)
> 	at com.ibm.gatewayservices.test.Main.main(Main.java:65)
> Caused by: java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
> 	at java.lang.Class.forName(Class.java:130)
> 	at org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:87)
> 	... 18 more
> Please, enlight me on this. thank you!

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.