camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From RKalaria <rajesh.kala...@in2m.com>
Subject RE: URGENT : Strange behaviour with load testing with Camel Validator component
Date Tue, 26 Aug 2008 15:15:37 GMT

Hi Claus,

    Thanks for the response.
    And I think may be you haven't noticed Issue 1 ( there are 2 issues ).

    As per with you suggestion I have downloaded servicemix-camel-3.2.2
source code and changed pom.xml file which refers to camel 1.5-SNAPSHOT.
    Replaced servicemix-camel-3.2.2-installer.zip with
servicemix-camel-3.2.2-installer.zip having camel-core-1.5-snapshot and
camel-spring-1.5-snapshot in its lib folder.

    But still Issue 1 persists, which I already discussed in earlier
message.

Issue 2:

Message Flow :

    Client -- > Http Consumer SU --> Bean SU -- > Camel Validation SU -->
Camel Routing SU --> Http Provider SU --> External Application

Camel Validate SU: Using camel component for validation to validate source
message according to the specified xsd's.
Camel Routing SU: Using camel component for routing purpose depending upon
the source message to different applications.

Problem Facing:

    After deploying my Service Assembly (contains above mentioned SU's) if I
start doing load testing (having 200 users parallel requests) it just hangs
at Camel Validation SU level after processing some requests and then I am
getting Time Out exceptions.

But if I just ignore Camel Routing SU from my Service Assembly (i.e means
Service Assembly contains Http Consumer SU, Bean SU, Camel Validation SU,
Http Provider SU) then I am able to process any number of parallel requests
with out any problems.

Short Term Solution we found:
          
            Since we can't ignore Camel Routing SU from Service Assembly we
combined Validation and Routing logic in single Camel component. And again I
tried doing load testing with 500 parallel requests and its working fine.
      
Questions: 
                1. Why some times I used to get
"org.xml.sax.SAXParseException: schema_reference.4: Failed to read schema
                    document " ?
                2. Why requests are not getting processed just after Camel
Validation SU when we have more than one camel component in Service Assembly
for load testing (which is not this behavior for single requests) ?

Regards,
Rajesh



Claus Ibsen wrote:
> 
> Hi
> 
> It has been reported in CAMEL-803 and fixed in Camel 1.5 that currently is
> in progress. 
> 
> You can try to upgrade Camel to 1.5-SNAPSHOT to get the fix, and test it
> in your test environment if it works now. If not please report it so we
> have time to fix it before 1.5 is released.
> 
> 
> Med venlig hilsen
>  
> Claus Ibsen
> ......................................
> Silverbullet
> Skovsgårdsvænget 21
> 8362 Hørning
> Tlf. +45 2962 7576
> Web: www.silverbullet.dk
> 
> -----Original Message-----
> From: Claus Ibsen [mailto:ci@silverbullet.dk] 
> Sent: 25. august 2008 18:29
> To: camel-user@activemq.apache.org
> Subject: RE: URGENT : Strange behaviour with load testing with Camel
> Validator component
> 
> Hi
> 
> We had a similar issue in the camel-saxon component. What helped was at
> that time to upgrade to latest 3rd party jar (saxon 9.1.x).
> 
> There might be some concurrency issue with camel-spring validator
> component.
> Could you report a JIRA about this?
> http://activemq.apache.org/camel/support.html
> 
> 
> 
> Med venlig hilsen
>  
> Claus Ibsen
> ......................................
> Silverbullet
> Skovsgårdsvænget 21
> 8362 Hørning
> Tlf. +45 2962 7576
> Web: www.silverbullet.dk
> 
> -----Original Message-----
> From: RKalaria [mailto:rajesh.kalaria@in2m.com] 
> Sent: 25. august 2008 17:57
> To: camel-user@activemq.apache.org
> Subject: URGENT : Strange behaviour with load testing with Camel Validator
> component
> 
> 
> Hi,
> 
>      We are using servicemix 3.2.2. We are facing couple of strange
> behavior
> while load testing with camel's validator  component. 
> 
>     1st Issue :
>      Sometimes in parallel request processing we are getting "Schema not
> found error" from validation component. This behavior is not consistent it
> just happens randomly with only parallel requests (with single request it
> works fine). It gives following error :
> 
> ERROR - DeadLetterChannel              - Failed delivery for exchangeId:
> ID-esb-test1/42641-1219685726074/0-0. On delivery attempt: 0 caught:
> org.xml.sax.SAXParseException: schema_reference.4: Failed to read schema
> document
> 'file:/home/ofbiz/apache-servicemix-3.2.2/data/smx/service-assemblies/changepassword-sa/version_1/sus/servicemix-camel/validate-su/updatepassword.xsd',
> because 1) could not find the document; 2) the document could not be read;
> 3) the root element of the document is not .
> org.xml.sax.SAXParseException: schema_reference.4: Failed to read schema
> document
> 'file:/home/ofbiz/apache-servicemix-3.2.2/data/smx/service-assemblies/changepassword-sa/version_1/sus/servicemix-camel/validate-su/updatepassword.xsd',
> because 1) could not find the document; 2) the document could not be read;
> 3) the root element of the document is not .
>         at
> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:236)
>         at
> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:172)
>         at
> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:382)
>         at
> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:316)
>         at
> com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaError(XSDHandler.java:2245)
>         at
> com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getSchema(XSDHandler.java:1590)
>         at
> com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:438)
>         at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:556)
>         at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:523)
>         at
> com.sun.org.apache.xerces.internal.jaxp.validation.xs.SchemaFactoryImpl.newSchema(SchemaFactoryImpl.java:206)
>         at
> javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:489)
>         at
> org.apache.camel.processor.validation.ValidatingProcessor.createSchema(ValidatingProcessor.java:204)
>         at
> org.apache.camel.processor.validation.ValidatingProcessor.getSchema(ValidatingProcessor.java:118)
>         at
> org.apache.camel.processor.validation.ValidatingProcessor.process(ValidatingProcessor.java:54)
>         at
> org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:92)
>         at
> org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:66)
>         at
> org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:43)
>         at
> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:75)
>         at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:57)
>         at
> org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:155)
>         at
> org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:91)
>         at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
>         at org.apache.camel.processor.Pipeline.process(Pipeline.java:85)
>         at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:57)
>         at
> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:39)
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:41)
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:66)
>         at
> org.apache.servicemix.camel.CamelJbiEndpoint.handleActiveProviderExchange(CamelJbiEndpoint.java:101)
>         at
> org.apache.servicemix.camel.CamelJbiEndpoint.process(CamelJbiEndpoint.java:74)
>         at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
>         at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)
>         at
> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
>         at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
>         at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>         at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
>         at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>         at java.lang.Thread.run(Thread.java:595)
> 
> 
>     2nd Issue :  
>     Message flow:
>     Client --> HTTP consume SU --> Bean SU --> Camel Validation SU -->
> Camel
> Routing SU --> HTTP Provider SU
>     In case I don't get above error then sometimes it just hangs after
> processing some validation requests (parallel requests). By observing
> JConsole we noticed that Live Threads count is almost constant but the
> "Total Threads Started" count just climbs up. It went from 400 to more
> than
> 1100 within 3 minutes after this.
>  
> DEBUG - DeliveryChannelImpl            - SendSync
> ID:127.0.0.2-11bfae441c4-5:25 in DeliveryChannel{servicemix-camel}
> DEBUG - SecuredBroker                  - send exchange with secure broker
> DEBUG - SecuredBroker                  - service name
> :{http://servicemix.in2m.com/operations/changepassword}RoutingService
> DEBUG - SecuredBroker                  - operation name :null
> DEBUG - SedaFlow                       - Called Flow send
> DEBUG - DeliveryChannelImpl            - Waiting for exchange
> ID:127.0.0.2-11bfae441c4-5:25 (13f28b6d) to be answered in
> DeliveryChannel{servicemix-camel} from sendSync
> 
>      We have tried hitting around 60 parallel requests. 
>      NOTE:- When we tried the same operation without validator component,
> we
> are able to hit around 1000 parallel request without any issue. So it
> seems
> that the issue lies with camel's validator component behavior in parallel
> requests.
> 
>      Does anybody experienced these kind of problems ? 
> 
>      Please provide your suggestions/help for the above issues.
> 
> Regards,
> Rajesh
> -- 
> View this message in context:
> http://www.nabble.com/URGENT-%3A-Strange-behaviour-with-load-testing-with-Camel-Validator-component-tp19146562s22882p19146562.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
> 
> 

-- 
View this message in context: http://www.nabble.com/URGENT-%3A-Strange-behaviour-with-load-testing-with-Camel-Validator-component-tp19146562s22882p19164043.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Mime
View raw message