|
|
|
UniDAC EIBCError with message 'cannot disconnect database with open transactions'
|
|||
|---|---|---|---|
|
#18+
При закрытии приложения появилась ошибка: Project raised exception class EIBCError with message 'cannot disconnect database with open transactions (1 active)'. Раньше такого не было. В приложении несколько UniConnection и, соответственно, несколько наборов данных со своими транзакциями. В ошибке, как видите, нет ссылки на компоненту, откуда лезет исключение :( здесь рекомендуют: https://forums.devart.com/viewtopic.php?t=35596#p123776 Check the TUniConnection.DefaultTransaction.DefaultCloseAction, its default is taRollback. Also TUniConnection.Autocommit, default for FB is True. так и сделано. Исключение где-то глубоко в недрах. Если даже принудительно Disconnect не вызываю, то всё равно вываливает это исключение. При закрытии даже пробовал принудительно откатить транзакции - не помогает. Delphi Tokyo UniDAC 7.1.4 Firebird 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2019, 14:20 |
|
||
|
UniDAC EIBCError with message 'cannot disconnect database with open transactions'
|
|||
|---|---|---|---|
|
#18+
А ларчик просто открывался. Забыл при закрытии приложения вызвать деструктор класса, где выполнялся Disconnect. Запутася. Сам виноват. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2019, 14:38 |
|
||
|
UniDAC EIBCError with message 'cannot disconnect database with open transactions'
|
|||
|---|---|---|---|
|
#18+
Но странно, что раньше этой ошибки не возникало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2019, 14:40 |
|
||
|
UniDAC EIBCError with message 'cannot disconnect database with open transactions'
|
|||
|---|---|---|---|
|
#18+
Всё равно ошибка то появляется, то исчезает. Такое впечатление, что библиотека сама не закрывает транзакции при разрыве связи. Возможно, что приложение где-то в процессе работы стартует транзации, но не завершает их, что вполне нормально вроде бы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2019, 14:55 |
|
||
|
UniDAC EIBCError with message 'cannot disconnect database with open transactions'
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ShowMessage показывает 2 раза значение "3", а это нормально? И в доках свойство TransactionCount не описано https://www.devart.com/unidac/docs/devart.unidac.tuniconnection members.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2019, 15:12 |
|
||
|
UniDAC EIBCError with message 'cannot disconnect database with open transactions'
|
|||
|---|---|---|---|
|
#18+
Позвольте мое скромное мнение https://www.devart.com/unidac/docs/devart.unidac.tuniconnection.starttransaction().htm Мне кажется проблема в уровне изоляции запуска транзакции в случае нештатных последствий соединения , а точнее - на поведение -ждать или откатить или подтвердить. Я бы попробовал, ради интереса, поиграться с параметрами запуска транзакций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2019, 15:23 |
|
||
|
UniDAC EIBCError with message 'cannot disconnect database with open transactions'
|
|||
|---|---|---|---|
|
#18+
Игрался и доигрался Потом всё вернул всад. Но проблема иногда проявляется. Вот и не могу найти закономерность. Вообще, хочу сделать, как на фибах: одна транзакция читающая и постоянно открытая, а вторая - пишущая и максимально короткая, т.е. только на время записи. Код: pascal 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. может я неправильно создаю и уничтожаю элементы? Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Не в том порядке? Может нужно принудительно закрывать транзакции? Хотя у компоненты есть же свойство DefaultCloseAction: https://www.devart.com/unidac/docs/devart.dac.tdatransaction.defaultcloseaction.htm Use DefaultCloseAction to specify the transaction behaviour when it is destroyed while being active, or when one of its connections is closed with the active transaction. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2019, 15:43 |
|
||
|
UniDAC EIBCError with message 'cannot disconnect database with open transactions'
|
|||
|---|---|---|---|
|
#18+
X11Но проблема иногда проявляется. Вот и не могу найти закономерность.Многопоток? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2019, 16:05 |
|
||
|
UniDAC EIBCError with message 'cannot disconnect database with open transactions'
|
|||
|---|---|---|---|
|
#18+
Ну почти. Есть основное приложение с двумя соединениями и отдельный поток с ещё одним. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2019, 16:07 |
|
||
|
UniDAC EIBCError with message 'cannot disconnect database with open transactions'
|
|||
|---|---|---|---|
|
#18+
Но я уверен на 99%, что исключение появляется не в отдельном потоке. Ну т.е. я как бы понял уже из-за какого соединения ошибка, осталдось понять причины и закономерность и как правильно завершать приложение, если UniDAC сама не умеет правильно управлять транзакциями при завершении приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2019, 16:10 |
|
||
|
UniDAC EIBCError with message 'cannot disconnect database with open transactions'
|
|||
|---|---|---|---|
|
#18+
X11и как правильно завершать приложение,Судя по сообщению X11'cannot disconnect database with open transactionsНа момент вызова Disconnect не должно быть активных транзакций. Т.е. либо так Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. либо так Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2019, 16:21 |
|
||
|
UniDAC EIBCError with message 'cannot disconnect database with open transactions'
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_На момент вызова Disconnect не должно быть активных транзакций. X11Может нужно принудительно закрывать транзакции? Хотя у компоненты есть же свойство DefaultCloseAction: https://www.devart.com/unidac/docs/devart.dac.tdatransaction.defaultcloseaction.htm Use DefaultCloseAction to specify the transaction behaviour when it is destroyed while being active, or when one of its connections is closed with the active transaction. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2019, 08:20 |
|
||
|
UniDAC EIBCError with message 'cannot disconnect database with open transactions'
|
|||
|---|---|---|---|
|
#18+
или transW.InTransaction - смотри как там у них InTransaction есть только у UniConnection. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2019, 10:02 |
|
||
|
UniDAC EIBCError with message 'cannot disconnect database with open transactions'
|
|||
|---|---|---|---|
|
#18+
ок, добавил строку Код: pascal 1. 2. перед отключением - всё равно не помогло решить проблему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2019, 10:16 |
|
||
|
UniDAC EIBCError with message 'cannot disconnect database with open transactions'
|
|||
|---|---|---|---|
|
#18+
Перед отключением добавил ещё Код: pascal 1. 2. 3. 4. 5. не помогает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2019, 10:19 |
|
||
|
UniDAC EIBCError with message 'cannot disconnect database with open transactions'
|
|||
|---|---|---|---|
|
#18+
Кстати, ошибка возникает не на строке connNotify.Disconnect; а позже, при завершении работы приложения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2019, 10:22 |
|
||
|
UniDAC EIBCError with message 'cannot disconnect database with open transactions'
|
|||
|---|---|---|---|
|
#18+
Как я полнял, исходя из наблюдений SQL-монитора, создавалось несколько одинаковых TUniConnection, а уничтожалось только одно при закрытии приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2019, 12:55 |
|
||
|
UniDAC EIBCError with message 'cannot disconnect database with open transactions'
|
|||
|---|---|---|---|
|
#18+
Мы ответили вам на нашем форуме: https://forums.devart.com/ru/viewtopic.php?f=26&t=26607 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2019, 14:31 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=68&tid=2039264]: |
0ms |
get settings: |
5ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
25ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 288ms |

| 0 / 0 |
