Resolving Application Compatibility Issues with Compatibility Administrator

Published: September 01, 2003 | Updated: November 06, 2003

Abstract

Once application testing has revealed possible compatibility issues between an application and Microsoft® Windows® XP, a resolution must be found to enable the application to run as expected. These compatibility fixes can be gathered into compatibility layers and distributed with the Compatibility Administrator tool.

On This Page

Introduction
Creating Custom Compatibility Layers with Compatibility Administrator
Summary

Introduction

One of the most exciting developments in Microsoft® Windows® XP is the addition of a robust series of application compatibility technologies. These technologies are even available to the end-user through the Windows XP shell. Deploying application compatibility fixes to a wide audience can be difficult or impossible if left to each computer user. Fortunately, there is a simpler way to package groups of compatibility fixes and distribute them for automatic installation on Windows XP computers.

Compatibility Administrator

Once the group of compatibility fixes has been identified you can use the Compatibility Administrator tool to package the compatibility fixes for distribution to other Windows XP computers.

Creating Custom Compatibility Layers with Compatibility Administrator

This section discusses how Compatibility Administrator can be used to create and prepare custom application compatibility database files to support multiple applications on one or more Windows XP computers.

Compatibility Administrator can package the compatibility fixes and layers for multiple applications into a single compatibility database file (*.sdb) that can then be distributed to other Windows XP computers. This is particularly useful in large network environments where a small number of people must provide software support to a large number of users.

Installing Compatibility Administrator

The Compatibility Administrator tool is shipped with Windows XP and can be found in the \Support\Tools folder on the CD-ROM. Compatibility Administrator is distributed as part of the Application Compatibility Toolkit version 2.0 and higher.

To install the Application Compatibility Toolkit on your Windows XP system

  1. Insert the Windows XP CD-ROM in a local CD-ROM drive.

  2. Using My Computer or Windows Explorer browse to the CD-ROM drive where you placed Windows XP and open the \Support\Tools folder.

  3. Double click ACT.EXE to begin the setup program. Accept the defaults for the Setup.

Once the Application Compatibility Toolkit has been installed it can be accessed through the Start menu. Compatibility Administrator can be found in the Application Compatibility Toolkit group on the Start menu.

Using Compatibility Administrator

Windows XP contains information regarding common compatibility issues that may exist with some applications. The application compatibility fixes provided by Microsoft in Windows XP are designed to help Windows XP properly support the normal functionality of these applications without jeopardizing system stability.

Four DLLs Contain All Compatibility Fixes

Four DLLs located in the %WINDIR%\AppPatch folder contain all of the compatibility fixes. The APPHELP.SDB and SYSMAIN.SDB files implement the Application Help messages and application fixes supplied as part of Windows XP.

The Application Help messages contain information that is displayed when a program is started on Windows XP that is truly incompatible with the operating system. Examples of applications that might encounter Application Help messages would include:

  • Anti-virus programs

  • Programs that require kernel-level access to the operating system

  • Programs that install specific file system drivers

Reasons for Applications Not Functioning Properly

Applications that worked on earlier versions of Windows may fail to function properly on Windows XP Professional. Some of the reasons why this may happen are:

  • The application doesn’t run when Windows reports new, higher operating system version numbers. Often the application will work well on the new version of Windows if the user can get past this block in the application.

  • The application calls older versions of Win32 API functions that return unexpected values on computers with large amounts of resources, such as free disk space.

  • The application expects older formats of Windows data.

  • The application expects user information, such as personal and temporary folders, to be in specific locations or specific formats.

To counteract these problems using Compatibility Administrator, you would construct a custom database containing the compatibility fix information required by your applications, along with file matching information that lets Windows XP uniquely identify the applications requiring assistance.

Creating a Custom Compatibility Database

Compatibility Administrator enables you to browse through the application compatibility fixes stored in the protected system databases to apply known fixes for hundreds of applications. The main Compatibility Administrator interface provides a control for viewing and browsing applications with compatibility fixes in the Windows XP Professional system database. This view is always displayed in the upper left pane (System Database pane) of the Compatibility Administrator window.

The system compatibility database is an integral part of the Windows XP Professional operating system, ensuring out-of-the-box compatibility for hundreds of Windows applications. This database and the corresponding application entries are protected by the operating system.

