There are several types of COM servers:
- in-process servers (for example, ActiveX controls).
- out-of-process servers (that is, OLE servers that are executed as a separate process).
- DCOM (Distributed Component Object Model) servers are out-of-process OLE servers that support remote procedure calls, that is, clients that are on other machines in a network.
- COM+ applications (COM+ is the further evolution of COM).
- MTS (Microsoft Transaction Server) is a set of libraries that serve for easier development and deployment of server applications built with the COM technology.
Different types of COM servers are profiled in different ways. For detailed instructions on how to profile them, follow the links below. Before you proceed, we recommend that you read the notes below these links.
You can profile COM applications in two modes: Normal and COM Server. Normal mode means that you are profiling your COM server as an ordinary (non-COM) application. That is, the COM server is started under AQTime so that the latter can instrument and profile the server code. However, it is often necessary to profile code that executes when the server is launched by the operating system, not by AQTime. For instance, DCOM servers are launched by the operating system by a request from the client application installed on another computer. Since the servers are started by the OS, AQTime cannot instrument and profile them in Normal mode. To profile COM servers, which client process is not launched by AQTime, use COM Server mode. This mode is supported on Windows XP, Windows Server 2003 and later operating systems.
Profiling in COM Server mode requires specifying the client application in the Run Parameters Dialog (for COM Server Mode). The client application name is used to determine the name of the process that will load your COM server. AQTime traces the creation of this process and runs it in debug mode under AQTime (that is, AQTime will act as a debugger). This allows AQTime to instrument the COM server code.
Note that if you select COM Server mode, AQTime will not launch your COM server application. It waits until this application is launched by a client request. The client application name that you specify in the Run Parameters Dialog (for COM Server Mode) depends on the type of the COM server being tested. For instance, for in-process COM servers it is the name of the COM client application, for DCOM servers, it is dllhost.exe, for out-of-process COM servers, it is the name of the profiled executable. For more information on this, follow the links above.
A COM server can process several requests from different client applications simultaneously. If you are going to profile a COM server with two or more clients and use the Performance, Coverage or Function Trace profiler, it is recommended that you set the profiler’s Thread model option to COM Threads. Otherwise, the profilers may trace the parent-child relationship for COM server functions incorrectly. See Profiling COM Logical Threads for detailed description of this option.
Profiling 64-bit COM applications is possible under Windows 64bit platforms.