.NET 2.0 Memory dump analysis - Need help to identify the root cause of non-responsiveness issue of an application.

Dear Experts,

    One of our customer has faced an application NON RESPONDING issue. Meaning, that the server application (developed in .NET 2.0 Framework) was not responding to any of the client's request. Customer have shared memory dump of the service to identify the root cause of the issue when they faced the issue. After restarting the application it works fine.  I loaded the dump file in the tool WinDbg and ran some commands to identify the root cause. Please refer the attached document. I need help here on how to identify the root cause? Kindly assist. Thanks in advance!
MemoryDumpAnalysis-HurdlesAndNeedHelp.do
LVL 16
Easwaran ParamasivamAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

sarabandeCommented:
if a server application doesn't respond there are two main reasons: first is that the server runs an infinite loop. you could find out by checking the process with the task manager whether it was consuming all cpu time of the core it was running. second is, that the server is waiting for input, for example when a client has made a request and the server sent data and waits in vain for an acknowledge signal. a combination of both reasons is that the server was polling for input but in vain.

none of the above causes could be detected easily in a memory dump beside low memory was responsible for the non-responsiveness but even then, you better evaluate the issue by using the task manager.

generally, a server never should run infinite loops but always protect loops with a timer. same applies if waitung for input or a response. you always should make a server responsive by adding a thread that returns the current status of the server and where you can find out what was the last action and when it was issued.

Sara

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Easwaran ParamasivamAuthor Commented:
Thanks.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
.NET Programming

From novice to tech pro — start learning today.