You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomee.apache.org by Johannes Stamminger <Jo...@astrium.eads.net> on 2009/08/20 19:27:47 UTC

TransactionRequiredException vs must not execute within transaction

Hi,


I run into troubles with having a stateless bean trying to execute a 
tablespace/database creation sql statement (bwo createNativeQuery):

With beans default behaviour (container managed transaction) I run into a 
postgres exception

org.postgresql.util.PSQLException: ERROR: CREATE TABLESPACE cannot run inside 
a transaction block

(roles and user creations before this work like a charme)


With "native" jdbc connection I experienced this being executable only with 
enabling auto-commit and not using transactions. So I tried with switching 
auto-commit on for the EntityManager created from an injected 
EntityManagerFactory.

    @PersistenceUnit(unitName = "valuesDb")
    private EntityManagerFactory fEntityManagerFactory;
    private EntityManager fEntityManager;

    @PostConstruct
    private void initEntityManager() {
        fEntityManager = fEntityManagerFactory.createEntityManager();
        fEntityManager.setFlushMode(FlushModeType.AUTO);
    }

Now the statement no longer get's executed at all as already the openjpa 
refuses with

    [junit] Caused by: <openjpa-1.2.0-r422266:683325 nonfatal user error> 
org.apache.openjpa.persistence.TransactionRequiredException: Can only perform 
operation while a transaction is active.
    [junit]     at 
org.apache.openjpa.kernel.BrokerImpl.assertActiveTransaction(BrokerImpl.java:4380)
    [junit]     at 
org.apache.openjpa.kernel.QueryImpl.assertBulkModify(QueryImpl.java:1655)
    [junit]     at 
org.apache.openjpa.kernel.QueryImpl.update(QueryImpl.java:1038)
    [junit]     at 
org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:809)
    [junit]     at 
org.apache.openjpa.kernel.QueryImpl.updateAll(QueryImpl.java:884)
    [junit]     at 
org.apache.openjpa.kernel.QueryImpl.updateAll(QueryImpl.java:880)
    [junit]     at 
org.apache.openjpa.kernel.DelegatingQuery.updateAll(DelegatingQuery.java:565)
    [junit]     at 
org.apache.openjpa.persistence.QueryImpl.executeUpdate(QueryImpl.java:338)


Same happens with annotating the class with (without switching auto-commit on)

@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)

and/or

@TransactionManagement(TransactionManagementType.BEAN)



Is it not possible to execute this really special statement (one that 
executeUpdate refuses to within a transaction)? And/Or what am I doing wrong?


(*Please* do not start a discussion on the necessity of database/tablespace 
creation ;-), this would be of no help for me currently)



For completeness: my persistence.xml looks minimalistic:
    <persistence-unit name="valuesDb">
        <jta-data-source>valuesDbJtaDs</jta-data-source>
        <non-jta-data-source>valuesDbNonJtaDs</non-jta-data-source>
    </persistence-unit>

The connection properties are set by way of properties to the InitialContext 
creation:
properties.setProperty(Context.INITIAL_CONTEXT_FACTORY,
                       "org.apache.openejb.client.RemoteInitialContextFactory");
        
properties.setProperty("valuesDbJtaDs", "new://Resource?type=DataSource");
properties.setProperty("valuesDbJtaDs.JdbcDriver", Driver.class.getName());
properties.setProperty("valuesDbJtaDs.JdbcUrl", ...);
properties.setProperty("valuesDbJtaDs.UserName", ...);
properties.setProperty("valuesDbJtaDs.Password", ...);
properties.setProperty("valuesDbJtaDs.JtaManaged", "true");

properties.setProperty("valuesDbNonJtaDs", "new://Resource?type=DataSource");
properties.setProperty("valuesDbNonJtaDs.JdbcDriver", Driver.class.getName());
properties.setProperty("valuesDbNonJtaDs.JdbcUrl", ...);
properties.setProperty("valuesDbNonJtaDs.UserName", ...);
properties.setProperty("valuesDbNonJtaDs.Password", ...);
properties.setProperty("valuesDbNonJtaDs.JtaManaged", "false");



