Issue with setting up multiple threads in Jboss ESB
shaun077 Nov 5, 2009 12:06 AMHello,
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