2 Replies Latest reply on Oct 4, 2013 4:29 AM by dattathreya

    Issue with setting up multiple threads in Jboss ESB

    shaun077

      Hello,

      I am fairly new to Jboss ESB and I am trying to discover what is causing messages to fail when I introduce multiple threads (users) in load testing. I am using SoapUI to perform the load testing and it is working fine when there is only one thread, but fails at random when the threads are increased.

      Reading previous posts I gathered that the default number of threads catered for in Jboss ESB is set to 1.

      In the jbossesb.esb folder located in the deploy folder, I edited the jboss-esb.xml so that any occurrence of maxThreads was changed to 20.

      EG

      <jms-listener name="JMS-DCQListener"
      busidref="DataCollectorQueue"
      maxThreads="20"
      />


      I also edited the jboss-esb.xml in jboss developer and deployed the esb with the following changes.


      <jbr-listener busidref="omit1" is-gateway="true"
      maxThreads="100" name="http_bus_listener" />


      This hasn't solved the issue. Are the above changes to maxThreads the correct approach? Below is the output from the jboss app server when an error occurs:

      Thanks in advance.



      14:11:47,774 INFO [STDOUT] ----------------------------------------------------------------------------------------------------------------
      --------------------------
      14:11:47,805 ERROR [JBossRemotingGatewayListener] JBoss Remoting Gateway failed to synchronously deliver message to target service [omit2:WSRo
      utingService].
      org.jboss.soa.esb.couriers.FaultMessageException: org.jboss.soa.esb.actions.ActionProcessingException: Unexpected invocation target exceptio
      n from processor
      at org.jboss.soa.esb.listeners.message.errors.Factory.createExceptionFromFault(Factory.java:50)
      at org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl.pickup(TwoWayCourierImpl.java:207)
      at org.jboss.soa.esb.client.ServiceInvoker$EPRInvoker.attemptDelivery(ServiceInvoker.java:580)
      at org.jboss.soa.esb.client.ServiceInvoker$EPRInvoker.access$200(ServiceInvoker.java:493)
      at org.jboss.soa.esb.client.ServiceInvoker.post(ServiceInvoker.java:343)
      at org.jboss.soa.esb.client.ServiceInvoker.deliverSync(ServiceInvoker.java:204)
      at org.jboss.soa.esb.listeners.message.UncomposedMessageDeliveryAdapter.deliverSyncWithoutDecomposing(UncomposedMessageDeliveryAdapt
      er.java:107)
      at org.jboss.soa.esb.listeners.message.UncomposedMessageDeliveryAdapter.deliverSync(UncomposedMessageDeliveryAdapter.java:86)
      at org.jboss.soa.esb.listeners.gateway.JBossRemotingGatewayListener.invoke(JBossRemotingGatewayListener.java:345)
      at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:866)
      at org.jboss.remoting.transport.coyote.CoyoteInvoker.service(CoyoteInvoker.java:310)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
      at java.lang.Thread.run(Thread.java:619)
      Caused by: org.jboss.soa.esb.actions.ActionProcessingException: Unexpected invocation target exception from processor
      at org.jboss.soa.esb.listeners.message.ActionProcessorMethodInfo.processMethods(ActionProcessorMethodInfo.java:137)
      at org.jboss.soa.esb.listeners.message.OverriddenActionLifecycleProcessor.process(OverriddenActionLifecycleProcessor.java:74)
      at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:615)
      at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:574)
      at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:408)
      at org.jboss.soa.esb.listeners.message.MessageAwareListener$TransactionalRunner.run(MessageAwareListener.java:540)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      ... 1 more
      Caused by: org.jboss.soa.esb.couriers.FaultMessageException: org.jboss.soa.esb.actions.ActionProcessingException: Unexpected invocation targ
      et exception from processor
      at org.jboss.soa.esb.listeners.message.errors.Factory.createExceptionFromFault(Factory.java:50)
      at org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl.pickup(TwoWayCourierImpl.java:207)
      at org.jboss.soa.esb.client.ServiceInvoker$EPRInvoker.attemptDelivery(ServiceInvoker.java:580)
      at org.jboss.soa.esb.client.ServiceInvoker$EPRInvoker.access$200(ServiceInvoker.java:493)
      at org.jboss.soa.esb.client.ServiceInvoker.post(ServiceInvoker.java:343)
      at org.jboss.soa.esb.client.ServiceInvoker.deliverSync(ServiceInvoker.java:204)
      at omit3.WSOperationRouterAction.process(WSOperationRouterAction.java:119)
      at sun.reflect.GeneratedMethodAccessor123.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.jboss.soa.esb.listeners.message.ActionProcessorMethodInfo.processMethods(ActionProcessorMethodInfo.java:102)
      ... 8 more
      Caused by: org.jboss.soa.esb.actions.ActionProcessingException: Unexpected invocation target exception from processor
      at org.jboss.soa.esb.listeners.message.ActionProcessorMethodInfo.processMethods(ActionProcessorMethodInfo.java:137)
      ... 8 more
      Caused by: org.jboss.soa.esb.couriers.FaultMessageException: java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Map
      at org.jboss.soa.esb.listeners.message.errors.Factory.createExceptionFromFault(Factory.java:50)
      at org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl.pickup(TwoWayCourierImpl.java:207)
      at org.jboss.soa.esb.client.ServiceInvoker$EPRInvoker.attemptDelivery(ServiceInvoker.java:580)
      at org.jboss.soa.esb.client.ServiceInvoker$EPRInvoker.access$200(ServiceInvoker.java:493)
      at org.jboss.soa.esb.client.ServiceInvoker.post(ServiceInvoker.java:343)
      at org.jboss.soa.esb.client.ServiceInvoker.deliverSync(ServiceInvoker.java:204)
      omit4
      ...

      Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Map
      omit5
      ..

      14:11:47,836 ERROR [CoyoteInvoker] Error processing request
      java.io.NotSerializableException: org.jboss.internal.soa.esb.message.format.xml.MessageImpl
      at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
      at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
      omit6

        • 1. Re: Issue with setting up multiple threads in Jboss ESB
          shaun077

          bumping this thread up as I still haven't found a solution.

          • 2. Re: Issue with setting up multiple threads in Jboss ESB
            dattathreya

            Hi,

             

            Sorry for reopening an old thread.

             

            I  had encountered same type of issue, Please see below description.

            1. Obrm sends request to jboss IP.

            2. the request is handled by esb file.

            2.1  in the esb file the input data parsing is done.

            2.2  the actual input is generated finally and send to wsdl

            2.3 the wsdl call the required processes and transaction is completed.

            3. Final response is send back to OBRM.

            -------------------------------------------------------

            Problem location:

            --> As per the server.log file, the request coming to jboss are not tracked correctly and below error is displayed if any requests is not success.

             

            2013-09-17 18:51:29,432 ERROR [org.jboss.remoting.transport.coyote.CoyoteInvoker] Service error

            java.lang.ArrayIndexOutOfBoundsException: 0

            at org.jboss.remoting.transport.coyote.CoyoteInvoker.normalize(CoyoteInvoker.java:763)

            at org.jboss.remoting.transport.coyote.CoyoteInvoker.postParseRequest(CoyoteInvoker.java:608)

            at org.jboss.remoting.transport.coyote.CoyoteInvoker.service(CoyoteInvoker.java:287)

            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)

            at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

            at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)

            at java.lang.Thread.run(Thread.java:595)

             

             

            ---------------------------------------------------------