Description

Hi Struts Team...

We use New Relic - a software which kinds of breaks down every web transaction. While monitoring the transactions taking longest time, we came across multiple actions with a single issue where 99% of the time is attributed to this filter call.

We use New Relic - a software which kinds of breaks down every web transaction. While monitoring the transactions taking longest time, we came across multiple actions with a single issue where 99% of the time is attributed to this filter call.

Let me know if you all need any more information to help me out on this.

Thanks,
BP.

Hi Struts Team...

We use New Relic - a software which kinds of breaks down every web transaction. While monitoring the transactions taking longest time, we came across multiple actions with a single issue where 99% of the time is attributed to this filter call.

I doubt this is still relevant, but I'll comment regardless since we've seen similar issues. Obviously, the New Relic transaction overview is not drilling deep enough, since the filter() method encompasses the entire request processing.

If you were to look deeper, you'd probably find that a) you're either doing something wrong in your code (eg. inefficient SQL, non-parallel calls to resources, ...) or, b) you're encountering a lot of blocked threads that are timing out (hence the value so close to 60 seconds - that looks like a timeout) on some OGNL methods or resource bundle handling. I suggest adding a profiler and having a look at the blocking of threads.

If you're on 2.1.8, you might want to a) upgrade to a later version, or b) apply the patch that was provided to resolve the several blocking threads in the OGNL runtime. We've had similar issues, and applying the OGNL patches and backporting the locking of the resource bundles improvements made a massive difference in the processing time of our calls.

Philip Luppens
added a comment - 29/Oct/12 13:48 I doubt this is still relevant, but I'll comment regardless since we've seen similar issues. Obviously, the New Relic transaction overview is not drilling deep enough, since the filter() method encompasses the entire request processing.
If you were to look deeper, you'd probably find that a) you're either doing something wrong in your code (eg. inefficient SQL, non-parallel calls to resources, ...) or, b) you're encountering a lot of blocked threads that are timing out (hence the value so close to 60 seconds - that looks like a timeout) on some OGNL methods or resource bundle handling. I suggest adding a profiler and having a look at the blocking of threads.
If you're on 2.1.8, you might want to a) upgrade to a later version, or b) apply the patch that was provided to resolve the several blocking threads in the OGNL runtime. We've had similar issues, and applying the OGNL patches and backporting the locking of the resource bundles improvements made a massive difference in the processing time of our calls.

Black Pearl
added a comment - 29/Mar/12 07:59 The issue is that when we drill down into the web transaction - executing an action - 99% of 60 seconds is spent at this method.
Attaching a screenshot.
Thanks,
BP.