[jboss-user] [JBoss Seam] - Seam self managed transactions DOES NOT WORK

dreuzel do-not-reply at jboss.com
Wed Jan 23 11:18:46 EST 2008


I have  an application with the  need to  handle  the transactions myself.

  | this  means      em.begin
  |                        em.query
  |                        em.commit   or rollback 
  | 
  |                    when I Want it without 
  |                    interference  of any  CONTAINER  transactions
  |                   
  | 

       I agree there are situations, where they are  usefull
       BUT  I NEED THE  CONTROLL  in MY CASE

  | A)   I switched  of  Seam Transaction controll as is explained in the manual
  | B)
  |      I DID experiment  with 
  |    //@TransactionManagement(TransactionManagementType.BEAN)    //instead  of Container 
  | @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)  //suspend  all active  container transactions
  | 

 persistence jta 

  |    <!--      <property name="hibernate.transaction.factory_class" value="org.hibernate.transaction.JTATransactionFactory"/>   -->
  |          <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
  | 



  |  <core:init debug="@debug@" jndi-pattern="@jndiPattern@"  transaction-management-enabled="false" />
  |                   conversation-timeout="12000000"    -->     
  |    <core:manager concurrent-request-timeout="5000000" 
  |                  conversation-timeout="200000000" 
  |                  conversation-id-parameter="cid"/>
  |               
  |    <persistence:managed-persistence-context name="entityManager"
  |                                      auto-create="true"
  |                       persistence-unit-jndi-name="java:/httpscanEntityManagerFactory"/>
  | 
 


I still get  into  a lot of trouble

or at     sesion.begin

  | Begin starting transaction failed TransactionException err: Could not register synchronization for container transaction
  | 

I do not want to use  Container managed transactions  since  I want it to be controlled  by myself




  | 	    org.hibernate.Transaction txn=null;//
  | 	    boolean   rollback=false;
  | //	    javax.persistence.EntityManagerFactory Ef=
  | 	    //reset  timeout 
  | 	//    if (EM!=null) em=EM;
  | 	    try { env="Timeout";
  | 	          org.jboss.seam.transaction.Transaction.instance().setTransactionTimeout(60*60*10000000);
  | 	        } catch (Exception er)
  | 	                           {errcod=er;
  | 	                            String errmsg=er.getClass().getSimpleName() +" err: "+ er.getMessage();
  | 	                            log.error(env+" Modifying timeout failed "+ errmsg);
  | 	                           }
  | 		// seam timeout 	 
  | 	    try { env ="seam timeout";  	         
  | 	    org.jboss.seam.transaction.Transaction.instance().setTransactionTimeout(60*60*10000000);} catch (Exception er)
  | 	    		{errcod=er;
  | 	    		 String errmsg=er.getClass().getSimpleName() +" err: "+ er.getMessage();
  | 	             log.error(env+" Modifying Seam  timeout failed "+ errmsg);
  | 	             }
  | 


I even tried  to setup a separate entityManager from JNDI

but hten the queries do not relate tot the transactions


Has anyone done this simple operation ?

Is it possible to disable  the container transaction functionality 
and do the  BEGIN-COMMIT-Rollback independent
of  container optimisations 



all help is welcome, i'm getting desperate


or  it complains ther are  NO transactions







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

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4122691



More information about the jboss-user mailing list