Hi,
Not being a Java developer myself, I need a bit of advice from the dynaTrace and Java gurus. I am busy with a dynaTrace 5.5 PoC, and have encountered a situation which the client claims is caused by the dynaTrace agent. As far as I'm aware, dynaTrace is designed in such a way that it won't prevent execution, am I correct?
The client is using a Websphere application server (Java 1.4) and is scheduling a "DailyScheduleServlet" to run at a specified time every day. This Servlet is designed to schedule a number of smaller jobs. The Servlet uses the normal doGet and doPost calls. It kicks off on time, but does not execute the tasks it should. The developer then suspected that dynaTrace didn't like the fact that the doGet was called with null parameters, so he changed the way the calls are made. The Servlet then ran as expected. The problem is that the production machines are running the original version of the calls, so the client is disabling the dynaTrace agents as a workaround.
Is there a sound argument to convince them that dynaTrace is not the cause of the problem? How would I conclusively prove that it is the code that is the problem? The problem is that the code runs without the agent, and not if the agent is active.
Thanks,
Derick
Answer by James M. ·
We think we're seeing a similar (same?) issue here in Fidelity. We have a static content page (SiteStatus.htm) which when referenced and dynaTrace Servlet monitoring is turned on it doesn't return correctly (causes an HTTP 404 error); without dynaTrace on it works fine.
The issue may be related to the location of this file: …/tomcat/webapps/ROOT/SiteStatus.htm, as opposed to inside the normal content hierarchy. If we reference the URL http://asappw33devv:81 it automatically redirects to http://asappw33devv/ourapp. With dynaTrace enabled, it doesn't.
We'll get a support ticket opened up on this.
Answer by Christian S. ·
hi Derick,
similar to Andy, i don't really see a reason why the Servlet Sensor would change the behavior of the code.
maybe you or your client could shed some light on this scenario:
best,
Christian
Answer by Andreas G. ·
Hi Derick
There is no feature in dynaTrace the would prevent a request from being executed. The only explanation I have is that something may go wrong in our servlet introspection - meaning - the code that we inject in doGet, doPost, doXXX where we for instance capture HTTP Parameters, Headers, IP Address, ...
In order to capture this information we access the Servlet Request Context. As you probably know it is also possible to capture all these parameters, headers, session attributes, ... - we also allow to specify an accessor. Can you double check if the customer has defined any specific capturing and whether this might be the reason?
Also - if they know the exact URL you could give it a try and add this URL to the exclusion list in the Servlet Sensor Properties. This would for instance tell our Servlet Sensor to NOT capture anything if the URL matches a certain pattern
DECEMBER 12, 10:00 AM GMT / 2:00 PM ET
Learn how Dynatrace Real User Monitoring automatically detects errors that impact your end users caused by erroneous 3rd party or CDNs.
December 10, 4:00 pm CET / 10:00 am ET
Register here
Learn how Dynatrace Real User Monitoring automatically detects errors that impact your end users caused by erroneous 3rd party or CDNs.
December 10, 4:00 pm CET / 10:00 am ET
Register here
Learn how Dynatrace Real User Monitoring automatically detects errors that impact your end users caused by erroneous 3rd party or CDNs.
December 10, 4:00 pm CET / 10:00 am ET
Register here