openejb-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marcin Kwapisz" <mkwap...@zsk.p.lodz.pl>
Subject Propblem with OpenEJB + Toplink unit tests
Date Mon, 04 Aug 2008 09:49:23 GMT
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
-- 
Marcin Kwapisz
Division of Computer Networks
Technical Univeristy of Lodz, Poland



Mime
View raw message