transaction logic and security checks also take place in these wrapper objects. For every MTS-hosted object, there also exists a Context Object, which implements the IObjectContext interface. The Context Object maintains specific information about that object, such as its transactional information, security information and deployment information. Methods in the MTS component call into the Context Object through its IObjectContext interface. MTS does not create the actual middle-tier MTS object until the call from a client reaches the container. Since the object is not running all the time, it does not use up a lot of system resources (even though an object wrapper and skeleton for the object do persist). As soon as the call comes in from the client, the MTS wrapper process activates its Instance Management algorithm called JITA. The actual MTS object is created "just in time" to service the request from the wrapper. And when the request is serviced and the reply is sent back to the client, the component either calls SetComplete()/SetAbort(), or its transaction ends, or the client calls Release() on the reference to the object, and the actual MTS object is destroyed. In short, MTS uses a stateless component model. Generally, when a client requests services from a typical MTS component, the following sequence occurs on the server : acquire a database connection read the component's state from either the Shared Property Manager or from an already existing object or from the client perform the business logic write the component's changed state, if any, back to the database close and release the database connection vote on the result of the transaction. MTS components do not directly commit transactions, rather they communicate their success or failure to MTS. It is thus possible to implement high-latency resources as asynchronous resource pools, which should take advantage of the stateless JIT activation afforded by the middleware server. References External links and references Quick Tour of Microsoft Transaction Server Windows components Windows communication and services Inter-process communication Microsoft application programming interfaces Component-based software engineering Transaction processing