ROLLBACK DELTA
Содержание раздела
Поддерживается в версиях: 6.11 / 6.10 / 6.9 / 6.8 / 6.7 / 6.6 / 6.5 / 6.4 / 6.3 / 6.2 / 6.1 / 6.0 / 5.8 / 5.7 / 5.6 / 5.5 / 5.4 / 5.3 / 5.2 / 5.1 / 5.0.
Запрос откатывает открытую дельту и отменяет внесенные в ней изменения.
Запрос ожидает завершения операций дельты в течение заданного периода и отменяет изменения по всем завершенным операциям. Если некоторые операции дельты не успели завершиться за этот период и в ответе вернулась ошибка тайм-аута, оставшиеся операции можно отменить, как описано в секции Действия после запроса при получении ошибки тайм-аута.
После запуска запроса будет невозможно закрыть дельту, даже если запрос вернет ошибку.
Действия перед запросом
Перед выполнением запроса выберите логическую базу данных, используемую по умолчанию, если она еще не выбрана.
Действия после запроса при получении ошибки тайм-аута
Если в ответе вернулась ошибка тайм-аута на откат дельты, некоторые операции не успели завершиться за заданное время. Чтобы отменить оставшиеся операции дельты:
- Подождите завершения операций и повторите
ROLLBACK DELTA
. - Если операции не удалось отменить, выполните для каждой из них запрос ERASE_WRITE_OPERATION.
Как работает запрос
Система откатывает открытую дельту в следующем порядке:
- Останавливает незавершенные операции записи, запущенные запросами загрузки данных.
Операции останавливаются асинхронно, поэтому система с заданной периодичностью проверяет, остались ли неостановленные операции. Периодичность проверки определяется параметром конфигурацииDELTA_ROLLBACK_STATUS_CALLS_MS
. - Ожидает завершения всех операций дельты в течение заданного периода.
Если операции не успели завершиться за этот период, запрос возвращает ошибку. Длительность периода определяется параметром конфигурацииDELTA_ROLLBACK_OPERATIONS_TIMEOUT_MS
. - Отменяет все завершенные операции открытой дельты, включая остановленные на шаге 1.
- Удаляет открытую дельту из сервисной базы данных и освобождает номер дельты, зарезервированный ранее. Номера операций записи, выполненных ранее в этой дельте, НЕ освобождаются.
Синтаксис
ROLLBACK DELTA
Варианты ответа
В ответе возвращается:
- объект ResultSet c одной записью, содержащей номер отмененной дельты, при успешном выполнении запроса;
- исключение при неуспешном выполнении запроса.
Ограничения
- Выполнение запроса недоступно, если есть другой незавершенный запрос
ROLLBACK DELTA
. - После запуска запроса дельту невозможно закрыть, даже если запрос вернул ошибку.
- При обработке запроса система блокирует возможность запуска новых операций записи в логической БД.
- Запрос не отменяет операции записи, выполненные до дельты.
- При обработке запроса все неактивные датасорсы пропускаются без возврата ошибки. Ошибка возвращается, если не осталось ни одного активного датасорса, подходящего для исполнения запроса.
Пример
USE marketing;
ROLLBACK DELTA;