Charles, it does look right. Attaching 2 config files I know work.
wcsriDs.xml
Description: XML document
persistence.xml
Description: XML document
And the BP bundle that imports it for persistence.
pubsub-persist.xml
Description: XML document
Also is the bundle marked with Meta-Persistence: META-INF/persistence.xml In the manifest? On Apr 12, 2011, at 8:20 AM, Charles Moulliard wrote: > Here is the config Johan > > ersistence config > ********************** > <persistence-unit name="reportincident" transaction-type="JTA"> > > > <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> > > > <jta-data-source>osgi:service/javax.sql.XADataSource/(transactional=true)</jta-data-source> > > <!-- Required by openJPA to update sequence table outside of > Global Tx Management --> > > <non-jta-data-source>osgi:service/javax.sql.DataSource/(transactional=false)</non-jta-data-source> > > <class>com.fusesource.webinars.persistence.model.Incident</class> > > <exclude-unlisted-classes>true</exclude-unlisted-classes> > > <!-- openjpa & HSQLDB --> > <properties> > <property name="openjpa.jdbc.SynchronizeMappings" > > value="buildSchema(SchemaAction='add,deleteTableContents')"/> > <property name="openjpa.Log" > value="commons"/> > <property name="openjpa.jdbc.DBDictionary" > value="hsql(useSchemaName=true)"/> > <property name="openjpa.jdbc.Schema" > value="PUBLIC"/> > <property name="openjpa.TransactionMode" > value="managed"/> > <property name="openjpa.ManagedRuntime" > > value="jndi(TransactionManagerName=aries:services/javax.transaction.TransactionManager)"/> > <property name="openjpa.Multithreaded" > value="true"/> > <property name="openjpa.TransactionMode" > value="managed"/> > <property name="openjpa.ConnectionFactoryMode" > value="managed"/> > </properties> > > </persistence-unit> > </persistence> > > On Tue, Apr 12, 2011 at 4:08 PM, Johan Edstrom <[email protected]> wrote: >> What does your persistence look like? >> You'll need something like >> >> <persistence xmlns="http://java.sun.com/xml/ns/persistence" >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> xsi:schemaLocation="http://java.sun.com/xml/ns/persistence >> http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" >> version="2.0"> >> >> <persistence-unit name="mymagical-jpa-unit" transaction-type="JTA"> >> >> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> >> <jta-data-source>blueprint:comp/jta</jta-data-source> >> >> <non-jta-data-source>osgi:service/javax.sql.DataSource/(transactional=false)</non-jta-data-source> >> <!-- Entity classes here --> >> >> <exclude-unlisted-classes>true</exclude-unlisted-classes> >> <validation-mode>NONE</validation-mode> >> >> <properties> >> <property name="openjpa.Multithreaded" value="true"/> >> <property name="openjpa.TransactionMode" value="managed"/> >> <property name="openjpa.ConnectionFactoryMode" value="managed"/> >> <property name="openjpa.jdbc.MappingDefaults" >> value="ForeignKeyDeleteAction=restrict, >> JoinForeignKeyDeleteAction=restrict"/> >> <property name="openjpa.LockManager" >> value="pessimistic(VersionCheckOnReadLock=true,VersionUpdateOnWriteLock=true)"/> >> <property name="openjpa.Log" value="DefaultLevel=INFO, Runtime=INFO, >> Tool=INFO, SQL=INFO"/> >> </properties> >> </persistence-unit> >> >> </persistence> >> On Apr 12, 2011, at 7:43 AM, Guillaume Nodet wrote: >> >>> Looking at the stack trace, the problem seems to be in the JPA >>> definition, as it does not hit the datasource. >>> Can you list the services exported by the datasource bundle ? >>> Also, do you have aries jndi installed ? As your config uses it to >>> lookup the osgi service. >>> >>> On Tue, Apr 12, 2011 at 14:47, Charles Moulliard <[email protected]> >>> wrote: >>>> Here is the complete blueprint file to expose the datasource >>>> >>>> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" >>>> >>>> xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"> >>>> >>>> <cm:property-placeholder persistent-id="database" id="database"> >>>> <cm:default-properties> >>>> >>>> <!-- JDBC Drivers --> >>>> <cm:property name="jdbc.driverClassName" >>>> value="org.hsqldb.jdbcDriver"/> >>>> <cm:property name="jdbc.url" >>>> value="jdbc:hsqldb:hsql://localhost/reportdb"/> >>>> <cm:property name="jdbc.username" value="sa"/> >>>> <cm:property name="jdbc.password" value=""/> >>>> >>>> <!-- Connection Pooling DBCP --> >>>> <cm:property name="jdbc.initialSize" value="5"/> >>>> <cm:property name="jdbc.maxActive" value="10"/> >>>> <cm:property name="jdbc.maxIdle" value="10"/> >>>> <cm:property name="jdbc.defaultAutoCommit" value="false"/> >>>> <cm:property name="jdbc.removeAbandoned" value="false"/> >>>> <cm:property name="jdbc.removeAbandonedTimeout" value="300"/> >>>> <cm:property name="jdbc.logAbandoned" value="false"/> >>>> >>>> </cm:default-properties> >>>> </cm:property-placeholder> >>>> >>>> <service auto-export="interfaces" ref="jta"> >>>> <service-properties> >>>> <entry key="transactional" value="true"/> >>>> </service-properties> >>>> </service> >>>> >>>> <service auto-export="interfaces" ref="nonJTA"> >>>> <service-properties> >>>> <entry key="transactional" value="false"/> >>>> </service-properties> >>>> </service> >>>> >>>> <!-- ###### JDBC Data Source ###### --> >>>> <bean id="jta" class="org.enhydra.jdbc.standard.StandardXADataSource"> >>>> <property name="driverName" value="${jdbc.driverClassName}"/> >>>> <property name="url" value="${jdbc.url}"/> >>>> <property name="user" value="${jdbc.username}"/> >>>> <property name="password" value="${jdbc.password}"/> >>>> </bean> >>>> >>>> <bean class="org.apache.commons.dbcp.BasicDataSource" id="nonJTA"> >>>> <property name="driverClassName" value="${jdbc.driverClassName}"/> >>>> <property name="url" value="${jdbc.url}"/> >>>> <property name="username" value="${jdbc.username}"/> >>>> <property name="password" value="${jdbc.password}"/> >>>> <property name="initialSize" value="${jdbc.initialSize}"/> >>>> <property name="maxActive" value="${jdbc.maxActive}"/> >>>> <property name="maxIdle" value="${jdbc.maxIdle}"/> >>>> <property name="defaultAutoCommit" value="false"/> >>>> <property name="removeAbandoned" value="${jdbc.removeAbandoned}"/> >>>> <property name="removeAbandonedTimeout" >>>> value="${jdbc.removeAbandonedTimeout}"/> >>>> <property name="logAbandoned" value="${jdbc.logAbandoned}"/> >>>> </bean> >>>> >>>> </blueprint> >>>> >>>> Regards, >>>> >>>> Charles >>>> >>>> >>>> On Tue, Apr 12, 2011 at 2:37 PM, Ioannis Canellos <[email protected]> >>>> wrote: >>>>> Halo Charles, >>>>> >>>>> I think that you didn't paste the actual data source. >>>>> >>>>> >>>>> On Tue, Apr 12, 2011 at 3:20 PM, Charles Moulliard >>>>> <[email protected]>wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> I have configured OpenJPA to use a JTA/XA Datasource on ServiceMix but >>>>>> when I try to insert data in the DB, openJPA generates the following >>>>>> error : >>>>>> >>>>>> Caused by: java.lang.RuntimeException: There were errors initializing >>>>>> your configuration: <openjpa-2.1.0-r422266:1071316 fatal user error> >>>>>> org.apache.openjpa.util.UserException: A JDBC Driver or DataSource >>>>>> class name must be specified in the ConnectionDriverName property. >>>>>> at >>>>>> org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:76) >>>>>> at >>>>>> org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:844) >>>>>> at >>>>>> org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:732) >>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>>>> at >>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >>>>>> at >>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >>>>>> at java.lang.reflect.Method.invoke(Method.java:597) >>>>>> at >>>>>> org.apache.openjpa.lib.conf.ConfigurationImpl.instantiateAll(ConfigurationImpl.java:295) >>>>>> >>>>>> >>>>>> The property >>>>>> <jta-data-source>osgi:service/javax.sql.DataSource/(transactional=true)</jta-datasource> >>>>>> in the persistence.xml file point to the XADataSource exposed as an >>>>>> osgi service >>>>>> >>>>>> Persistence >>>>>> ************** >>>>>> <persistence-unit name="reportincident" transaction-type="JTA"> >>>>>> >>>>>> >>>>>> >>>>>> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> >>>>>> >>>>>> >>>>>> >>>>>> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> >>>>>> >>>>>> >>>>>> >>>>>> <jta-data-source>osgi:service/javax.sql.DataSource/(transactional=true)</jta-data-source> >>>>>> <!-- Required by openJPA to update sequence table outside of >>>>>> Global Tx Management --> >>>>>> >>>>>> >>>>>> <non-jta-data-source>osgi:service/javax.sql.DataSource/(transactional=false)</non-jta-data-source> >>>>>> >>>>>> <class>com.mycompany.persistence.model.Incident</class> >>>>>> >>>>>> <exclude-unlisted-classes>true</exclude-unlisted-classes> >>>>>> >>>>>> <!-- openjpa & HSQLDB --> >>>>>> <properties> >>>>>> <property name="openjpa.jdbc.SynchronizeMappings" >>>>>> >>>>>> value="buildSchema(SchemaAction='add,deleteTableContents')"/> >>>>>> <property name="openjpa.Log" >>>>>> value="commons"/> >>>>>> <property name="openjpa.jdbc.DBDictionary" >>>>>> value="hsql(useSchemaName=true)"/> >>>>>> <property name="openjpa.jdbc.Schema" >>>>>> value="PUBLIC"/> >>>>>> <property name="openjpa.TransactionMode" >>>>>> value="managed"/> >>>>>> <property name="openjpa.ManagedRuntime" >>>>>> >>>>>> >>>>>> value="jndi(TransactionManagerName=aries:services/javax.transaction.TransactionManager)"/> >>>>>> <property name="openjpa.Multithreaded" >>>>>> value="true"/> >>>>>> <property name="openjpa.TransactionMode" >>>>>> value="managed"/> >>>>>> <!--<property name="openjpa.ConnectionFactoryMode" >>>>>> value="managed"/>--> >>>>>> </properties> >>>>>> >>>>>> >>>>>> >>>>>> Blueprint config of the DataSource >>>>>> **************************************** >>>>>> <service auto-export="interfaces" ref="jta"> >>>>>> <service-properties> >>>>>> <entry key="transactional" value="true"/> >>>>>> </service-properties> >>>>>> </service> >>>>>> >>>>>> <service auto-export="interfaces" ref="jta"> >>>>>> <service-properties> >>>>>> <entry key="transactional" value="true"/> >>>>>> </service-properties> >>>>>> </service> >>>>>> >>>>>> Any idea is welcome. >>>>>> >>>>>> >>>>>> Regards, >>>>>> >>>>>> Charles Moulliard >>>>>> >>>>>> Sr. Principal Solution Architect - FuseSource >>>>>> Apache Committer >>>>>> >>>>>> Blog : http://cmoulliard.blogspot.com >>>>>> Twitter : http://twitter.com/cmoulliard >>>>>> Linkedin : http://www.linkedin.com/in/charlesmoulliard >>>>>> Skype: cmoulliard >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> *Ioannis Canellos* >>>>> * >>>>> http://iocanel.blogspot.com >>>>> >>>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC >>>>> Apache ServiceMix <http://servicemix.apache.org/> Committer >>>>> * >>>>> >>>> >>> >>> >>> >>> -- >>> Cheers, >>> Guillaume Nodet >>> ------------------------ >>> Blog: http://gnodet.blogspot.com/ >>> ------------------------ >>> Open Source SOA >>> http://fusesource.com >> >>
