Karma,

I found that annotating the class (where the data is persisted) with 
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)  solved the 
problem for me, but unfortunately it does not seem to work for you.  But after 
reading your post i have revisited the problem and removed the annotations and 
it still works !!! so i really don't know what the cause of problem was in the 
first place. 

I would imagine that the underlying cause of the problem i had will be the same 
as the problem you are currently experiencing, namely that the em.persist() 
only triggers an update and does not wait for the transaction to commit, and i 
also found that trying em.flush() after had no effect at all.  To see if that 
is the case turn on full database logging and you should see the insert, 
select, and then commit in that order.

The current program layout i have that is working is to have a top level method 
that calls 2 other methods. Method 1 is the presist data method and method 2 is 
the send message method.  See below:


  | public void action(){
  |      
  |         int pk = 0;
  |         
  |         try{
  |             pk = doPersistData();
  |         }catch(Exception e){
  |             e.printStackTrace();
  |         }
  |         
  |         try{
  |             // send a JMS message
  |             doMessageStuff(pk);
  |         }catch(Exception e){
  |             e.printStackTrace();
  |         }
  |     }

The thread i also create about this on the hibernate website can be found here: 
http://forum.hibernate.org/viewtopic.php?t=962664&highlight=

Cheers,

Andy

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3973501#3973501

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3973501
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to