OpenEJB newby,
Johannes

This email (including any attachments) may contain confidential and/or privileged information or information otherwise protected from disclosure. If you are not the intended recipient, please notify the sender immediately, do not copy this message or any attachments and do not use it for any purpose or disclose its content to any person, but delete this message and any attachments from your system. Astrium disclaims any and all liability if this email transmission was virus corrupted, altered or falsified.
---------------------------------------------------------
Astrium GmbH Vorsitzender des Aufsichtsrates: Thomas Mueller - Geschaeftsfuehrung: Evert Dudok (Vorsitzender), Dr. Reinhold Lutz, Guenter Stamerjohanns, Josef Stukenborg
Sitz der Gesellschaft: Muenchen - Registergericht: Amtsgericht Muenchen, HRB Nr. 107 647  

Weitere Informationen ueber EADS Astrium @ http://www.astrium.eads.net/

Re: TransactionRequiredException vs must not execute within transaction

Posted by Johannes Stamminger <Jo...@astrium.eads.net>.
Hi!

Thanks for the explanation (I overlooked the exception doc - seems it was too 
late and I should have waited until this morning ;-)) and the workaround. So 
I will go this way.

Best regards,
Johannes

On Thursday 20 August 2009, Jean-Louis MONTEIRO wrote:
> Hi again,
>
> If you have this requirement, the only way i see is using the datasource
> itself with plain JDBC.
>
> // get the datasource injected
> @Resource(...) DataSource ds;
> ...
>
> // get a connection from the datasource
> Connection ....
>
> ...
>
> Jean-Louis
>
> Jean-Louis MONTEIRO wrote:
> > Hi Johannes ,
> >
> > The specification says that you can create a query without any active
> > transaction
> > http://java.sun.com/javaee/5/docs/api/javax/persistence/EntityManager.htm
> >l#createNativeQuery(java.lang.String)
> > http://java.sun.com/javaee/5/docs/api/javax/persistence/EntityManager.htm
> >l#createNativeQuery(java.lang.String) .
> >
> > But, if you look Query specification
> > http://java.sun.com/javaee/5/docs/api/javax/persistence/Query.html#execut
> >eUpdate()
> > http://java.sun.com/javaee/5/docs/api/javax/persistence/Query.html#execut
> >eUpdate() you will see that you need to have a active transaction that's
> > why you get this TransactionRequiredException.
> >
> > AFAIK, only searching is allowed without transaction.
> >
> > Hope it helps.
> > Jean-Louis
> >
> > Johannes Stamminger-2 wrote:
> >> Hi,
> >>
> >>
> >> I run into troubles with having a stateless bean trying to execute a
> >> tablespace/database creation sql statement (bwo createNativeQuery):
> >>
> >> With beans default behaviour (container managed transaction) I run into
> >> a postgres exception
> >>
> >> org.postgresql.util.PSQLException: ERROR: CREATE TABLESPACE cannot run
> >> inside
> >> a transaction block
> >>
> >> (roles and user creations before this work like a charme)
> >>
> >>
> >> With "native" jdbc connection I experienced this being executable only
> >> with
> >> enabling auto-commit and not using transactions. So I tried with
> >> switching
> >> auto-commit on for the EntityManager created from an injected
> >> EntityManagerFactory.
> >>
> >>     @PersistenceUnit(unitName = "valuesDb")
> >>     private EntityManagerFactory fEntityManagerFactory;
> >>     private EntityManager fEntityManager;
> >>
> >>     @PostConstruct
> >>     private void initEntityManager() {
> >>         fEntityManager = fEntityManagerFactory.createEntityManager();
> >>         fEntityManager.setFlushMode(FlushModeType.AUTO);
> >>     }
> >>
> >> Now the statement no longer get's executed at all as already the openjpa
> >> refuses with
> >>
> >>     [junit] Caused by: <openjpa-1.2.0-r422266:683325 nonfatal user
> >> error> org.apache.openjpa.persistence.TransactionRequiredException: Can
> >> only perform
> >> operation while a transaction is active.
> >>     [junit]     at
> >> org.apache.openjpa.kernel.BrokerImpl.assertActiveTransaction(BrokerImpl.
> >>java:4380) [junit]     at
> >> org.apache.openjpa.kernel.QueryImpl.assertBulkModify(QueryImpl.java:1655
> >>) [junit]     at
> >> org.apache.openjpa.kernel.QueryImpl.update(QueryImpl.java:1038)
> >>     [junit]     at
> >> org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:809)
> >>     [junit]     at
> >> org.apache.openjpa.kernel.QueryImpl.updateAll(QueryImpl.java:884)
> >>     [junit]     at
> >> org.apache.openjpa.kernel.QueryImpl.updateAll(QueryImpl.java:880)
> >>     [junit]     at
> >> org.apache.openjpa.kernel.DelegatingQuery.updateAll(DelegatingQuery.java
> >>:565) [junit]     at
> >> org.apache.openjpa.persistence.QueryImpl.executeUpdate(QueryImpl.java:33
> >>8)
> >>
> >>
> >> Same happens with annotating the class with (without switching
> >> auto-commit on)
> >>
> >> @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
> >>
> >> and/or
> >>
> >> @TransactionManagement(TransactionManagementType.BEAN)
> >>
> >>
> >>
> >> Is it not possible to execute this really special statement (one that
> >> executeUpdate refuses to within a transaction)? And/Or what am I doing
> >> wrong?
> >>
> >>
> >> (*Please* do not start a discussion on the necessity of
> >> database/tablespace
> >> creation ;-), this would be of no help for me currently)
> >>
> >>
> >>
> >> For completeness: my persistence.xml looks minimalistic:
> >>     <persistence-unit name="valuesDb">
> >>         <jta-data-source>valuesDbJtaDs</jta-data-source>
> >>         <non-jta-data-source>valuesDbNonJtaDs</non-jta-data-source>
> >>     </persistence-unit>
> >>
> >> The connection properties are set by way of properties to the
> >> InitialContext
> >> creation:
> >> properties.setProperty(Context.INITIAL_CONTEXT_FACTORY,
> >>
> >> "org.apache.openejb.client.RemoteInitialContextFactory");
> >>
> >> properties.setProperty("valuesDbJtaDs",
> >> "new://Resource?type=DataSource");
> >> properties.setProperty("valuesDbJtaDs.JdbcDriver",
> >> Driver.class.getName());
> >> properties.setProperty("valuesDbJtaDs.JdbcUrl", ...);
> >> properties.setProperty("valuesDbJtaDs.UserName", ...);
> >> properties.setProperty("valuesDbJtaDs.Password", ...);
> >> properties.setProperty("valuesDbJtaDs.JtaManaged", "true");
> >>
> >> properties.setProperty("valuesDbNonJtaDs",
> >> "new://Resource?type=DataSource");
> >> properties.setProperty("valuesDbNonJtaDs.JdbcDriver",
> >> Driver.class.getName());
> >> properties.setProperty("valuesDbNonJtaDs.JdbcUrl", ...);
> >> properties.setProperty("valuesDbNonJtaDs.UserName", ...);
> >> properties.setProperty("valuesDbNonJtaDs.Password", ...);
> >> properties.setProperty("valuesDbNonJtaDs.JtaManaged", "false");
> >>
> >>
> >>
> >> OpenEJB newby,
> >> Johannes
> >>
> >> This email (including any attachments) may contain confidential and/or
> >> privileged information or information otherwise protected from
> >> disclosure. If you are not the intended recipient, please notify the
> >> sender immediately, do not copy this message or any attachments and do
> >> not use it for any purpose or disclose its content to any person, but
> >> delete this message and any attachments from your system. Astrium
> >> disclaims any and all liability if this email transmission was virus
> >> corrupted, altered or falsified.
> >> ---------------------------------------------------------
> >> Astrium GmbH Vorsitzender des Aufsichtsrates: Thomas Mueller -
> >> Geschaeftsfuehrung: Evert Dudok (Vorsitzender), Dr. Reinhold Lutz,
> >> Guenter Stamerjohanns, Josef Stukenborg
> >> Sitz der Gesellschaft: Muenchen - Registergericht: Amtsgericht Muenchen,
> >> HRB Nr. 107 647
> >>
> >> Weitere Informationen ueber EADS Astrium @ http://www.astrium.eads.net/



