APPLICATION COMPATIBILITY (GENERAL)
Description: Application compatibility is one of the most common issues seen in an enterprise environment. This term is used to describe an issue where an application does not work, or works incorrectly under certain circumstances. Questions or issues with the Application Compatibility Toolkit are covered in the Application Compatibility Toolkit topic.
Scoping the Issue: First, we need to identify the problem behavior with the application. For instance, does the application crash, hang, or return wrong data? Have any changes been made in the environment? These changes could include patching the application in question, installing an operating system service pack or a security patch rollup. Determining under what circumstances the application works and does not work is the best first step to troubleshooting this type of issue.
Security patches or service packs often close security holes that may result in an application not functioning as expected. In scenarios where this occurs, it can mean that the application is either intentionally or unintentionally using functionality that poses a potential security hazard. If this happens, then the application needs to be modified so that the required functionality is presented via another method that does not use a security flaw.If a Microsoft application experiences a compatibility issue, a case can be opened with the appropriate support group within Microsoft. If the application is third-party, the developer should first be contacted to see if the application has been tested (and supported) with the operating system\service pack level in question. For an in-house application, a case can be opened with our appropriate Developer Support group, depending on which language was used to create the application. The Performance Team supports generic application compatibility issues, and we can certainly assist with identifying the correct group if it is unclear.
Data Gathering: In all instances, collecting either MPS Reports with the General, Internet and Networking, Business Networks and Server Components diagnostics, or a Performance-oriented MSDT manifest must be done.
Troubleshooting / Resolution: If the application is crashing, a dump of the application may be automatically captured. If not, tools such as ADPlus pr DebugDiag can be used to assist in capturing the dump. For information on using different methodologies to capture application dumps, please see our post Capturing Application Crash Dumps. In cases where the issue exists on third-party code, the actual debugging of the failure will have to be done by the author of the application due to familiarity with the application and access to application debug symbols and source code.
For an application hanging issue, a manual dump of the application should be taken. This can be accomplished by a tool like ADPlus in hang mode on operating systems previous to Windows Vista or Windows Server 2008. For the newer operating systems, a dump can be taken from within Task Manager by right-clicking the process and choosing Create Dump File. Again – you should also contact the application vendor / developer, since they can best debug the errant behavior.
- List of Application Compatibility posts on the AskPerf blog
- AskPerf Blog: Capturing Application Crash Dumps
- AskPerf Blog: Two Minute Drill: Configuring a Debugger using Image File Execution Options
- AskPerf Blog: Basic Debugging of an Application Crash
- AskPerf Blog: Two Minute Drill: Application Verifier