DX Application Performance Management

Expand all | Collapse all

Support for reverse-AJAX / Comet / server push

  • 1.  Support for reverse-AJAX / Comet / server push

    Posted 06-30-2015 10:05 AM

    Is anyone using a Comet, server-push or reverse AJAX protocol in context of the CA APM Java agent?

     

    If so, do have any suggestions on dealing with the long lived (120 second) processes on the server?

     

    We are currently implementing a CRM solution and it is using a reverse-AJAX protocol so the Server can notify browsers of new content.  The problem with that is that the browser AJAX has a 120 second timeout were there is a thread on the server is being monitored with the Java agent.  Since the thread lives for longer than 30 seconds, the interaction is marked as a Stall. 

     

    My first through is to add a pbd exclusion to the class that holding the thread but this would exclude the entire communication to and from the browser client.  Not sure of the full impact on excluding the primary communication of the AJAX on the browser and the server.

     

    comet - http://ape-project.org/

     

    Thank you,

     

    Billy



  • 2.  Re: Support for reverse-AJAX / Comet / server push

    Posted 06-30-2015 05:09 PM

    Hi,

     

    stalls and the threshold used can only be configured globally.

     

    There are two possible workarounds:

    1. Increase global threshold to required value (>= 120s) and instead use Smart Instrumentation ComponentAutoTraceTrigger approach to manually define trace thresholds for other components individually where you still wants to know if component took longer than 30 seconds, though stall metrics won’t increment. You can create a Stall Count metric using (Blamed)OverThresholdPerIntervalCounter(DifferentInstances). This gives you Transaction Traces and Stall metrics but no Stall events.
    2. Replace all affected BlamePointTracers, FrontEndMarkers, … with a combo of (Blamed)MethodTimer(DifferentInstances), PerIntervalCounter, ExceptionErrorReporter and ConcurrentInvocationCounter. This will remove the Stall Count metric but I suspect that Stall events will be created nevertheless.

    Ciao,

    Guenter



  • 3.  Re: Support for reverse-AJAX / Comet / server push

    Posted 07-01-2015 07:20 AM

    Thank you Guenter,

     

    If I understand the second option, basically exclude the java class that is holding the reverse-AJAX thread from the standard blamepointtracers and then configure only the four of the five base blame tracers.

     

    My understanding of the use, configuration and discovery of the tracers is very lacking and I've only really configured one during the training back in 9.0 and haven't touched it since.

     

    Guess that is about to change and I need to start reading up on it starting around version 9.5 with the different way to deal with pbd files.

     

    Thank you again Guenter,

     

    Billy