Отличить отменённую запись от подтверждённого изменения

Наблюдения получены настоящими запросами interbase к Firebird. Дочерние учебные процессы остановлены, собственная база удалена; результаты сохранены ниже.

Наблюдаемый результат программы
НаблюдениеРезультат
Попытка внутри отменённой транзакцииCable / остаток 99
SELECT после rollbackCable / остаток 3
Уведомления в окне после rollback0
SELECT после commitCable / остаток 7
Подтверждённое событие полученода
Подписка освобожденада
Строки и дополнительные наблюдения
{
    "events": {
        "listener": {
            "seen": [
                {
                    "name": "FB158_CHANGED",
                    "connection_resource": true
                }
            ],
            "callback_count": 1,
            "rollback_callbacks": 0,
            "rollback_items": [
                {
                    "ID": 1,
                    "TITLE": "Cable",
                    "QTY": 3
                },
                {
                    "ID": 2,
                    "TITLE": "Clamp",
                    "QTY": 0
                }
            ],
            "committed_items": [
                {
                    "ID": 1,
                    "TITLE": "Cable",
                    "QTY": 7
                },
                {
                    "ID": 2,
                    "TITLE": "Clamp",
                    "QTY": 0
                }
            ],
            "items": [
                {
                    "ID": 1,
                    "TITLE": "Cable",
                    "QTY": 7
                },
                {
                    "ID": 2,
                    "TITLE": "Clamp",
                    "QTY": 0
                }
            ],
            "freed": true,
            "callbacks_after_free": 1,
            "counter_argument_exposed": false,
            "payload_exposed": false
        },
        "sender": {
            "rollback_executed": true,
            "committed_business_updates": 1,
            "post_statements_first_commit": 1,
            "post_after_release": false
        },
        "process_count": 2,
        "all_children_stopped": true,
        "mode": "commit"
    },
    "attempted_uncommitted_stock": 99,
    "rollback_observation_window_ms": 100,
    "business_rule": "Изменение и POST_EVENT принадлежат одной подтверждаемой транзакции"
}

Самостоятельный запуск создаёт result.json с данными и metrics.json с проверками рядом с example.php.