Figure 1 VisiTransact relies on the osagent (SmartAgent) to start up and to ensure there is only one instance of the Transaction Service. The vshutdown utility also relies on the osagent to find the Transaction Service and shut it down.
• Session Manager, XA Implementation (Oracle9i only). The Session Manager XA implementation allows an application to obtain a VisiTransact-enabled connection to an Oracle9i database. The Session Manager handles all XA calls, and enables the VisiTransact Transaction Service to coordinate transactions across Resources. The Session Manager also provides database connection pooling. Additionally, the Session Manager Configuration Server enables you to create connection profiles using the VisiBroker Console.
• Session Manager, DirectConnect Implementation (Oracle9i only). The DirectConnect implementation of the Session Manager provides non-XA access to Resources. It consists of a single application server process that contains a Session Manager with embedded single-phase Resources. This architecture provides improved performance because it performs a single-phase commit.
• Session Manager Configuration Server. The Session Manager Configuration Server enables you to create Session Manager connection profiles using the VisiBroker Console. For more information about the Session Manager Configuration Server, see “Session Manager Configuration Server”.
• Pluggable Resource Interface. The Pluggable Resource Interface gives you the capability to enable Session Manager to work with the database of your choice. It is a component that implements a set of predefined interfaces to allow transactional applications to use databases other than Oracle9i as their persistent storage in transactions managed by VisiTransact. For more information about the Pluggable Resource Interface, see “Pluggable Database Resource Module for VisiTransact”.
• XA Resource Director. The XA Resource Director manages all interactions with a particular Resource Manager that is participating in one or more transactions. It handles all transactions with a specific Resource Manager (for example an Oracle9i database) on the network. The XA Resource Director bridges the VisiTransact and X/Open transaction environments, which allows for interoperability between the VisiTransact Resource model and the X/Open Distributed Transaction Protocol (DTP) Resource Manager model. For more information about the VisiTransact Resource model, see “What is the XA Resource Director?”.The VisiBroker Console is a graphical tool used in managing distributed transactions over the network and configuring connection profiles for use with specific databases. It can be used to monitor and control the status and completion of transactions. Using the Console you can create Session Manager connection profiles with the Session Manager Configuration Server. For more information about the VisiTransact section of the VisiBroker Console, see “Using the VisiBroker Console”.VisiTransact is fully compliant with the CORBA 3.0 specification from the Object Management Group (OMG). For more details, refer to the CORBA specification located at http://www.omg.org.VisiTransact is also compliant with the CORBAservices specification for the transaction service version 1.4 from the OMG. “VisiTransact and the CORBAservices specification” lists decisions made by VisiTransact for several options accorded by the specification.VisiTransact provides several extensions to the OMG CORBAservices specification to simplify development. For example, VisiTransact extends the current interface to provide the begin_with_name() method that allows you to assign a user-defined name to a transaction. These supplemental methods are designated in Transaction Service interfaces and classes with the icon.
VisiTransact default behavior is only to initialize the transaction context if the interface supported by the target object is derived from the TransactionalObject interface. VisiTransact can be configured to initialize the transaction context of all requests. See “Creating and propagating VisiTransact-managed transactions”. VisiTransact allows termination of a transaction by any object that uses the Terminator interface for the transaction (for example, non VisiTransact-managed transactions). However, VisiTransact restricts termination of a transaction when using the Current interface to the client thread that created the transaction. A TransactionFactory is located using the FactoryFinder interface of the life cycle service and not by the resolve_initial_ references() operation on the ORB.