Troubleshooting process

This post hopefully will provide a few initial steps to get started finding out what is wrong when your app "isn't working as expected".  I've been hanging out in the newsgroups lately and it kind of surprised me the same thing about trying to find out "whats wrong".  Sometimes getting started is the hardest part.  Here is a list of tools and sites I use to begin the "troubleshooting process".  The assumption I am making you are in a position of writing code or a systems administrator charged with trying to solve the problem. (Whatever that maybe)

1) – First thing to do, look in any log files available – (Event logs,  IIS Logs, SQL Logs, or custom log files from the application. ) Run utilities from Sysinternals (Filemon + Regmon), use these tools to collect evidence when the problem happens.  Here is some links for further info.

'Windows Event Logs (Application, Security, System)
Look in the event logs to see if any errors are present.  collect the Event ID, Source and any messages.

*Windows Auditing settings* – This goes with looking in the event logs.  Make sure some type of auditing is on so errors are logged.
http://www.microsoft.com/technet/security/topics/auditingandmonitoring.mspx

'Filemon – Review files in real time to find out what is being accessed and if any 'access denied' messages occur.  Run Filemon when the error is happening and save the log file, review for problems.
http://www.sysinternals.com/Utilities/Filemon.html

'Regmon – Review the registry in real time to find out what is being accessed and if any keys are getting 'access denied' messages. Run Regmon when the error is happening and save the log file, review for problems.
http://www.sysinternals.com/Utilities/regmon.html

'Process Explorer – view what processes are in-use along with DLLS's and much more.
http://www.sysinternals.com/Utilities/processexplorer.html

'Open a command prompt and run 'gpresult'.  This will show you what 'machine' and 'user' polices are being applied. This mainly applies when your machine is in an Active Directory environment.  If your machine is a stand-along box.  Review the 'local security policy'.
http://www.microsoft.com/windowsxp/using/setup/expert/gpresults.mspx

2) After you have collected a list of errors, various messages and event ids.  Use these sites to look for answers or links to articles about your issue. I wager a good portion of the time you'll find the solution or an article about your issue.

3) I *strongly* recommend watch this webcast by Mark Russinovich.  (Thanks to Scott Forsyth from http://orcsweb.com  (blog is here – http://weblogs.asp.net/owscott/ ) for pointing this out.  Mark is the co-founder of Sysinternals and could make a case for him being the #1 guru on the Internet.  This was recorded at Teched 2006.  Without the tools he has provided, it would make every Windows Administrator's job a lot harder.

http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032298075&EventCategory=5&culture=en-US&CountryCode=US

Advanced tools to examine dump files.

'WinDBG and windows debugging tools
http://www.microsoft.com/whdc/devtools/debugging/default.mspx

'IIS Diagnostics Toolkit

http://www.microsoft.com/downloads/details.aspx?FamilyID=9bfa49bc-376b-4a54-95aa-73c9156706e7&DisplayLang=en

'IIS Crash/Hang Agent and IIS Dump
http://www.microsoft.com/downloads/details.aspx?FamilyID=01c4f89d-cc68-42ba-98d2-0c580437efcf&DisplayLang=en

'Notepad.exe
Yes, I even list notepad as an advanced troubleshooting tool.  You need a text editor to view the log files.   It is not VI but it'll do.

'Document that explains Windows Internals and troubleshooting. 109 pages great info
http://download.microsoft.com/download/3/f/e/3fe30889-d589-45fd-ac39-a780b0f2bbc8/solomonhandout.pdf


MISC: These are articles and links I found useful for various specifc tasks and products.  If you have one, let me know.  🙂

Active Directory – Turn on AD logging to find out what machine or process is locking out users.
http://support.microsoft.com/?id=109626

SQL Profiler – Are you having a problem with your SQL queries? See your queries in action and how long they are taking to execute. 
http://www.developer.com/db/article.php/3482216

Network Monitor – I use this a lot when debugging.
http://www.ethereal.com/ 

or

How to use Network Monitor to capture network traffic
http://support.microsoft.com/default.aspx?scid=kb;en-us;812953

ISA Server 2000 / 2004
http://www.isaserver.org

Exchange 2000 / 2003
http://www.msexchange.org

DNS Related issues
http://www.dnsstuff.com

Check VB6 DLL for "Retained in memory" and "Unattended Execution" settings.
http://www.hanselman.com/blog/CheckingVB6BinariesForRetainInMemoryAndUnattendedExecution.aspx

SMS 2003 issues
http://www.myitforum.com

Hope this helps.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s