Archives
 
 
 
  Special
 
 
 
  About Us
 
 
 

Newsletter
Free E-mail Newsletter from BYTE.com

 
    
           
Visit the home page Browse the four-year online archive Download platform-neutral CPU/FPU benchmarks Find information for advertisers, authors, vendors, subscribers

ArticlesTransactions and Components


September 1997 / Cover Story / ActiveX Demystified / Transactions and Components
David Chappell

A traditional transactional application tells a transaction server that it should begin a transaction, makes changes, then tells the transaction server to commit or abort all of those changes. But this traditional approach doesn't work when the transactions are being performed by components. Why? Remember that the primary goal of component-based development is to allow building applications from independently created parts. If each component were always used alone, the traditional "Begin Transaction, Do Work, Commit or Abort" structure would work just fine. But if you want to combine multiple components into a single transaction, each component cannot contain its own Begin Transaction request.

Microsoft Transaction Server's solution is to disallow a component to determine when a transaction begins. Instead, each component can be administratively configured to require a transaction. When a client creates a transaction-required component, MTS automatically starts a transaction. If that component then commits or aborts the transaction, MTS carries out the component's request. If the component creates another component, and the new component also requires a transaction, MTS can automatically include the changes made by the new component in the transaction. When this second component commits or aborts its work, MTS takes note but doesn't end the transaction. Not until the parent component commits or aborts does MTS end the transaction. This approach allows the same component binary to be used in its own transaction or combined with others into a single transaction.


Up to the Cover Story section contentsGo to previous article: Transactions and ComponentsGo to next article: Active Platform
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it is theoretical--and no language better exemplifies this than C++.

more...

BYTE Digest

BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin, and dozens of other CMP publications—bringing you critical news and information about wireless communication, computer security, software development, embedded systems, and more!

Find out more

BYTE.com Store

BYTE CD-ROM
NOW, on one CD-ROM, you can instantly access more than 8 years of BYTE.
 
The Best of BYTE Volume 1: Programming Languages
The Best of BYTE
Volume 1: Programming Languages
In this issue of Best of BYTE, we bring together some of the leading programming language designers and implementors...

Copyright © 2005 CMP Media LLC, Privacy Policy, Your California Privacy rights, Terms of Service
Site comments: webmaster@byte.com
SDMG Web Sites: BYTE.com, C/C++ Users Journal, Dr. Dobb's Journal, MSDN Magazine, New Architect, SD Expo, SD Magazine, Sys Admin, The Perl Journal, UnixReview.com, Windows Developer Network