|
the-current-transaction-cannot-be-committed REVISITED
|
|||
---|---|---|---|
#18+
Господа, столкнулся с ошибкой описанной в https://www.sql.ru/forum/1082737-1/the-current-transaction-cannot-be-committed-and-cannot-support-operations-that-write-to https://www.sql.ru/forum/1082737/the-current-transaction-cannot-be-committed-and-cannot-support-operations-that-write-to но обстоятельства несколько иные, чем в данных топиках. SQL 2014 1) Есть очередь Q сервис брокера с процедурой обработчиком P1. 2) Она вызывает процедуру P2 та P3. 3) На команде END CONVERSATION @dialog WITH ERROR = @importSalepageResult DESCRIPTION = @response падает в CATCH и логирует ошибку 2021-10-13 14:07:59 FailToPosLog. The current transaction cannot be committed and cannot support operations that write to the log file. Roll back the transaction. proc:P2:678 proc: P1, line: 80, message: The current transaction cannot be committed and cannot support operations that write to the log file. Roll back the transaction. 4) Докопался до админов, те заверили, что на обоих серверах места для лога полно. 5) Обернул оператор из proc:P2:678 в TRY CATCH Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
6) Все равно получаю FailToPosLog. The current transaction cannot be committed and cannot support operations that write to the log file. 7) В процедуре имеется код, который делает INSERT в несколько табличных переменных, а потом DELETE INSERT в таблицы. Ещё Есть два MERGE. Есть парзинг XML. 8) При вызове вне очереди (закидывая в процедуру P2 XML мессаги) -- отрабатывает успешно ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2021, 16:02 |
|
the-current-transaction-cannot-be-committed REVISITED
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2021, 16:10 |
|
the-current-transaction-cannot-be-committed REVISITED
|
|||
---|---|---|---|
#18+
Konst_One Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
есть заменить @XACT_STATE на XACT_STATE(), то проблема магически исправилась. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Не будет ли любезен великий маг из Хоггвардса объяснить, что тут происходило? В чем разница между исполнением под Service Broker и без него? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2021, 16:22 |
|
the-current-transaction-cannot-be-committed REVISITED
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2021, 16:27 |
|
the-current-transaction-cannot-be-committed REVISITED
|
|||
---|---|---|---|
#18+
a_voronin, ищите где у вас до команды end conversation XACT_STATE() меняет состояние на -1; какая то инструкция у вас переводит транзакцию в uncommitable состояние. инструкция end conversation по сути равна записи в постоянную таблицу - то есть это логируемая операция. если замените end conversation на insert into [permanent_table] тоже получите ошибку. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2021, 16:28 |
|
the-current-transaction-cannot-be-committed REVISITED
|
|||
---|---|---|---|
#18+
felix_ff какая то инструкция у вас переводит транзакцию в uncommitable состояние. В этом случае любая, даже пользовательская ошибка будет переводить транзакцию в нефиксируемое состояние. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2021, 20:26 |
|
|
start [/forum/topic.php?fid=46&fpage=12&tid=1684205]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
24ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
2ms |
others: | 243ms |
total: | 350ms |
0 / 0 |