Today’s Network Data Access Technology - a Review (by Tim O'Neill)
inSSIDer Netstumbler Replacement (by Tony Fortunato)

Application Hang Errors: Three Common Reasons Why You’re Getting the Freeze (by Lanir Shacham)

6a00e008d9577088340133f26aa380970b-800wi Author Profile: With more than 16 years of experience in the software industry, Lanir Shacham is currently the chief technology officer of Correlsense. Prior to founding Correlsense, Lanir served as an IT architect for IBM Global Technology Unit and as chief architect and R&D manager for Indocs Online.

 Application Hang Errors: Three Common Reasons Why You’re Getting the Freeze

 By Lanir Shacham, chief technology officer, Correlsense

You've been there.  You’re online, purchasing groceries.  The application works fine, then at checkout, the application hangs.  You restart the application and the problem goes away.  A week passes, maybe two, and then the application hangs again - another restart.  You're back to square one.  It doesn't crash or fail, it just hangs.  Revenue is lost, no customers are served.  This problem packs an even stronger punch: with such a poor user experience, customers could choose to leave the site for a competitors’, creating the need for the company to attract new customers.


It doesn't matter if you're using Tomcat application servers, WebSphere, WebLogic or JBoss; if you have been in the software development business long enough, you've probably wondered why an application hangs.  Here are the issues we found when monitoring transaction paths in the data center:


1.     It's a Database Problem

The main reason an application hangs is not directly related to the application server itself. The location of the symptom is rarely the location of the root cause.  The following circumstances are common:

·         The database is bottlenecked, causing queries to run slower than usual.

·         Requests that used to take one second, now take five seconds to complete.

·         The average number of concurrent requests slowly increases (due to backlog).

·         The server runs out of threads and the application server hangs.


­If you manage to get a thread dump, you'll just see a bunch of threads waiting and another group that's actually running.  Another possibility is that the number of waiting/queued threads gobble up all available memory (and eventually lead to out-of-memory errors).


2.     Deadlocks

If it seems that the application server is doing nothing, look for deadlocks.  These can be database deadlocks that cause your SQL queries to hang and seek the update statements.  For example, a transaction log that is written to the database for each request may easily hang the entire application if the log table is locked. It can also be a deadlock of the application re-accessing itself.  Do you have any HTTP SOAP calls from one application server to another? Also check for shared objects - an operating system file that is written from multiple threads at once.


3.     Runaway Thread

When the application server is to blame, look for a runaway thread.  These are hard to detect because they hardly show up on logs, since they are usually only written when the request has completed.  A runaway thread will probably not return until it has already affected the entire application.  Therefore, the hanging request will not be written to the log.  These runaway threads include infinite loops in code. For example, a query that should show results but does not include the option of moving between pages suddenly needs to display a large number of results.  The page takes forever to render and clobbers the application server, eventually causing application hang errors.


Stopping the application hang-ups

End-user monitoring and real-time transaction management solutions provide the in-depth information needed to stop these application hang problems, as well as other IT performance issues.


There are many software solutions available to measure the quality of end-users’ experiences as they shop for groceries, download movies or transfer money between online accounts.  These tools typically track every user interaction and experience, showing each customer interaction along with response times and service levels.  User monitoring tools can show you whether or not you have a problem, and they can verify what the symptom is.  For example, is the application always slow? Is it slow from 2 to 4 p.m.? Or is it slow only in certain locations?


However, to fully solve the application hang issue, one must track every transaction that flows through the data center.  As opposed to a “top down” approach as done by many network, systems and application management solutions, in which the infrastructure components and their interrelationships are unknown and need to be solved, a transaction path detection solution will take a “bottoms up” approach by tracking individual transactions in real time without any prior knowledge of the environment.  Millions of transaction paths are overlaid, the transaction data is analyzed and correlated to the business processes, and application performance problems can be identified and resolved—sometimes within hours. 

It is this type of end-to-end transaction management, with a real-time view into the service levels your end-users are getting, that provides IT managers with an accurate picture of the entire application behavior.  Correlsense’s SharePath solution, which encompasses end-user monitoring, gives IT managers the information needed to isolate whether a problem is a data center, network or browser issue. Through this in-depth monitoring, these application hang issues, previously extremely difficult to diagnose and detect, are quickly found and resolved before end-users are affected.

Correlsense’s transaction management solution, SharePath, provides greater IT Reliability™ by enabling for the first time both a bird’s-eye and detailed view of how business transactions perform across the four dimensions (4D) of end-users, applications, infrastructure and business processes.  SharePath automatically detects and traces each entire transaction path, from a click in the browser through all its hops across data center tiers.

SharePath Transaction Watch is the main dashboard for the real-time view of how transactions are performing and which transactions or applications require immediate attention.

Shorepath pic1