Charles, it does look right.

Attaching 2 config files I know work.

Attachment: wcsriDs.xml
Description: XML document


Attachment: persistence.xml
Description: XML document



And the BP bundle that imports it for persistence.

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

Reply via email to