Arhn - архитектура программирования

Что произойдет с транзакцией Connection, если страница ASP неожиданно завершится?

Что происходит с транзакцией Connection в классическом ASP, если на странице возникает неперехваченное исключение и она останавливается до фиксации или отката?

Например:

conn.BeginTrans

a = 0 / 0

conn.CommitTrans

Если транзакция выполняется, будет ли она прервана или зафиксирована? Или соединение будет поддерживать транзакцию, когда оно будет возвращено в пул соединений?


Ответы:


1

Чтобы вернуться в пул соединений, соединение, явно или неявно, должно считаться закрытым. Любая транзакция, ожидающая закрытия соединения, будет отменена.

НО, пока соединение считается активным, ресурсы/блокировки, полученные в базе данных, все равно будут поддерживаться.

РЕДАКТИРОВАТЬ. Из информации, обнаруженной Shadow Wizard (спасибо) относительно объектов подключения ADO: здесь

Закрытие объекта Connection, когда в соединении есть открытые объекты Recordset, отменяет все ожидающие изменения во всех объектах Recordset. Явное закрытие объекта Connection (вызов метода Close) во время выполнения транзакции приводит к ошибке. Если объект Connection выходит из области действия во время выполнения транзакции, ADO автоматически откатывает транзакцию.

15.11.2013
  • Звучит разумно, но есть ли у вас официальный источник, подтверждающий это? 17.11.2013
  • Из MS ADO SDK: если объект Connection выходит за пределы области действия во время выполнения транзакции, ADO автоматически откатывает транзакцию. 18.11.2013
  • Хорошо, вам лучше дать ссылку на это и поставить цитату, чтобы сделать ваш ответ более надежным и полным. :) 18.11.2013
  • @ShadowWizard: мне не удалось найти ссылку на него. Похоже, что с тех пор, как ado был заменен на ado.net (и я не хотел ссылаться на него), большая часть документации была удалена. Мне пришлось искать файлы .chm ADO/MDAC в старой копии Microsoft SDK тех дней (лет назад), когда я преподавал ADO/OLEDB, чтобы скопировать/вставить цитируемый текст. Извините, может быть, он есть в сети, но я не знаю, где. 18.11.2013
  • Я нашел это - речь идет об общем ADO и выглядит достаточно хорошо. 19.11.2013
  • Не могли бы вы отредактировать свой пост и добавить ссылку? Сделал бы сам, но лучше, если бы это исходило от оригинального автора. :-) 19.11.2013
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..