Developing
A Simple MTS Server Component using Visual C++
Gopalan Suresh Raj
Note |
To
work with any of these samples, you will need the
following: .........................................Microsoft Visual C++ ver 6.0 .........................................Windows NT 4.0 Options Pack |
The ClickServer has an Increment() method. Clients call this method and pass in an integer argument. All this server component does is increment the value passed in and return it back to the client.
The Steps involved in developing the MTS Server component are
1. Create a new COM DLL project
2. Insert an MTS Component
3. Add Business Methods to Your Component
4. Build the DLL
5. Deploy the DLL into The Microsoft Transaction Server Explorer
1. Create a New ATL Project
1) From the File
menu, Click New.
Select the Projects
tab.
Start a new project, click ATL
COM AppWizard, then click OK.
2) For Microsoft Transaction
Server, you must create a DLL.
Adding support for
merging proxy/stub code and MFC is
optional
Select the Support
MTS button.
3) Click on the Finish
button and confirm the new project information and click on OK.
2. Insert an MTS Component
1) Click New ATL Object
from the Insert menu.
In the ATL Object Wizard,
select Objects in the left-pane, then select MS
Transaction Server Component in the right-pane.
Click Next.
2) Click the Names tab of
the ATL Object Wizard Properties. Type in a C++ Short Name
of Server. Do not click OK at this time.
3) Select the MTS tab and
select a Dual Interface. As an option, you can
also select Support IObjectControl and Can be pooled,
which tells the MTS run-time environment that your object should
be returned to an instance pool after deactivation, rather than
destroyed.
This is, however, not required for a minimal component. Click OK
to generate the component.
3. Add a Business Method to Your Component
1) If you do not currently have the project workspace displayed, click Workspace from the View menu.
2) Select the ClassView
tab in the project workspace and expand the top level to see your
class (Server) and interface (IServer)
names.
Right-click on the interface name and select Add Method.
3) Type in the Method Name Increment and the Parameters [in, out]int* and click OK.
You will not be able to change the Return Type from HRESULT because you are implementing a dual interface.
4. Implement the Business Method
1) Implement the CServer::Increment method as follows:
STDMETHODIMP CServer::Increment(int *value) { // TODO: Add your implementation code here // Get the Object Context GetObjectContext(&m_spObjectContext); bool bSuccess = false; // Implement your business logic here ++*value; bSuccess = true; if(bSuccess == true) { // No errors. Complete transaction m_spObjectContext->SetComplete (); } else { // Error occurred. Abort transaction m_spObjectContext->SetAbort (); } return S_OK; }
2) Build your project
--------------------Configuration:
ClickServer - Win32 Release MinDependency-------------------- Creating Type Library... Microsoft (R) MIDL Compiler Version 5.01.0164 Copyright (c) Microsoft Corp 1991-1997. All rights reserved. Processing E:\com\gopalan\ClickServer\ClickServer.idl ClickServer.idl Processing D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\oaidl.idl oaidl.idl Processing D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\objidl.idl objidl.idl Processing D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\unknwn.idl unknwn.idl Processing D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\wtypes.idl wtypes.idl Processing D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\ocidl.idl ocidl.idl Processing D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\oleidl.idl oleidl.idl Processing D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\servprov.idl servprov.idl Processing D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\urlmon.idl urlmon.idl Processing D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\msxml.idl msxml.idl Compiling resources... Compiling... StdAfx.cpp Compiling... ClickServer.cpp Server.cpp Generating Code... Linking... Creating library ReleaseMinDependency/ClickServer.lib and object ReleaseMinDependency/ClickServer.exp Performing registration RegSvr32: DllRegisterServer in .\ReleaseMinDependency\ClickServer.dll succeeded. Execute mtxrereg.exe before using MTS components in MTS ClickServer.dll - 0 error(s), 0 warning(s) |
3) Register the Server DLL.
MS-DOS Prompt |
E:\com\gopalan\ClickServer\ReleaseMinDependency> E:\com\gopalan\ClickServer\ReleaseMinDependency>regsvr32 ClickServer.dll E:\com\gopalan\ClickServer\ReleaseMinDependency>mtxrereg Mtxrereg: Refreshing all locally registered Mtx components... Done: All Mtx components were refreshed. E:\com\gopalan\ClickServer\ReleaseMinDependency> |
5. Add the MTS Component to MTS Explorer
1) Start up the MTS Explorer.
2) Right Click the Packages
Installed on the Computers->My Computer, and select New.
In the Package Wizard, click on
Create an empty package.
3) Type in the name of the package, which is ClickServer in the edit box, and click on the Next button.
4) Click on the Add Files button, and select the ClickServer.DLL in from the appropriate directory and click on the Finish button.
Download the Entire Source as a Zip file
click here to go to the Developing a Simple MTS Client Page... |
click here to go to My MTS HomePage... |
This site was developed and is maintained by Gopalan Suresh Raj This page has been visited times since February 24,1999. |
Last Updated : Feb 24, '99 |
Copyright (c) 1997-99, Gopalan Suresh Raj - All rights reserved. Terms of use. |
All products and companies mentioned at this site,are trademarks of their respective owners. |