With automatic transactions, transactions tend to grow large, with greater potential for lock conflicts and other concurrency problems. (For more information on small and large transactions, see OpenEdge Getting Started: ABL Essentials.) Even so, automatic transactions can be extremely useful where the application requires the transaction to span multiple client requests. This is especially true where client response is entirely programmatic and does not depend on user interaction for a transaction to complete.
An example of a useful application might be where a transaction commit depends on a real-time status from a process control or financial trading system. Depending on this status, the server might require additional information from the client to resolve the transaction. As long as the client does not have to wait to make this information available to the server, the impact of the automatic transaction on system performance can be minimal. For more information on managing automatic transactions, see
Implementing automatic transactions.