As we transition to the new Hyland Community, some post links may be temporarily disrupted as we finalize redirects. We apologize for the inconvenience and are working to resolve this as quickly as possible. Details.
1. Looking at the NodeService Java API, no routine seems to take a transaction as a parameter. This is because every call to the API will run in its own transaction, as documented here. However, if you begin a transaction obtained via getUserTransaction() then the API is using this as the "global transaction". Is this correct so far? 2. Is this global transaction per Java thread?
3. How can I run two independent transactions in parallel? Put differently, how can I make sure that two threads using this global transaction will not run in the same transaction?
4. What does TransactionService's getNonPropagatingUserTransaction() return?
However, if I use this routine from my (non-Web Client) webapp once at the beginning of each web request then the Web Client asks me to log in again.
15:55:35,849 User:admin ERROR [ui.common.Utils] Failed to get to do tasks: javax.transaction.RollbackException: The transaction has already been marked for rollback javax.transaction.RollbackException: The transaction has already been marked for rollback at org.alfresco.util.transaction.SpringAwareUserTransaction.commit(SpringAwareUserTransaction.java:404) at org.alfresco.web.bean.workflow.WorkflowBean.getTasksToDo(WorkflowBean.java:217) at sun.reflect.GeneratedMethodAccessor690.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:457) at org.apache.myfaces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:85) at org.apache.myfaces.el.ELParserHelper$MyPropertySuffix.evaluate(ELParserHelper.java:535) at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145) at org.apache.commons.el.UnaryOperatorExpression.evaluate(UnaryOperatorExpression.java:156) at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:386) at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:1078) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:601) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:605) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:605) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:605) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:605) at javax.faces.component.UIForm.processDecodes(UIForm.java:56) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:605) at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:138) at org.apache.myfaces.lifecycle.ApplyRequestValuesExecutor.execute(ApplyRequestValuesExecutor.java:32) at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95) at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:139) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.alfresco.web.app.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:81) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685) at java.lang.Thread.run(Thread.java:613) 15:55:35,876 User:admin ERROR [ui.common.Utils] Failed to get pooled tasks: javax.transaction.RollbackException: The transaction has already been marked for rollback javax.transaction.RollbackException: The transaction has already been marked for rollback at org.alfresco.util.transaction.SpringAwareUserTransaction.commit(SpringAwareUserTransaction.java:404) at org.alfresco.web.bean.workflow.WorkflowBean.getPooledTasks(WorkflowBean.java:167) at sun.reflect.GeneratedMethodAccessor691.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:457) at org.apache.myfaces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:85) at org.apache.myfaces.el.ELParserHelper$MyPropertySuffix.evaluate(ELParserHelper.java:535) at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145) at org.apache.commons.el.UnaryOperatorExpression.evaluate(UnaryOperatorExpression.java:156) at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:386) at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:1078) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:601) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:605) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:605) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:605) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:605) at javax.faces.component.UIForm.processDecodes(UIForm.java:56) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:605) at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:138) at org.apache.myfaces.lifecycle.ApplyRequestValuesExecutor.execute(ApplyRequestValuesExecutor.java:32) at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95) at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:139) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.alfresco.web.app.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:81) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685) at java.lang.Thread.run(Thread.java:613) 15:55:35,898 User:admin ERROR [ui.common.Utils] Failed to get all active tasks: javax.transaction.RollbackException: The transaction has already been marked for rollback javax.transaction.RollbackException: The transaction has already been marked for rollback at org.alfresco.util.transaction.SpringAwareUserTransaction.commit(SpringAwareUserTransaction.java:404) at org.alfresco.web.bean.workflow.WorkflowBean.getAllActiveTasks(WorkflowBean.java:118) at sun.reflect.GeneratedMethodAccessor692.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:457) at org.apache.myfaces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:85) at org.apache.myfaces.el.ELParserHelper$MyPropertySuffix.evaluate(ELParserHelper.java:535) at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145) at org.apache.commons.el.UnaryOperatorExpression.evaluate(UnaryOperatorExpression.java:156) at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:386) at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:1078) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:601) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:605) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:605) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:605) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:605) at javax.faces.component.UIForm.processDecodes(UIForm.java:56) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:605) at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:138) at org.apache.myfaces.lifecycle.ApplyRequestValuesExecutor.execute(ApplyRequestValuesExecutor.java:32) at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95) at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:139) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.alfresco.web.app.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:81) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685) at java.lang.Thread.run(Thread.java:613) 15:55:35,928 User:admin ERROR [ui.common.Utils] NavigatorPluginBean exception in getCompanyHomeRootNodes() javax.transaction.RollbackException: The transaction has already been marked for rollback at org.alfresco.util.transaction.SpringAwareUserTransaction.commit(SpringAwareUserTransaction.java:404) at org.alfresco.web.bean.ajax.NavigatorPluginBean.getCompanyHomeRootNodes(NavigatorPluginBean.java:346) at org.alfresco.web.ui.repo.component.UINavigator.encodeBegin(UINavigator.java:260) at org.alfresco.web.ui.common.Utils.encodeRecursive(Utils.java:540) at org.alfresco.web.ui.common.Utils.encodeRecursive(Utils.java:553) at org.alfresco.web.ui.repo.component.UISidebar.encodeChildren(UISidebar.java:196) at javax.faces.webapp.UIComponentTag.encodeChildren(UIComponentTag.java:483) at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:364) at org.apache.jsp.jsp.browse.browse_jsp._jspService(browse_jsp.java:538) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301) at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419) at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211) at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41) at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:140) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.alfresco.web.app.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:81) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685) at java.lang.Thread.run(Thread.java:613) 15:55:36,038 User:admin ERROR [ui.common.Utils] A system error happened during the operation: The transaction has already been marked for rollback javax.transaction.RollbackException: The transaction has already been marked for rollback at org.alfresco.util.transaction.SpringAwareUserTransaction.commit(SpringAwareUserTransaction.java:404) at org.alfresco.web.bean.BrowseBean.queryBrowseNodes(BrowseBean.java:847) at org.alfresco.web.bean.BrowseBean.getNodes(BrowseBean.java:443) 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:585) at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:457) at org.apache.myfaces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:85) at org.apache.myfaces.el.ELParserHelper$MyPropertySuffix.evaluate(ELParserHelper.java:535) at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145) at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:386) at org.alfresco.web.ui.common.component.data.UIRichList.getValue(UIRichList.java:154) at org.alfresco.web.ui.common.component.data.UIRichList.getDataModel(UIRichList.java:508) at org.alfresco.web.ui.common.component.data.UIRichList.bind(UIRichList.java:451) at org.alfresco.web.ui.common.renderer.data.RichListRenderer.encodeChildren(RichListRenderer.java:83) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:527) at javax.faces.webapp.UIComponentTag.encodeChildren(UIComponentTag.java:483) at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:364) at org.apache.jsp.jsp.browse.browse_jsp._jspx_meth_a_005frichList_005f0(browse_jsp.java:2402) at org.apache.jsp.jsp.browse.browse_jsp._jspx_meth_a_005fpanel_005f5(browse_jsp.java:2301) at org.apache.jsp.jsp.browse.browse_jsp._jspService(browse_jsp.java:832) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301) at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419) at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211) at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41) at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:140) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.alfresco.web.app.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:81) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685) at java.lang.Thread.run(Thread.java:613)
Search failed due to system error: The transaction has already been marked for rollback