Advantage Transaction Processing System Limitations

Advantage Concepts

Due to limitations of current client development platforms, network operating systems, and Advantage table formats, there are a few transaction features not supported with the Advantage TPS. The Advantage TPS provides the primary transaction processing features available on the market today. Other DBMS systems may provide additional features that are not supported by the Advantage TPS.

Transaction Spanning Multiple Servers

The Advantage TPS does not support transactions operating on data located on different servers. A transaction can only commit or rollback updates made to tables and index files residing on a single file server.

Nested Transactions

A nested transaction is defined as one transaction contained entirely within another transaction. A nested transaction is identified if back to back begin transaction statements are encountered before a commit transaction or rollback transaction statement is encountered. The Advantage TPS generates an error if a nested transaction is discovered. The Advantage TPS also generates an error if a commit transaction or rollback transaction statement is issued without first issuing a begin transaction statement. The exception to this rule is separate transactions that exist on different file servers. See Transactions Exist Per Connection for more information.

Operations Aborted during Rollback

If a transaction rollback occurs, all insert, update, and delete operations are aborted. A transaction rollback does not close any files opened during the transaction, does not delete any files created during the transaction, does not undo any "set" operations issued during the transaction, and does not delete any index tags added during a transaction.

Advantage Applications Only

The Advantage TPS should only be used on data files being accessed by Advantage applications. Do not share Xbase tables and index files that are being updated within transactions with non-Advantage applications.

Transaction Journaling

Transaction journaling is the process of logging and archiving all updates made to the database, even after a transaction is completed. Transaction journaling is useful in recovering from server disk crashes. Advantage does not support transaction journaling. The Advantage TPS maintains transaction log files while transactions are active. Once the transactions are completed, the transaction log files are erased.

Appended and Inserted Records after Rollback of a DBF Table

In order for new index keys to be built for records appended or inserted into a DBF table during a transaction, the appended/inserted records are actually inserted into the table before the transaction has been committed. If the transaction is rolled back, the appended records are not removed from a DBF table since another user may have appended additional records. Therefore, if a transaction is rolled back, the Advantage TPS clears out all the fields in the appended/inserted records, marks the appended/inserted records for deletion, and inserts keys into the associated indexes to reference the deleted, appended/inserted records. A record re-use algorithm can be implemented, if desired, to account for and reuse these deleted, appended/inserted records. A periodic Pack of the DBF table would physically removed these deleted, appended/inserted records from the DBF table. Note that this is only an issue with DBF tables, not ADT tables.