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