Uploaded image for project: 'Red Hat Process Automation Manager'
  1. Red Hat Process Automation Manager
  2. RHPAM-2077

Cannot configure CXF Client connectionTimeout/receiveTimeout for WebServiceWorkItemHandler

    Details

    • Target Release:
    • Steps to Reproduce:
      Hide
      • Start RHPAM 7.3.0
      • Deploy attached jboss-helloworld-ws.war to RHPAM 7.3.0
      • Unzip and Import attached WSTestRepo.zip
      • Build&Deploy "NewWSTest" project
      • Start a process "TestProcess"
      • The process calls WebService jboss-helloworld-ws.war which sleeps 250sec. The process throws Read Timeout in 60sec.
      Show
      Start RHPAM 7.3.0 Deploy attached jboss-helloworld-ws.war to RHPAM 7.3.0 Unzip and Import attached WSTestRepo.zip Build&Deploy "NewWSTest" project Start a process "TestProcess" The process calls WebService jboss-helloworld-ws.war which sleeps 250sec. The process throws Read Timeout in 60sec.

      Description

      WebServiceWorkItemHandler doesn't have configuration for CXF Client connectionTimeout/receiveTimeout. So it hits read timeout in 1 minutes by default.

      11:55:21,205 INFO  [stdout] (default task-7) Thread.sleep begins...
      ...
      11:56:21,237 ERROR [org.kie.server.remote.rest.jbpm.ProcessResource] (default task-6) Unexpected error during processing [WebServiceTestPropject.TestProcess:1 - WS:2] -- org.apache.cxf.interceptor.Fault: Could not receive Message.: org.jbpm.workflow.instance.WorkflowRuntimeException: [WebServiceTestPropject.TestProcess:1 - WS:2] -- org.apache.cxf.interceptor.Fault: Could not receive Message.
      	at org.jbpm.workflow.instance.node.WorkItemNodeInstance.internalTrigger(WorkItemNodeInstance.java:162)
      	at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:197)
      	at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:397)
      	at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:383)
      	at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:352)
      	at org.jbpm.workflow.instance.node.StartNodeInstance.triggerCompleted(StartNodeInstance.java:72)
      	at org.jbpm.workflow.instance.node.StartNodeInstance.internalTrigger(StartNodeInstance.java:43)
      	at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:197)
      	at org.jbpm.ruleflow.instance.RuleFlowProcessInstance.internalStart(RuleFlowProcessInstance.java:38)
      	at org.jbpm.process.instance.impl.ProcessInstanceImpl.start(ProcessInstanceImpl.java:233)
      	at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.start(WorkflowProcessInstanceImpl.java:480)
      	at org.jbpm.process.instance.ProcessRuntimeImpl.startProcessInstance(ProcessRuntimeImpl.java:210)
      	at org.jbpm.process.instance.ProcessRuntimeImpl.startProcess(ProcessRuntimeImpl.java:193)
      	at org.jbpm.process.instance.ProcessRuntimeImpl.startProcess(ProcessRuntimeImpl.java:185)
      	at org.drools.core.impl.StatefulKnowledgeSessionImpl.startProcess(StatefulKnowledgeSessionImpl.java:1866)
      	at org.drools.core.command.runtime.process.StartProcessCommand.execute(StartProcessCommand.java:122)
      	at org.drools.core.command.runtime.process.StartProcessCommand.execute(StartProcessCommand.java:40)
      	at org.drools.core.fluent.impl.PseudoClockRunner.executeBatch(PseudoClockRunner.java:102)
      	at org.drools.core.fluent.impl.PseudoClockRunner.executeBatches(PseudoClockRunner.java:69)
      	at org.drools.core.fluent.impl.PseudoClockRunner.execute(PseudoClockRunner.java:61)
      	at org.drools.core.fluent.impl.PseudoClockRunner.execute(PseudoClockRunner.java:39)
      	at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:39)
      	at org.drools.persistence.PersistableRunner$TransactionInterceptor.execute(PersistableRunner.java:597)
      	at org.drools.persistence.PersistableRunner$TransactionInterceptor.execute(PersistableRunner.java:563)
      	at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:39)
      	at org.drools.persistence.jpa.OptimisticLockRetryInterceptor.internalExecute(OptimisticLockRetryInterceptor.java:102)
      	at org.drools.persistence.jpa.OptimisticLockRetryInterceptor.execute(OptimisticLockRetryInterceptor.java:83)
      	at org.drools.persistence.jpa.OptimisticLockRetryInterceptor.execute(OptimisticLockRetryInterceptor.java:44)
      	at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:39)
      	at org.drools.persistence.jta.TransactionLockInterceptor.execute(TransactionLockInterceptor.java:73)
      	at org.drools.persistence.jta.TransactionLockInterceptor.execute(TransactionLockInterceptor.java:45)
      	at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:39)
      	at org.jbpm.runtime.manager.impl.error.ExecutionErrorHandlerInterceptor.internalExecute(ExecutionErrorHandlerInterceptor.java:66)
      	at org.jbpm.runtime.manager.impl.error.ExecutionErrorHandlerInterceptor.execute(ExecutionErrorHandlerInterceptor.java:52)
      	at org.jbpm.runtime.manager.impl.error.ExecutionErrorHandlerInterceptor.execute(ExecutionErrorHandlerInterceptor.java:29)
      	at org.drools.persistence.PersistableRunner.execute(PersistableRunner.java:398)
      	at org.drools.persistence.PersistableRunner.execute(PersistableRunner.java:66)
      	at org.drools.core.runtime.InternalLocalRunner.execute(InternalLocalRunner.java:37)
      	at org.drools.core.runtime.InternalLocalRunner.execute(InternalLocalRunner.java:41)
      	at org.drools.core.command.impl.CommandBasedStatefulKnowledgeSession.startProcess(CommandBasedStatefulKnowledgeSession.java:264)
      	at org.jbpm.kie.services.impl.ProcessServiceImpl.startProcess(ProcessServiceImpl.java:115)
      	at org.kie.server.services.jbpm.ProcessServiceBase.startProcess(ProcessServiceBase.java:95)
      	at org.kie.server.remote.rest.jbpm.ProcessResource.startProcess(ProcessResource.java:174)
      	...
      Caused by: org.jbpm.bpmn2.handler.WorkItemHandlerRuntimeException: org.apache.cxf.interceptor.Fault: Could not receive Message.
      	at org.jbpm.process.workitem.core.AbstractLogOrThrowWorkItemHandler.handleException(AbstractLogOrThrowWorkItemHandler.java:67)
      	at org.jbpm.process.workitem.core.AbstractLogOrThrowWorkItemHandler.handleException(AbstractLogOrThrowWorkItemHandler.java:43)
      	at org.jbpm.process.workitem.webservice.WebServiceWorkItemHandler.executeWorkItem(WebServiceWorkItemHandler.java:428)
      	at org.drools.persistence.jpa.processinstance.JPAWorkItemManager.internalExecuteWorkItem(JPAWorkItemManager.java:69)
      	at org.jbpm.workflow.instance.node.WorkItemNodeInstance.internalTrigger(WorkItemNodeInstance.java:150)
      	... 113 more
      Caused by: org.apache.cxf.interceptor.Fault: Could not receive Message.
      	at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:65)
      	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:309)
      	at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:523)
      	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:432)
      	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:347)
      	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:305)
      	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:325)
      	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:311)
      	at org.jbpm.process.workitem.webservice.WebServiceWorkItemHandler.executeWorkItem(WebServiceWorkItemHandler.java:342)
      	... 115 more
      Caused by: java.net.SocketTimeoutException: SocketTimeoutException invoking http://localhost:8080/helloworld-ws/HelloWorldService: Read timed out
      	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
      	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
      	at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
      	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1395)
      	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1379)
      	at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
      	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:663)
      	at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:63)
      	... 123 more
      Caused by: java.net.SocketTimeoutException: Read timed out
      	at java.net.SocketInputStream.socketRead0(Native Method)
      	at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
      	at java.net.SocketInputStream.read(SocketInputStream.java:170)
      	at java.net.SocketInputStream.read(SocketInputStream.java:141)
      	at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
      	at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
      	at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
      	at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:704)
      	at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647)
      	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1536)
      	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
      	at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
      	at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream$2.run(URLConnectionHTTPConduit.java:379)
      	at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream$2.run(URLConnectionHTTPConduit.java:375)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.getResponseCode(URLConnectionHTTPConduit.java:375)
      	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.doProcessResponseCode(HTTPConduit.java:1592)
      	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1621)
      	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1565)
      	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1366)
      	... 126 more
      ...
      11:59:31,206 INFO  [stdout] (default task-7) Thread.sleep completed...
      

      These properties were effective in business-central as process engine in BPM suite 6. (not effective in BPM suite 6 kie-server.war)

      <property name="cxf.client.connectionTimeout" value="300000"/>
      <property name="cxf.client.receiveTimeout" value="300000"/>
      

      It is because these properties were implemented for JBossWS-CXF integration. And kie-server.war uses its own CXF libraries.

      https://docs.jboss.org/author/display/WFLY10/Apache+CXF+integration

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  swiderski.maciej Maciej Swiderski
                  Reporter:
                  tkobayashi Toshiya Kobayashi
                  Tester:
                  Marian Macik
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  3 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: