Calling Microsoft Transaction Server Components

Microsoft Corporation

June 1997

Abstract

This article covers:

Calling Microsoft Transaction Server Components from a Client Application

MTS components can be located on a different computer than the client. A client can call a remote MTS component using DCOM, HTTP, or Remote Automation. To run an MTS component on the client computer, the client computer must have MTS installed.

Calling Microsoft Transaction Server Components through DCOM

DCOM is the standard transport for calling MTS components. To enable DCOM calls to MTS components, you must configure the following:

If you want to use Microsoft Windows® 95-based clients with MTS, install DCOM for Windows 95. For the latest information on DCOM support for Windows 95, see http://www.microsoft.com/oledev.

Calling Microsoft Transaction Server Components through Remote Automation

Remote Automation was introduced with Visual Basic® version 4.0, before the introduction of DCOM. It is useful for 16-bit clients, because DCOM is 32-bit only. To use Remote Automation with MTS, the Remote Automation Manager (RACMAN) must be running on the server where the MTS components are installed. For more information, see the Visual Basic documentation.

Note   MTS security is not usable with Remote Automation since all calls are made using the RACMAN identity. Because RACMAN does not impersonate when calling the components on the server, the client identity cannot be determined.

Calling Microsoft Transaction Server Components through HTTP

There are two ways a client can call an MTS component through HTTP:

Calling Microsoft Transaction Server Components from an Active Server Page

You can call MTS components from Active Server Pages (ASPs). You can create an MTS object from an ASP by calling Server.CreateObject. Note that if the MTS component has implemented the OnStartPage and OnEndPage methods, the OnStartPage method is called at this time.

You can run your MTS components in-process or out-of-process with Internet Information Server (IIS). If you run your MTS components in-process with IIS, however, be aware that, if MTS encounters an unexpected internal error condition or an unhandled application error (a general-protection fault inside a component method call), it immediately results in a failfast, thus terminating the process, including IIS.

By default, IIS 3.0 disables calling out-of-process components. To enable calling out-of-process components, modify the following registry entry:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\ASP\Parameters

Set the AllowOutOfProcCmpnts key to 1.

Calling Microsoft Transaction Server Components from a Web Browser–Resident Component

You can call an MTS component from a Web browser–resident component. Use the client install utility to configure that client, and then use the HTML <OBJECT> tag to call that component. You can also use the <OBJECT> tag to create an MTS object in-process with the browser client. Remember that MTS must be installed on the client computer for an MTS component to run in-process.

The component should be made safe for scripting, either through a component category entry in the registry, or by supporting the IObjectSafety interface. See the ActiveX™ SDK documentation for more details (on the Library at SDK Documentation, COM and ActiveX Object Services).

Microsoft Advanced Data Connector (ADC) also allows you to create Web browser–resident components using the <OBJECT> tag. ADC supports the following:

Except for in-process objects, the CreateObject method of the AdvancedDataSpace object creates a proxy for the MTS object, which is actually running in a local or remote server process.

You must configure the following registry key to the Prog ID of the object that you want to call:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\ADCLaunch