Workflow-invocation via web service: Server-side transaction timeout?

We use the server 4.0.0 WSDL interface to automate workflow execution and BIRT report generation. Workflow execution is triggered using invokeAsync, as we sometimes do expect long workflow execution times. After the workflow has finished, Report generation is triggered invoking the generateReport SOAP operation.

This used to work well with the old glassfish-based knime server. With the new server, we can sometimes see a transaction rollback, probably caused by a timeout (this happens in cases where report generation takes a couple of minutes). I attached the tomEE stack trace below

Is there a way to configure/eliminate this timeout?

Regards,

Markus

[Mi Aug 26 12:53:10 MESZ 2015] WARNUNG       org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging                               : Application {http://www.knime.com/soap}GenericWorkflowService#{http://www.knime.com/soap}generateReport has thrown
exception, unwinding now
org.apache.cxf.interceptor.Fault: Transaction was rolled back, presumably because setRollbackOnly was called during a synchronization while invoking public abstract byte[] com.knime.enterprise.server.ws.GenericWorkflowWebService.generateReport(java.uti
l.UUID,java.lang.String) throws com.knime.enterprise.utility.ExecutorException with params [c74be147-4b3f-400e-a5c8-cfcc4c57f43f, pdf].
        at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:166)
        at org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.createFault(AbstractJAXWSMethodInvoker.java:213)
        at org.apache.openejb.server.cxf.ejb.EjbMethodInvoker.preEjbInvoke(EjbMethodInvoker.java:147)
        at org.apache.openejb.server.cxf.ejb.EjbMethodInvoker.invoke(EjbMethodInvoker.java:73)
        at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:75)
        at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:57)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
        at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
        at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
        at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:240)
        at org.apache.openejb.server.cxf.CxfWsContainer.onMessage(CxfWsContainer.java:86)
        at org.apache.openejb.server.webservices.WsServlet.service(WsServlet.java:98)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
        at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:610)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.openejb.core.transaction.TransactionRolledbackException: Transaction was rolled back, presumably because setRollbackOnly was called during a synchronization
        at org.apache.openejb.core.transaction.JtaTransactionPolicy.completeTransaction(JtaTransactionPolicy.java:338)
        at org.apache.openejb.core.transaction.TxRequired.commit(TxRequired.java:76)
        at org.apache.openejb.core.transaction.EjbTransactionUtil.afterInvoke(EjbTransactionUtil.java:77)
        at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:246)
        at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:194)
        at org.apache.openejb.server.cxf.ejb.EjbMethodInvoker.preEjbInvoke(EjbMethodInvoker.java:120)
        ... 33 more
Caused by: javax.transaction.RollbackException: Unable to commit: transaction marked for rollback
        at org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:272)
        at org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:252)
        at org.apache.openejb.core.transaction.JtaTransactionPolicy.completeTransaction(JtaTransactionPolicy.java:331)
        ... 38 more
Caused by: java.lang.Exception: Transaction has timed out
        at org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:266)
        ... 40 more


This is described in the server installation manual in the section about "KNIME Web Service Interface".

Thanks a lot. Found it in the 4.1.0 install manual. The setting was not mentioned in the 4.0.0 installation guide.

Not in one of the earlier versions, this is true. But the guide for 4.0 currently available mentions it. But I'm glad that it works now!