A microtransaction is the term Progress uses to describe a group of physical updates that occur as a result of a logical database change. Microtransactions are internal to the database and invisible to applications.
For example, updating a record is a logical change. If the record spans blocks (because it is fragmented) it requires a change to more than one block in the database. Each block that is updated is handled separately, with transaction log records (BI notes) generated for the change to the block.
If a record has three fragments, then three blocks must be updated in order to update the record. These three updates, taken together, are a microtransaction. There are other types of microtransactions as well, such as inserting or deleting an index entry, creating or deleting a record, and so on.
Due to the way transaction rollback and crash recovery work, a microtransaction cannot be undone if it is not completed successfully, except during crash recovery. So the database must be shut down. It is abnormal and unusual (not an application error) for a microtransaction not to be completed successfully but can be the result of processes being killed. Please refer to the Solutions referenced below. |