DX Application Performance Management

Expand all | Collapse all

Issues with httpheader insertion while enabling APM SOA monitoring for Liberty

Jump to Best Answer
  • 1.  Issues with httpheader insertion while enabling APM SOA monitoring for Liberty

    Posted 06-18-2015 09:56 AM

    I have already raised a case with CA Support, but wanted to tap into the experience of anyone out there who may have faced this type of issue.

    Basically we have enabled CA APM SOA monitoring on one of our Webshere Liberty application. The application makes certain webservice calls to other services.

    Without SOA monitoring enabled, the application works perfectly fine. 

    But with SOA enabled it seems that APM is messing with the http headers and causing the functionality to break with Unmarshalling exceptions.

     

    2015-06-18 13:08:21,643 - [task-exec-cache-service-1] [sessionID:0000GtjpOo5iUYSDFADsd9BKH2CKe:serverX] ERROR - org.springframework.integration.handler.LoggingHandler.handleMessageInternal {Line:145} - org.springframework.messaging.MessageHandlingException: javax.xml.ws.soap.SOAPFaultException: Unmarshalling Error: unexpected element (uri:"http://xmlns.X.com/bsd/ad/adservice/1", local:"context"). Expected elements are <{http://xmlns.X.com/bsd/ad/adservice/1}consultant>,<{http://xmlns.X.com/bsd/common/bsdDatatypes/1.0}context>,<{http://xmlns.X.com/bsd/ad/adservice/1}authorizationDetailsNeeded>

    at org.springframework.integration.handler.MethodInvokingMessageProcessor.processMessage(MethodInvokingMessageProcessor.java:78)

            at org.springframework.integration.handler.ServiceActivatingHandler.handleRequestMessage(ServiceActivatingHandler.java:71)

            at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:170)

            at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:78)

            at org.springframework.integration.dispatcher.AbstractDispatcher.tryOptimizedDispatch(AbstractDispatcher.java:116)

            at org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:101)

            at org.springframework.integration.dispatcher.UnicastingDispatcher.access$000(UnicastingDispatcher.java:48)

            at org.springframework.integration.dispatcher.UnicastingDispatcher$1.run(UnicastingDispatcher.java:92)

            at org.springframework.integration.util.ErrorHandlingTaskExecutor$1.run(ErrorHandlingTaskExecutor.java:52)

            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)

            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)

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

     

    if we enable SOAP header insertion, the application fails even earlier.

    # SOA Performance Monitoring Pack to use HTTP instead of SOAP Insertion

    com.wily.introscope.agent.soapheaderread.enabled=false

    com.wily.introscope.agent.soapheaderinsertion.enabled=false

    com.wily.introscope.agent.httpheaderread.enabled=true

    com.wily.introscope.agent.httpheaderinsertion.enabled=true



  • 2.  Re: Issues with httpheader insertion while enabling APM SOA monitoring for Liberty
    Best Answer

    Posted 06-18-2015 10:49 AM

    Hello Venkit,

    I had a similar issue with an implementation in the past.

    by then it involved websphere with oracle queues

     

    the headers where growing with no limits so the original msg (around 1k when large) was keeping previous headers and adding new ones every time so it could grow to 3 MB!!! until the queue choked

    Support instructed me to add this flags:

     

    • com.wily.introscope.agent.httpheaderinsertion.enabled=false
    • com.wily.introscope.agent.httpheaderread.enabled=false
    • com.wily.introscope.agent.soapheaderinsertion.enabled=true
    • com.wily.introscope.agent.soapheaderread.enabled=true
    • com.wily.introscope.agent.transactiontrace.boundaryTracing.cacheFlushFrequency=1
    • com.wily.introscope.agent.transactiontrace.boundaryTracing.enable=true
    • com.wily.introscope.soa.cxf.clearoldheaders=all

     

    I hope it helps,

    Best regards

    Harold