-- 
Johannes.Stamminger@Astrium.EADS.net   [2FE783D0 http://wwwkeys.PGP.net]
------ ----<--{(@ ------------------                        EADS ASTRIUM
Koenigsberger Str. 17, 28857 Barrien           Ground System Eng. (TE55)
+49 4242 169582 (Tel + FAX)                 Airbus Allee 1, 28199 Bremen
+49 174 7731593 (Mobile)             +49 421 539 4152 (Tel) / 4378 (FAX)

This email (including any attachments) may contain confidential and/or privileged information or information otherwise protected from disclosure. If you are not the intended recipient, please notify the sender immediately, do not copy this message or any attachments and do not use it for any purpose or disclose its content to any person, but delete this message and any attachments from your system. Astrium disclaims any and all liability if this email transmission was virus corrupted, altered or falsified.
---------------------------------------------------------
Astrium GmbH Vorsitzender des Aufsichtsrates: Thomas Mueller - Geschaeftsfuehrung: Evert Dudok (Vorsitzender), Dr. Reinhold Lutz, Guenter Stamerjohanns, Josef Stukenborg
Sitz der Gesellschaft: Muenchen - Registergericht: Amtsgericht Muenchen, HRB Nr. 107 647  

Weitere Informationen ueber EADS Astrium @ http://www.astrium.eads.net/

Re: TransactionRequiredException vs must not execute within transaction

Posted by Jean-Louis MONTEIRO <je...@atosorigin.com>.
Hi again,

If you have this requirement, the only way i see is using the datasource
itself with plain JDBC.

// get the datasource injected
@Resource(...) DataSource ds;
...

// get a connection from the datasource
Connection ....

...

Jean-Louis


Jean-Louis MONTEIRO wrote:
> 
> Hi Johannes ,
> 
> The specification says that you can create a query without any active
> transaction 
> http://java.sun.com/javaee/5/docs/api/javax/persistence/EntityManager.html#createNativeQuery(java.lang.String)
> http://java.sun.com/javaee/5/docs/api/javax/persistence/EntityManager.html#createNativeQuery(java.lang.String)
> .
> 
> But, if you look Query specification 
> http://java.sun.com/javaee/5/docs/api/javax/persistence/Query.html#executeUpdate()
> http://java.sun.com/javaee/5/docs/api/javax/persistence/Query.html#executeUpdate() 
> you will see that you need to have a active transaction that's why you get
> this TransactionRequiredException.
> 
> AFAIK, only searching is allowed without transaction.
> 
> Hope it helps.
> Jean-Louis
> 
> 
> 
> 
> Johannes Stamminger-2 wrote:
>> 
>> 
>> Hi,
>> 
>> 
>> I run into troubles with having a stateless bean trying to execute a 
>> tablespace/database creation sql statement (bwo createNativeQuery):
>> 
>> With beans default behaviour (container managed transaction) I run into a 
>> postgres exception
>> 
>> org.postgresql.util.PSQLException: ERROR: CREATE TABLESPACE cannot run
>> inside 
>> a transaction block
>> 
>> (roles and user creations before this work like a charme)
>> 
>> 
>> With "native" jdbc connection I experienced this being executable only
>> with 
>> enabling auto-commit and not using transactions. So I tried with
>> switching 
>> auto-commit on for the EntityManager created from an injected 
>> EntityManagerFactory.
>> 
>>     @PersistenceUnit(unitName = "valuesDb")
>>     private EntityManagerFactory fEntityManagerFactory;
>>     private EntityManager fEntityManager;
>> 
>>     @PostConstruct
>>     private void initEntityManager() {
>>         fEntityManager = fEntityManagerFactory.createEntityManager();
>>         fEntityManager.setFlushMode(FlushModeType.AUTO);
>>     }
>> 
>> Now the statement no longer get's executed at all as already the openjpa 
>> refuses with
>> 
>>     [junit] Caused by: <openjpa-1.2.0-r422266:683325 nonfatal user error> 
>> org.apache.openjpa.persistence.TransactionRequiredException: Can only
>> perform 
>> operation while a transaction is active.
>>     [junit]     at 
>> org.apache.openjpa.kernel.BrokerImpl.assertActiveTransaction(BrokerImpl.java:4380)
>>     [junit]     at 
>> org.apache.openjpa.kernel.QueryImpl.assertBulkModify(QueryImpl.java:1655)
>>     [junit]     at 
>> org.apache.openjpa.kernel.QueryImpl.update(QueryImpl.java:1038)
>>     [junit]     at 
>> org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:809)
>>     [junit]     at 
>> org.apache.openjpa.kernel.QueryImpl.updateAll(QueryImpl.java:884)
>>     [junit]     at 
>> org.apache.openjpa.kernel.QueryImpl.updateAll(QueryImpl.java:880)
>>     [junit]     at 
>> org.apache.openjpa.kernel.DelegatingQuery.updateAll(DelegatingQuery.java:565)
>>     [junit]     at 
>> org.apache.openjpa.persistence.QueryImpl.executeUpdate(QueryImpl.java:338)
>> 
>> 
>> Same happens with annotating the class with (without switching
>> auto-commit on)
>> 
>> @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
>> 
>> and/or
>> 
>> @TransactionManagement(TransactionManagementType.BEAN)
>> 
>> 
>> 
>> Is it not possible to execute this really special statement (one that 
>> executeUpdate refuses to within a transaction)? And/Or what am I doing
>> wrong?
>> 
>> 
>> (*Please* do not start a discussion on the necessity of
>> database/tablespace 
>> creation ;-), this would be of no help for me currently)
>> 
>> 
>> 
>> For completeness: my persistence.xml looks minimalistic:
>>     <persistence-unit name="valuesDb">
>>         <jta-data-source>valuesDbJtaDs</jta-data-source>
>>         <non-jta-data-source>valuesDbNonJtaDs</non-jta-data-source>
>>     </persistence-unit>
>> 
>> The connection properties are set by way of properties to the
>> InitialContext 
>> creation:
>> properties.setProperty(Context.INITIAL_CONTEXT_FACTORY,
>>                       
>> "org.apache.openejb.client.RemoteInitialContextFactory");
>>         
>> properties.setProperty("valuesDbJtaDs",
>> "new://Resource?type=DataSource");
>> properties.setProperty("valuesDbJtaDs.JdbcDriver",
>> Driver.class.getName());
>> properties.setProperty("valuesDbJtaDs.JdbcUrl", ...);
>> properties.setProperty("valuesDbJtaDs.UserName", ...);
>> properties.setProperty("valuesDbJtaDs.Password", ...);
>> properties.setProperty("valuesDbJtaDs.JtaManaged", "true");
>> 
>> properties.setProperty("valuesDbNonJtaDs",
>> "new://Resource?type=DataSource");
>> properties.setProperty("valuesDbNonJtaDs.JdbcDriver",
>> Driver.class.getName());
>> properties.setProperty("valuesDbNonJtaDs.JdbcUrl", ...);
>> properties.setProperty("valuesDbNonJtaDs.UserName", ...);
>> properties.setProperty("valuesDbNonJtaDs.Password", ...);
>> properties.setProperty("valuesDbNonJtaDs.JtaManaged", "false");
>> 
>> 
>> 
>> OpenEJB newby,
>> Johannes
>> 
>> This email (including any attachments) may contain confidential and/or
>> privileged information or information otherwise protected from
>> disclosure. If you are not the intended recipient, please notify the
>> sender immediately, do not copy this message or any attachments and do
>> not use it for any purpose or disclose its content to any person, but
>> delete this message and any attachments from your system. Astrium
>> disclaims any and all liability if this email transmission was virus
>> corrupted, altered or falsified.
>> ---------------------------------------------------------
>> Astrium GmbH Vorsitzender des Aufsichtsrates: Thomas Mueller -
>> Geschaeftsfuehrung: Evert Dudok (Vorsitzender), Dr. Reinhold Lutz,
>> Guenter Stamerjohanns, Josef Stukenborg
>> Sitz der Gesellschaft: Muenchen - Registergericht: Amtsgericht Muenchen,
>> HRB Nr. 107 647  
>> 
>> Weitere Informationen ueber EADS Astrium @ http://www.astrium.eads.net/
>> 
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/TransactionRequiredException-vs-must-not-execute-within-transaction-tp25066470p25069232.html
Sent from the OpenEJB User mailing list archive at Nabble.com.


Re: TransactionRequiredException vs must not execute within transaction

Posted by Jean-Louis MONTEIRO <je...@atosorigin.com>.
Hi Johannes ,

The specification says that you can create a query without any active
transaction 
http://java.sun.com/javaee/5/docs/api/javax/persistence/EntityManager.html#createNativeQuery(java.lang.String)
http://java.sun.com/javaee/5/docs/api/javax/persistence/EntityManager.html#createNativeQuery(java.lang.String)
.

But, if you look Query specification 
http://java.sun.com/javaee/5/docs/api/javax/persistence/Query.html#executeUpdate()
http://java.sun.com/javaee/5/docs/api/javax/persistence/Query.html#executeUpdate() 
you will see that you need to have a active transaction that's why you get
this TransactionRequiredException.

AFAIK, only searching is allowed without transaction.

Hope it helps.
Jean-Louis




Johannes Stamminger-2 wrote:
> 
> 
> Hi,
> 
> 
> I run into troubles with having a stateless bean trying to execute a 
> tablespace/database creation sql statement (bwo createNativeQuery):
> 
> With beans default behaviour (container managed transaction) I run into a 
> postgres exception
> 
> org.postgresql.util.PSQLException: ERROR: CREATE TABLESPACE cannot run
> inside 
> a transaction block
> 
> (roles and user creations before this work like a charme)
> 
> 
> With "native" jdbc connection I experienced this being executable only
> with 
> enabling auto-commit and not using transactions. So I tried with switching 
> auto-commit on for the EntityManager created from an injected 
> EntityManagerFactory.
> 
>     @PersistenceUnit(unitName = "valuesDb")
>     private EntityManagerFactory fEntityManagerFactory;
>     private EntityManager fEntityManager;
> 
>     @PostConstruct
>     private void initEntityManager() {
>         fEntityManager = fEntityManagerFactory.createEntityManager();
>         fEntityManager.setFlushMode(FlushModeType.AUTO);
>     }
> 
> Now the statement no longer get's executed at all as already the openjpa 
> refuses with
> 
>     [junit] Caused by: <openjpa-1.2.0-r422266:683325 nonfatal user error> 
> org.apache.openjpa.persistence.TransactionRequiredException: Can only
> perform 
> operation while a transaction is active.
>     [junit]     at 
> org.apache.openjpa.kernel.BrokerImpl.assertActiveTransaction(BrokerImpl.java:4380)
>     [junit]     at 
> org.apache.openjpa.kernel.QueryImpl.assertBulkModify(QueryImpl.java:1655)
>     [junit]     at 
> org.apache.openjpa.kernel.QueryImpl.update(QueryImpl.java:1038)
>     [junit]     at 
> org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:809)
>     [junit]     at 
> org.apache.openjpa.kernel.QueryImpl.updateAll(QueryImpl.java:884)
>     [junit]     at 
> org.apache.openjpa.kernel.QueryImpl.updateAll(QueryImpl.java:880)
>     [junit]     at 
> org.apache.openjpa.kernel.DelegatingQuery.updateAll(DelegatingQuery.java:565)
>     [junit]     at 
> org.apache.openjpa.persistence.QueryImpl.executeUpdate(QueryImpl.java:338)
> 
> 
> Same happens with annotating the class with (without switching auto-commit
> on)
> 
> @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
> 
> and/or
> 
> @TransactionManagement(TransactionManagementType.BEAN)
> 
> 
> 
> Is it not possible to execute this really special statement (one that 
> executeUpdate refuses to within a transaction)? And/Or what am I doing
> wrong?
> 
> 
> (*Please* do not start a discussion on the necessity of
> database/tablespace 
> creation ;-), this would be of no help for me currently)
> 
> 
> 
> For completeness: my persistence.xml looks minimalistic:
>     <persistence-unit name="valuesDb">
>         <jta-data-source>valuesDbJtaDs</jta-data-source>
>         <non-jta-data-source>valuesDbNonJtaDs</non-jta-data-source>
>     </persistence-unit>
> 
> The connection properties are set by way of properties to the
> InitialContext 
> creation:
> properties.setProperty(Context.INITIAL_CONTEXT_FACTORY,
>                       
> "org.apache.openejb.client.RemoteInitialContextFactory");
>         
> properties.setProperty("valuesDbJtaDs", "new://Resource?type=DataSource");
> properties.setProperty("valuesDbJtaDs.JdbcDriver",
> Driver.class.getName());
> properties.setProperty("valuesDbJtaDs.JdbcUrl", ...);
> properties.setProperty("valuesDbJtaDs.UserName", ...);
> properties.setProperty("valuesDbJtaDs.Password", ...);
> properties.setProperty("valuesDbJtaDs.JtaManaged", "true");
> 
> properties.setProperty("valuesDbNonJtaDs",
> "new://Resource?type=DataSource");
> properties.setProperty("valuesDbNonJtaDs.JdbcDriver",
> Driver.class.getName());
> properties.setProperty("valuesDbNonJtaDs.JdbcUrl", ...);
> properties.setProperty("valuesDbNonJtaDs.UserName", ...);
> properties.setProperty("valuesDbNonJtaDs.Password", ...);
> properties.setProperty("valuesDbNonJtaDs.JtaManaged", "false");
> 
> 
> 
> OpenEJB newby,
> Johannes
> 
> This email (including any attachments) may contain confidential and/or
> privileged information or information otherwise protected from disclosure.
> If you are not the intended recipient, please notify the sender
> immediately, do not copy this message or any attachments and do not use it
> for any purpose or disclose its content to any person, but delete this
> message and any attachments from your system. Astrium disclaims any and
> all liability if this email transmission was virus corrupted, altered or
> falsified.
> ---------------------------------------------------------
> Astrium GmbH Vorsitzender des Aufsichtsrates: Thomas Mueller -
> Geschaeftsfuehrung: Evert Dudok (Vorsitzender), Dr. Reinhold Lutz, Guenter
> Stamerjohanns, Josef Stukenborg
> Sitz der Gesellschaft: Muenchen - Registergericht: Amtsgericht Muenchen,
> HRB Nr. 107 647  
> 
> Weitere Informationen ueber EADS Astrium @ http://www.astrium.eads.net/
> 
> 

-- 
View this message in context: http://www.nabble.com/TransactionRequiredException-vs-must-not-execute-within-transaction-tp25066470p25069198.html
Sent from the OpenEJB User mailing list archive at Nabble.com.