Once you have identified and tested fixes for your target applications, you can use Compatibility Administrator to create a custom fix database. You can create a custom fix database that contains applications supported by compatibility layers, as well as applications supported by specific compatibility fixes.

To create a new custom database using Compatibility Administrator

  1. Open Compatibility Administrator by clicking Start, All Programs, Application Compatibility Toolkit, and then click Compatibility Administration Tool.

  2. If you have a custom fix database open, select File and click New.

  3. Select Database and then click Change Database Name. Once you have changed the database name, it will be displayed at the top of the Custom Database pane. If the Change Database Name menu item is disabled, click the Custom Database pane of the window.

  4. Select File, click Save and name your .sdb file. You are now ready to add fixes to your custom database.

Once you have created an empty custom database to contain your application compatibility fixes, you’re ready to add a compatibility layer.

To add a compatibility layer

  1. Select Create Application Fix from the Database menu. The Create an Application Fix dialog box is displayed.

  2. Select Apply Compatibility Mode, and click the Next button.

  3. Enter the name of the application for which you will specify a compatibility mode and click Next.

  4. Enter the name of the file to which the compatibility mode will be applied. You can type the name of the file, or use the Browse button to locate it.

  5. Select the compatibility mode to apply from the drop down list and click Next.

  6. Click the Add File button to select files that will help to identify the specified file on target computers. (Choose files that are associated with your application that will be installed in the same related location. For example, choose a .hlp file that resides in the same directory as the .exe file. Try to uniquely identify your file without choosing an unnecessarily high number of matching files.)

  7. Click Next when you have selected all necessary matching files.

  8. If you want to test the application with the fix applied, click Test Run. Otherwise, click Finish.

The same process can be used to add individual compatibility fixes to the custom database, with the exception that on the Create an Application Fix dialog you would select the option to Apply Specific Compatibility Fix. Once all of the compatibility fixes or layers have been added to the database save the database file and test the applications.

File Matching

The application compatibility technology in Windows XP provides a way to distinguish files with the same or similar names. Windows XP does this through the use of file matching information. If you were creating a compatibility fix for a SETUP.EXE, but did not want this compatibility fix being used every time you ran a file called SETUP.EXE, you would specify a group of other files belonging to the application. By gathering data about the specific properties of these files, Windows XP can uniquely identify the application requiring the compatibility fix wherever it exists on the computer.

Applying a Custom Database to a System

Once you have created your custom database of application compatibility fixes it must be applied to the computer system where the applications will be run. The general process for deploying compatibility fixes to multiple Windows XP computers includes the following:

  • Identify and test fixes for the target applications.

  • Create a custom database file with the intended fixes.

  • Deliver the .sdb file to the destination Windows XP computers.

  • Use the SDBINST.EXE command to register the custom database. This will automatically install and add the fix information to the registry of the destination computers.

Delivering the Custom Database File to Other Windows XP Computers

Delivering the custom database file to the other Windows XP computers can be accomplished in a variety of ways:

  • It is possible to wrap the database file in a custom install program and distribute it with Group Policy in an Active Directory network, but this requires additional development work.

  • The file can be copied manually to each remote Windows XP computer, or this can be accomplished through the use of a logon script.

  • Another possibility would be to place the custom .sdb file in a network share that all Windows XP users can access.

However the file is delivered to the remote computers, the information contained in the database file must be registered on each computer. This is done by using the SDBINST.EXE command from a command prompt followed by the full path and name of the custom .sdb file. For example:

Sdbinst c:\Windows\AppPatch\myapp.sdb

Once the database file is registered on a computer the compatibility information will be used anytime the application is launched.

Summary

Windows XP provides better application support than any previous Windows operating system. Beyond the built-in support for a wide variety of known application compatibility issues, tools within the Application Compatibility Toolkit enable system administrators to support all of their applications.

The Compatibility Administration Tool, Compatibility Administrator, is a similar tool from the Application Compatibility Toolkit. Compatibility Administrator enables a system administrator to take the information that was determined through testing and package that information into a custom compatibility database. This database file can be applied once to support multiple applications and can be easily distributed to other Windows XP computers requiring the compatibility fixes. Once on the remote computers, the SDBINST.EXE command is used to register the compatibility database file so the information will be available to Windows XP every time the application is launched.