Show TOC

Function documentationTransactional Correctness

 

Transactional correctness is an important database consistency requirement. If multiple programs update the same information simultaneously, data correctness can be at risk if the changes are not performed in an isolated manner. Locks control the access to data by multiple programs. In the event of a system failure, the logical unit of work principle ensures that the data affected is still consistent after recovery. The transactional correctness tool checks the transactional correctness of your ABAP programs.

Integration

The transactional correctness evaluation is based on the software principles of atomicity, consistency, isolation, and durability (ACID principles). You can find more information on the ACID principles in the Internet.

Prerequisites

Depending on the functions you want to use, the following prerequisites apply:

Use

Prerequisite

Use the transactional correctness tool directly in the managed system

You have installed ST-PI 2008_1 or above

Evaluate enqueues and dequeues

You have installed ST-PI 2008_1 SP9

Use the transactional correctness tool in SAP Solution Manager to evaluate transactional correctness in one of your managed systems

You have installed ST 7.10 SP12

Features

  • The transactional correctness tool is a report that evaluates a transaction performance trace.

  • You can check transactional correctness either directly in the managed system or from the Data Consistency Management tile on the Fiori launchpad.

  • Based on predefined rules, the report checks the following:

    • The number of independent changes in a logical unit of work (LUW)

    • Whether the database changes are bundled in a single task

    • The usage of enqueues and dequeues to lock the data

  • The following rules are checked:

    Rule

    Description

    1

    There should be no COMMIT and ROLLBACK statements between changes in the main program.

    2

    There should be no COMMIT and ROLLBACK statements between changes within each tRFC/qRFC.

    3

    There should be no changes in sRFC/aRFC unless executed in an update task.

    4

    An explicit COMMIT statement is needed to trigger changes in an update task.

    5

    If some changes in the main program are executed in an update task, the others should be as well.

    E1

    A database record can be modified without an active enqueue.

    E2

    A dequeue might be set without an active enqueue.

    E3

    A dequeue is set without all parameters specified.

    E4

    Modifying DB operation on a table that is not part of an active lock object.

    E5

    The changed table entry might only be locked by a shared lock.

    E6

    Data might be committed without an active enqueue.

    Note Note

    To ensure correct results of the transaction correctness tool, take the following measures:

    • Record only a single SAP logical unit of work (LUW) in a trace, that is, steps that are to be processed together from a logical point of view, to grant transactional correctness.

    • While recording the trace, do not use update debugging.

    • Process inbound queues with a user different from your own user.

      To do so, fill the Destination With Logon Data field in the QIN scheduler (transaction SMQR). If the field is empty, the system uses your user to process inbound queue entries you created.

    End of the note.

More Information