|
Об отмененных транзакциях в базе.
|
|||
---|---|---|---|
#18+
Всех приветствую. FB 2.5 на Windows7. Клиенты жалуются, что операцию выполнили, но в базе данные не поялились. Проверил программный код несколько раз. В коде стоит commit для датасета. На всякий случай сделал после этого commit еще одну проверку: если транзакция открыта, то еще раз commit. Физически база находится на другом компьютере, соединение по TCP. Периодически у клиента пропадает сетевое соединение. Причину такого поведения выяснить еще не удалось, но факт пропажи бывает, а значит с сетевым соединением что то не в порядке. Для выяснения причин плохой работы программы, создал в базе отдельную таблицу и написал триггеры е ее заполнением. В триггерах сделал возможность заполнения в автономной транзакции, чтоб отследить возможность вероятных откатов транзакций - просто подозрение на другой кусок кода, в другой программе, которая работает параллельно с первой, но на другом компьютере, где находится база. В результате обнаружил в этой таблице запросы, которые были фактически не зафиксорованы коммитом, все идут с удаленного компьютера. Проверка программного кода и лога работы программ выдала, что все операции подверглисть коммитированию, при этом каких либо исклучений от версера базы данных выброшено не было. Вопрос: может ли из-за кратковременной потери соединения проходить такая обработка запросов? Как можно отследить причину отката транзакции и с какого компьютера это было произведено? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2016, 16:39 |
|
Об отмененных транзакциях в базе.
|
|||
---|---|---|---|
#18+
PS: По логам Firebird, как на сервере базы так и клиентской машины нет ни одной ошибки на данное время. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2016, 16:44 |
|
Об отмененных транзакциях в базе.
|
|||
---|---|---|---|
#18+
оборванный коннект -> транзакцию считай отроллбэченной Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2016, 16:44 |
|
Об отмененных транзакциях в базе.
|
|||
---|---|---|---|
#18+
Мимопроходящий> оборванный коннект Разве в логах не должно быть ошибок ? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2016, 16:47 |
|
Об отмененных транзакциях в базе.
|
|||
---|---|---|---|
#18+
svd, аварийный дисконнект есс-но откатывает активные тр-ции. IIRC, об этом даже в лог пишется, на клиенте. Триггер на дисконнект может помочь поймать такие моменты - в MON$TANSACTIONS для текущего аттача будут тр-ции не равные CURRENT_TRANSACTION ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2016, 16:51 |
|
Об отмененных транзакциях в базе.
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, в логах будут записи о потери коннекта. svd, значит транзакции довольно долгие, раз коннект успевает рваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2016, 16:56 |
|
Об отмененных транзакциях в базе.
|
|||
---|---|---|---|
#18+
hvlad, Влад, спасибо. Если не затруднит, окинь взглядом сочиненный продукт: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56.
Должно собирать в таблицу незакомиченные транзакции и откаченные транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2016, 18:09 |
|
Об отмененных транзакциях в базе.
|
|||
---|---|---|---|
#18+
svd, зачем же так сложно, да ещё и не правильно ? Кстати, не вижу разницу в двух триггерах (кроме замены 'DIS' на 'ROLL'). Если очень хочется логгировать выполняющиеся в момент обрыва связи запросы (которых может не быть в активном состоянии), то запрос будет примерно таким Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2016, 23:58 |
|
|
start [/forum/topic.php?desktop=1&fid=40&tid=1561840]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 321ms |
total: | 470ms |
0 / 0 |