But isn't the whole idea with providing both a <jta-datasource> and a
<non-jta-datasource> that the latter can be used for example when creating
the database schema outside of any transaction? My persistence.sql looks
like this:

*<?xml version="1.0" encoding="UTF-8"?>*
*<persistence xmlns="http://java.sun.com/xml/ns/persistence
<http://java.sun.com/xml/ns/persistence>"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
<http://www.w3.org/2001/XMLSchema-instance>"*
*  xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
<http://java.sun.com/xml/ns/persistence>
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd
<http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd>"*
*  version="2.0">*
*  <persistence-unit name="filetransferhistoryPU" transaction-type="JTA">*
*
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>*
*
<jta-data-source>osgi:service/javax.sql.DataSource/(osgi.jndi.service.name
<http://osgi.jndi.service.name>=jdbc/filetransferhistory)</jta-data-source>*
*
<non-jta-data-source>osgi:service/javax.sql.DataSource/(osgi.jndi.service.name
<http://osgi.jndi.service.name>=jdbc/filetransferhistorynojta)</non-jta-data-source>*
*    <class>se.digia.connect.filetransfer.history.domain.Entry</class>*
*    <class>se.digia.connect.filetransfer.history.domain.FileEntry</class>*
*    <class>se.digia.connect.filetransfer.history.domain.Retry</class>*
*    <class>se.digia.connect.util.persistence.EntityBase</class>*
*    <exclude-unlisted-classes>true</exclude-unlisted-classes>*
*    <validation-mode>NONE</validation-mode>*
*    <properties>*
*      <property name="openjpa.ConnectionFactoryMode" value="managed" />*
*      <property name="openjpa.jdbc.SynchronizeMappings"
value="buildSchema(ForeignKeys=true)" />*
*      <property name="openjpa.jdbc.DBDictionary" value="derby" />*
*      <property name="openjpa.jdbc.UpdateManager" value="operation-order"
/>*
*      <property name="openjpa.Log" value="DefaultLevel=WARN, Tool=INFO" />*
*    </properties>*
*  </persistence-unit>*
*</persistence>*

The "..SynchronizeMappings" should be used outside JTA transactions using
auto commit. How could this ever work with JPA Blueprint then?

/Bengt

2016-07-11 11:10 GMT+02:00 Christian Schneider <[email protected]>:

> This is decided by Aries JPA. If you use transaction-type="JTA" then the
> jta-datasource is used else the non-jta-datasource.
>
> Christian
>
> On 11.07.2016 11:03, Bengt Rodehav wrote:
>
> I think the important question is: *Who* determines whether to use the
> <jta-datasource> or the <non-jta-datasource>?
>
> The follow-up question would be: *What criteria* is being used to choose
> between them?
>
> /Bengt
>
>
> --
> Christian Schneiderhttp://www.liquid-reality.de
>
> Open Source Architecthttp://www.talend.com
>
>

Reply via email to