My objective is to set a different timeout (greater than default of 5 mins) for a method
that need to process a group of objects in a long transaction. So I tried to use the
@TransactionTimeout annotation. Below is a simplified pseudocode with what I want to do.
| @PersistenceContext
| EntityManager em;
|
| @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
| @TransactionTimeout(3600)
| public Long doLongTransaction(List<BaseEntity> entities)
| {
| for(BaseEntity entity : entities)
| {
| if (condition)
| persistEntity(entity);
| else
| updateEntity(entity);
| }
| }
| @TransactionAttribute(TransactionAttributeType.REQUIRED)
| public void persistEntity(BaseEntity entity)
| {
| em.persist(entity);
| }
| @TransactionAttribute(TransactionAttributeType.REQUIRED)
| public void updateEntity(BaseEntity entity)
| {
| em.merge(entity);
| }
|
If I try to set a minimum timeout to see if the transaction for this method will timeout
let's say, after a minute it doesn't work, it will only timeout after the default
5 minutes value.
Am I missing something. Is there any other possibility to set a different transaction
timeout for a method without affecting the global transaction default timeout?
Thanks,
Mihai
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4244656#...
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&a...