ASA Programming Guide
Three-Tier Computing and Distributed Transactions
Using EAServer with Adaptive Server Anywhere
In EAServer you may implement a component that carries out operations on more than one database. You assign a transaction attribute to this component that defines how it participates in transactions. The transaction attribute can have the following values:
Not Supported The component's methods never execute as part of a transaction. If the component is activated by another component that is executing within a transaction, the new instance's work is performed outside the existing transaction. This is the default.
Supports Transaction The component can execute in the context of a transaction, but a connection is not required in order to execute the component's methods. If the component is instantiated directly by a base client, EAServer does not begin a transaction. If component A is instantiated by component B, and component B is executing within a transaction, component A executes in the same transaction.
Requires Transaction The component always executes in a transaction. When the component is instantiated directly by a base client, a new transaction begins. If component A is activated by component B, and B is executing within a transaction, then A executes within the same transaction; if B is not executing in a transaction, then A executes in a new transaction.
Requires New Transaction Whenever the component is instantiated, a new transaction begins. If component A is activated by component B, and B is executing within a transaction, then A begins a new transaction that is unaffected by the outcome of B's transaction; if B is not executing in a transaction, then A executes in a new transaction.
For example, in the Sybase Virtual University sample application, included with EAServer as the SVU package, the SVUEnrollment component enroll() method carries out two separate operations (reserves a seat in a course, bills the student for the course). These two operations need to be treated as a single transaction.
Microsoft Transaction Server provides the same set of attribute values.
To set the transaction attribute of a component
In Jaguar Manager, locate the component.
To find the SVUEnrollment component in the Jaguar sample application, connect to the Jaguar server, open the Packages folder, and open the SVU package. The components in the package are listed in the right pane.
Set the transaction attribute for the desired component.
Right click the component, and select Component Properties from the popup menu. Click the Transaction tab, and choose the transaction attribute value from the list. Click OK to complete the operation.
The SVUEnrollment component is already marked as Requires Transaction.
Once the component transaction attribute is set, you can carry out Adaptive Server Anywhere operations from that component, and be assured of transaction processing at the level you have specified.