Я видел несколько различных cftransaction
примеров и читал разные сайты, но до сих пор не смог найти однозначного ответа на вопрос, какие части cftransaction
необходимы. То, что я пытаюсь сделать, очень просто:
- начать транзакцию
- запускать несколько вставок / обновлений
- закрыть сделку
Если во время вставки / обновления возникнет ошибка, я хочу откатить транзакцию. Вот что я сделал в прошлом:
<cftransaction>
<cftry>
<!--- multiple insert/update queries --->
<cfcatch type="any">
<cftransaction action="rollback">
<!--- log error, show user message --->
</cfcatch>
</cftry>
<cftransaction action="commit">
</cftransaction>
Это правильно? Какова лучшая практика? Не все экземпляры cftransaction
соответствуют приведенному выше примеру. У некоторых есть только начальный и конечный теги.
Я видел некоторые проблемы с моим сервером базы данных и думаю, что неправильное использование транзакций может быть одной из проблем. Я вижу большое количество: set transaction isolation level read committed
процессов в мониторе активности, которые занимают большое количество ЦП.