openejb-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Blevins <david.blev...@visi.com>
Subject Re: Propblem with OpenEJB + Toplink unit tests
Date Mon, 04 Aug 2008 11:05:18 GMT

On Aug 4, 2008, at 2:49 AM, Marcin Kwapisz wrote:

> Hi,
>
> Configuration: OpenEJB 3.0, ToplinkEssentials 2.1, Maven2, JUnit 4,  
> Derby 10.2.2
>
> I have modified that example -> http://openejb.apache.org/3.0/testing-transactions-example.html
> to use Toplink as persistence provider. The problem is, that Toplink  
> does not persists entities at all. With OpenJPA or Hibernate all  
> work fine.
>
> As You may see below, sequences are updated properly.
>
> [TopLink Finest]: 2008.08.04 11:17:31.359--ServerSession(13948523)-- 
> Thread(Thread[main,5,main])--end deploying Persistence Unit barPU;  
> state Deployed; factoryCount 1
> [TopLink Finer]: 2008.08.04 11:17:31.406--ServerSession(13948523)-- 
> Thread(Thread[main,5,main])--client acquired
> [TopLink Finest]: 2008.08.04 11:17:31.406--UnitOfWork(19780920)-- 
> Thread(Thread[main,5,main])--Execute query DoesExistQuery()
> [TopLink Finest]: 2008.08.04 11:17:31.406--UnitOfWork(19780920)-- 
> Thread(Thread[main,5,main])--PERSIST operation called on:  
> pl.zsk.samples.ejbaccess.entities.Person[id=null;Marcin].
> [TopLink Finest]: 2008.08.04 11:17:31.406--ClientSession(9876930)-- 
> Thread(Thread[main,5,main])--Execute query DataModifyQuery()
> [TopLink Finest]: 2008.08.04 11:17:31.406--ClientSession(9876930)-- 
> Thread(Thread[main,5,main])--reconnecting to external connection pool
> [TopLink Fine]: 2008.08.04 11:17:31.406--ClientSession(9876930)-- 
> Connection(7789321)--Thread(Thread[main,5,main])--UPDATE SEQUENCE  
> SET SEQ_COUNT = SEQ_COUNT + ? WHERE SEQ_NAME = ?
>        bind => [50, PERSONENT]
> [TopLink Finest]: 2008.08.04 11:17:31.421--ClientSession(9876930)-- 
> Thread(Thread[main,5,main])--Execute query ValueReadQuery()
> [TopLink Fine]: 2008.08.04 11:17:31.421--ClientSession(9876930)-- 
> Connection(7789321)--Thread(Thread[main,5,main])--SELECT SEQ_COUNT  
> FROM SEQUENCE WHERE SEQ_NAME = ?
>        bind => [PERSONENT]
> [TopLink Finest]: 2008.08.04 11:17:31.421--ClientSession(9876930)-- 
> Connection(7789321)--Thread(Thread[main,5,main])--local sequencing  
> preallocation for PERSONENT: objects: 50 , first: 1, last: 50
> [TopLink Finest]: 2008.08.04 11:17:31.421--UnitOfWork(19780920)-- 
> Thread(Thread[main,5,main])--assign sequence to the object (1 ->  
> pl.zsk.samples.ejbaccess.entities.Person[id=null;Marcin])
> 2008-08-04 11:17:31 pl.zsk.samples.ejbservice.AccountEntBeanTest  
> testCreatePersonEnt
> INFO: Get Persons from Database.
> [TopLink Finest]: 2008.08.04 11:17:31.531--UnitOfWork(19780920)-- 
> Thread(Thread[main,5,main])--Execute query  
> ReportQuery(pl.zsk.samples.entities.PersonEnt)
> [TopLink Finest]: 2008.08.04 11:17:31.546--ServerSession(13948523)-- 
> Thread(Thread[main,5,main])--reconnecting to external connection pool
> [TopLink Fine]: 2008.08.04 11:17:31.546--ServerSession(13948523)-- 
> Connection(13305839)--Thread(Thread[main,5,main])--SELECT ID,  
> FIRSTNAME, LASTNAME FROM PERSONENT
> []
> 2008-08-04 11:17:31 pl.zsk.samples.ejbservice.AccountEntBeanTest  
> testCreatePersonEnt
> INFO: []
>
> When I call flush just after persist I get the EJBException:
>
> javax.ejb.EJBException: The bean encountered a non-application  
> exception.; nested exception is:
>        javax.ejb.EJBTransactionRolledbackException: The transaction  
> has been marked rollback only because the bean encountered a non- 
> application  
> exception :javax.persistence.TransactionRequiredException :
> Exception Description: No transaction is currently active
>
> This is strange. Why transaction does not begin? Any suggestions how  
> to configure Toplink to make it work.
> Thanks in advance

It may be that TopLink doesn't know how to find our  
TransactionManager.  OpenJPA finds it automatically by calling  
org.apache.openejb.OpenEJB.getTransactionManager().  For Hibernate,  
there's the TransactionManagerLookup which can be configured.  Do you  
know if there's anything similar in TopLink?

-David


Mime
View raw message