|
|
|
Connection recovery в FireDAC с Oracle
|
|||
|---|---|---|---|
|
#18+
Есть старый проект на Delphi 7 + FireDAC 7.0.1, база - Oracle 10.2.0.5. В приложении активно используются контексты (в смысле, dbms_session.set_context / sys_context), которые устанавливаются pl/sql-процедурой при запуске. После connection recover эти контексты, естественно, слетают и их надо восстанавливать. И вот тут возникла засада - как только в TADConnection.OnRestored я прописываю выполнение pl/sql-процедуры (не важно, какой), после восстановления коннекта возникают AV. Может я что-то неправильно делаю, и действия по инициализации сеанса с БД надо не в OnRestored, а куда-то еще поместить? Что скажете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2014, 01:44 |
|
||
|
Connection recovery в FireDAC с Oracle
|
|||
|---|---|---|---|
|
#18+
Никто не пользуется connection recovery в FireDAC?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2014, 11:45 |
|
||
|
Connection recovery в FireDAC с Oracle
|
|||
|---|---|---|---|
|
#18+
A.K.Что скажете?что грустно оказаться в ловушке "устаревшей" версии продукта к-я более не поддерживается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2014, 11:50 |
|
||
|
Connection recovery в FireDAC с Oracle
|
|||
|---|---|---|---|
|
#18+
A.K.Есть старый проект на Delphi 7 + FireDAC 7.0.1???? FireDAC поддерживает Delphi 7? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2014, 12:43 |
|
||
|
Connection recovery в FireDAC с Oracle
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_FireDAC поддерживает Delphi 7?поддерживал вероятно вплоть до версии 9.0.1.63974 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2014, 12:56 |
|
||
|
Connection recovery в FireDAC с Oracle
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_???? FireDAC поддерживает Delphi 7? Судя по пэкеджам в составе, поддерживает начиная с Delphi 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2014, 13:38 |
|
||
|
Connection recovery в FireDAC с Oracle
|
|||
|---|---|---|---|
|
#18+
A.K._Vasilisk_???? FireDAC поддерживает Delphi 7? Судя по пэкеджам в составе, поддерживает начиная с Delphi 5. Могу предположить, что если версия Oracle вышла после того как вышли компоненты, то могут быть неизвестные проблемы. Например в ADO и MSSQL 2012 не поддерживаются некоторые новые типы даже с нативным драйвером из-за самописного кода ADO. 16490191 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2014, 14:55 |
|
||
|
Connection recovery в FireDAC с Oracle
|
|||
|---|---|---|---|
|
#18+
X-Citeесли версия Oracle вышла после того как вышли компонентытому ораклу сто лет в обед, а FD седьмой был от прошлого года ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2014, 15:50 |
|
||
|
Connection recovery в FireDAC с Oracle
|
|||
|---|---|---|---|
|
#18+
Мигрировал на FireDAC 8.0.5, создал тестовый проект с одной формой, кнопкой и гридом. Все то же самое - при запуске из IDE в случае реконнекта к БД валится на строчке: Код: pascal 1. 2. 3. 4. При запуске не из-под IDE выдает AV иногда сразу после реконнекта, но чаще при закрытии приложения. Продолжаю исследования... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2014, 19:37 |
|
||
|
Connection recovery в FireDAC с Oracle
|
|||
|---|---|---|---|
|
#18+
A.K.Мигрировал на FireDAC 8.0.5, создал тестовый проект с одной формой, кнопкой и гридом. Все то же самое - при запуске из IDE в случае реконнекта к БД валится на строчке: Код: pascal 1. 2. 3. 4. При запуске не из-под IDE выдает AV иногда сразу после реконнекта, но чаще при закрытии приложения. Продолжаю исследования... Стек вызовов посмотри, и пройдись по нему. Вполне возможно, что у тебя не создан экземпляр ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2014, 19:41 |
|
||
|
Connection recovery в FireDAC с Oracle
|
|||
|---|---|---|---|
|
#18+
defecatorСтек вызовов посмотри, и пройдись по нему. Вполне возможно, что у тебя не создан экземпляр Хороший совет. Только тут ни одной строчки моего кода нет: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2014, 20:05 |
|
||
|
Connection recovery в FireDAC с Oracle
|
|||
|---|---|---|---|
|
#18+
Вроде бы нашел решение проблемы. Если в TADConnection.OnRestored вызывать хранимую процедуру не через ADStoredProc, а через TADConnection.ExecSQL, то ошибка не возникает. Если через ADStoredProc - то стабильно возникает, причем на втором вызове OnRestored, первый проходит нормально. Содержимое процедуры, наличие в ней параметров значения не имеет. AV при этом происходит вроде бы не в ADStoredProc, а в дебрях того датасета, при активизации которого был обнаружен обрыв соединения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2014, 21:03 |
|
||
|
Connection recovery в FireDAC с Oracle
|
|||
|---|---|---|---|
|
#18+
Грабли с connection recovery продолжаются. Все отлично, пока в приложении нет TADEventAlerter. Стоит его добавить, даже с отдельным TADConnection - после обрыва и восстановления соединения приложение перестает нормально закрываться: процесс подвисает в памяти после закрытия главного окна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2014, 03:29 |
|
||
|
Connection recovery в FireDAC с Oracle
|
|||
|---|---|---|---|
|
#18+
вперся в ситуации когда перед выполнением хранимки сохранял указатели на параметры, а после восстановления соединения они указывали уже ммм... не туда. причем и не в космос а на соседний параметр ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2018, 16:00 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=38735952&tid=2040005]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
152ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 444ms |

| 0 / 0 |
