To implement an automatic transaction, you provide a specially-coded remote procedure (transaction initiating procedure) that initializes a transaction object in the AppServer agent where it executes. This transaction object is a permanent object in the session context that provides methods and attributes on a transaction object handle that allow the AppServer session to commit, rollback, or set and check the status of an automatic transaction. Because an automatic transaction terminates when the context of the transaction initiating procedure is deleted, you must execute the transaction initiating procedure persistently to make practical use of the transaction that it initiates.