facebook

how to prevent javax.transaction.RollbackException?

  1. MyEclipse IDE
  2.  > 
  3. Spring Development
Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #315167 Reply

    Greg Soulsby
    Member

    I am calling my own object from a normal scafoled ServiceImpl.java. I am getting the following after the function has run:
    javax.transaction.RollbackException: Transaction set to rollback only

    It seems to occur when my program takes longer to run. My code is not calling on the database, but does access a system file. Maybe a timeout issue?

    Google does not turn up anything that is useful.

    So how do I prevent?

    Thanks

    This is the full consol message:

    SEVERE: Servlet.service() for servlet PAA2 Servlet threw exception
    javax.transaction.RollbackException: Transaction set to rollback only
    at com.atomikos.icatch.jta.TransactionImp.commit(TransactionImp.java:312)
    at com.atomikos.icatch.jta.TransactionManagerImp.commit(TransactionManagerImp.java:612)
    at com.atomikos.icatch.jta.UserTransactionImp.commit(UserTransactionImp.java:168)
    at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1009)
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754)
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:412)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:118)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
    at $Proxy39.runProcedure(Unknown Source)
    at paa2.web.PanProceduresController.scores_ss(PanProceduresController.java:323)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:710)
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:167)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:414)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:402)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:563)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:65)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:113)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)

    #315201 Reply

    jkennedy
    Member

    If you look in the resources folder under your project you should see a file called “prjname”-generated-dao-context.xml.
    Look at the Transaction Manager section, there is a timeout interval that is passed to the transaction manager that you can adjust.

    Let me know if that doesn’t solve the issue for you.
    There may also be a setting on the DB itself.

    Thanks,
    Jack

    #315232 Reply

    Greg Soulsby
    Member

    Great, thanks.

    If I want different timeouts in different contexts, I need another Transaction Manager? Some in-house batch jobs needs lots of time, but for a simple web page we want it to time out mcuh quicker than that.

    #315255 Reply

    jkennedy
    Member

    You should just be able to set the timeout value on the @Transactional annotation on the method that needs a longer timeout.

    Here is an overview of the @Transactional annotation. You can also control which types of exceptions result in Rollbacks etc.

    http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/transaction/annotation/Transactional.html

    Hope this helps.

    Thanks,
    Jack

Viewing 4 posts - 1 through 4 (of 4 total)
Reply To: how to prevent javax.transaction.RollbackException?

You must be logged in to post in the forum log in