[jboss-user] [EJB/JBoss] - Doing persistence operations in worker threads
do-not-reply at jboss.com
Sun May 25 04:49:20 EDT 2008
I am running into a problem where I have come to a dead end after following several leads.
I am launching an operation asynchronously in a separate thread which gathers some info and then starts persisting some entities. Problem is, I cannot seem to get anything written to the database.
My current approach is to get the EntityManagerFactory and UserTransaction in my worker thread by doing a JNDI lookup:
| InitialContext ctx = new InitialContext();
| EntityManagerFactory emf = (EntityManagerFactory)ctx.lookup( "java:/MyProjectEntityManagerFactory" );
| UserTransaction ut = (UserTransaction)ctx.lookup( "java:comp/UserTransaction" );
| EntityManager em = em = emf.createEntityManager();
As soon as the last line above is executed, I see the following message in my JBoss log file:
| 2008-05-25 01:14:30,093 DEBUG [org.hibernate.impl.SessionImpl] opened session at
| timestamp: 4963136594300928
| 2008-05-25 01:14:30,093 DEBUG [org.hibernate.ejb.AbstractEntityManagerImpl] Looking for a JTA transaction to join
| 2008-05-25 01:14:30,093 DEBUG [org.hibernate.ejb.AbstractEntityManagerImpl] No JTA transaction found
All persistent operations seem to work, but nothing gets written to the DB. I see the following log messages in server.log:
| 2008-05-25 01:21:20,718 DEBUG [org.hibernate.event.def.AbstractSaveEventListener] delaying identity-insert due to no transaction in progress
Is there anything I can do to start a JTA transaction?
My environment is JBoss 4.2.2 and Seam 2.x
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4153204#4153204
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4153204
More information about the jboss-user