INFO: Visual C++ 5.0 Readme, Microsoft Transaction ServerLast reviewed: June 27, 1997Article ID: Q165690 |
The information in this article applies to:
SUMMARY
Microsoft Transaction Server IssuesRead Microsoft Transaction Server (MTS) Readme MTS Doesn't Install on Windows 95 Disable Transaction Time-out While Debugging Run Transaction Explorer Before Running Components No Proxy/Stubs with Dual Interfaces SQL Debugging with Visual C++ 5.0 and Microsoft Transaction Server ATL Object Wizard Generates Extra Release for Microsoft Transaction Server Code Microsoft Visual Data Tools
MORE INFORMATIONFeature Only in Enterprise Edition The Microsoft Transaction Server is supported only in Visual C++ Enterprise Editions.
Read Microsoft Transaction Server (MTS) ReadmeAfter installing Microsoft Transaction Server, please consult the Microsoft Transaction Server readme file, located in the docs subdirectory of the Microsoft Transaction Server installation. The file contains information required to install, configure and run program components. The readme also contains descriptions of several useful samples and includes a list of known problems.
MTS Doesn't Install on Windows 95The Beta version of Microsoft Transaction Server does not run on Windows 95. If you attempt to install it, you will get a message box stating that 'the setup did not complete.' No files or registry keys are affected. Disable Transaction Time-Out While DebuggingMicrosoft Transaction Server uses a time-out mechanism to keep components from deadlocking the system. If the transaction time-out is enabled while you are debugging the component, the transaction context may be destroyed, causing a protection fault. To avoid this, you can disable this time-out from the Microsoft Transaction Server Explorer. Select the My Computer icon and select its properties. Under the Options tab on the Properties dialog box, you will see a transaction time out section. To disable the timeout, set the timeout to 0.
Run Transaction Explorer Before Running ComponentsMicrosoft Transaction Server components are inproc COM servers. Most inproc COM servers require that you run a utility called REGSVR32.exe. The utility places important information about the server into the systems registry. The default build step for MFC and ATL COM servers is to run REGSVR32.exe before completing the build. Microsoft Transaction Server components are different as they need special registry keys in order to execute. This means that you should run the Microsoft Transaction Server Explorer and install or import the component before executing it. Running REGSVR32.exe after installing or importing the component will change some of the registry keys and will prevent your component from running properly. There are two ways to get around this:
No Proxy/Stubs with Dual InterfacesThe Microsoft Transaction Server Beta software is not capable of inheriting interfaces. The usual example of this is dual interfaces. Dual interfaces inherit from the IDispatch interface. If you create a Microsoft Transaction Server component that uses dual interfaces, you must use type libraries to contain the interface information. If you build a proxy/stub marshaling .dll for your dual interface component, you will get errors from Microsoft Transaction Server. See the Microsoft Transaction Server Readme for more information.
SQL Debugging with Visual C++ 5.0 and Microsoft Transaction ServerYou can perform SQL debugging through Microsoft Transaction Server Components. In this case, the component usually calls a stored procedure via ODBC or any other data-access methodology. The component needs to be running locally on the debugging machine as an inproc server. If the component is running remotely on a different machine or as a local server, you will be unable to engage the SQL debugging components. You will also not be able to perform SQL debugging if the transaction started on a different machine as part of the DTC functionality from SQL Server/Microsoft Transaction Server. To do SQL debugging, follow these steps:
as an additional DLL.3. Set a breakpoint in each stored procedure that you wish to debug. 4. Start debugging. You should hit the breakpoints in your stored procedures and should be able to debug them normally. If you have problems, ensure that you can debug the stored procedure directly (i.e. select debug stored procedure instead of running it through the component). Also, make sure that Microsoft Transaction Server is functioning properly. See the Microsoft Transaction Server README for further installation steps. ATL Object Wizard Generates Extra Release for Microsoft Transaction Server Code If you select the icon of the MS Transaction Server Component from the right pane of the ATL Object Wizard, and choose to support IObjectControl and pooling from the resulting ATL Object Wizard Properties dialog, the wizard will generate code that performs an extra interface release. This extra release is detected and ignored by Microsoft Transaction Server 1.0 and will not cause your object to fault. Microsoft Transaction Server will log the following message in your event log indicating that it has detected the extra Release: An object released more references to its object context than it had acquired. The extra release is ignored. You can change the generated code to avoid this problem all together. In the Deactivate method within the generated object, look for code similar to the following:
void CYourClass::Deactivate() { m_spObjectContext->Release(); } Replace it with the correct code below, which will release the IObjectContext interface. void CYourClass::Deactivate() { m_spObjectContext.Release(); } |
Keywords : kbtlc
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |