|
|
|
Reconnect FireDAC + Oracle
|
|||
|---|---|---|---|
|
#18+
Добрый день. Решил написать небольшое приложение под Linux. Для выполнения запросов взял FireDAC. Запрос выполняется, все хорошо, пока с сетью проблем нет. Через раз при выполнении запроса вылетает ошибка, что соединение потеряно, следовательно нужно переподключаться. Делаю так Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Если ошибка связи, то EConnect:= True Далее, в цикле пытаюсь соединиться Код: 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. В документации я читал, что можно проверять соединение c помощью Ping , выставлять у коннекции автоподключение, но вроде бы, где-то читал ))), что это не дает 100% результата восстановления соединения. Как бы вы проверяли связь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 16:03 |
|
||
|
Reconnect FireDAC + Oracle
|
|||
|---|---|---|---|
|
#18+
20.04.2018 16:03, cptngrb пишет: > В документации я читал, что можно проверять соединение c помощью *Ping* это в какой? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 16:38 |
|
||
|
Reconnect FireDAC + Oracle
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий, вот такой http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Recovering_Connection_(FireDAC) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 16:51 |
|
||
|
Reconnect FireDAC + Oracle
|
|||
|---|---|---|---|
|
#18+
cptngrb http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Recovering_Connection_(FireDAC) Known limitations: DBMSDescriptionAdvantage DatabaseNot supported for a local free connection.dbExpress bridge driverFireDAC may fail to detect ekServerGone. Ping method is not supported.InformixRequired to set DirectExecute to True.Microsoft AccessNot supported.MySQLTo minimize call delays when the network connection is lost, consider adjusting the ReadTimeout and WriteTimeout connection definition parameters.ODBC bridge driverFireDAC may fail to detect ekServerGone. The Ping method is not supported.SQLiteNot supported. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 17:13 |
|
||
|
Reconnect FireDAC + Oracle
|
|||
|---|---|---|---|
|
#18+
забыл сказать, что Oracle ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2018, 08:16 |
|
||
|
Reconnect FireDAC + Oracle
|
|||
|---|---|---|---|
|
#18+
cptngrb, ощущение что пытаешься построить свой велосипед при том что он там уже встроен. попутно к сведению, обработку ошибок, включая в частности потерю (и восстановление) соединения там можно делать централизованно а не оборачивая каждый запрос отдельно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 08:45 |
|
||
|
Reconnect FireDAC + Oracle
|
|||
|---|---|---|---|
|
#18+
За except end руки уже оторвали ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 12:48 |
|
||
|
Reconnect FireDAC + Oracle
|
|||
|---|---|---|---|
|
#18+
vavan, это как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 15:07 |
|
||
|
Reconnect FireDAC + Oracle
|
|||
|---|---|---|---|
|
#18+
schi, можно было бы писать в лог, но пока не хочу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 15:09 |
|
||
|
Reconnect FireDAC + Oracle
|
|||
|---|---|---|---|
|
#18+
cptngrbэто как?что именно "как"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2018, 09:41 |
|
||
|
Reconnect FireDAC + Oracle
|
|||
|---|---|---|---|
|
#18+
vavan, автортам можно делать централизованно а не оборачивая каждый запрос отдельно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2018, 11:35 |
|
||
|
Reconnect FireDAC + Oracle
|
|||
|---|---|---|---|
|
#18+
cptngrb, у многих компонент в anydac есть OnError, а у некоторых еще и OnRecover если уж встроенный функционал по восстановлению соединения и повторному выполнению не вполне устраивает. он конечно тоже с ошибками но возможно в свежих версиях получше работает, у меня увы заброшенная без права на апгрейд ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2018, 11:50 |
|
||
|
Reconnect FireDAC + Oracle
|
|||
|---|---|---|---|
|
#18+
Linux. Oracle. х64. Консольное приложение. Решил перейти на пул соединений. Для этого нужно создать пул Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. При запуске приложения Код: pascal 1. 2. 3. 4. 5. 6. 7. Далее, в отдельном потоке В конструкторе: Код: pascal 1. 2. 3. 4. В Execute потока: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. Как я проверяю потерю соединения: запускаю приложение, устанавливаю соединение и выполняю запросы пару раз, отключаю сетевое соединение, дожидаюсь ошибки соединения, включаю сетевое соединение и на AConnection.Connected:= True; приложение уходит в себя. Подскажите люди добрые WHF? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2018, 09:39 |
|
||
|
Reconnect FireDAC + Oracle
|
|||
|---|---|---|---|
|
#18+
В общем, нормально работает при любых параметрах в Windows, а в Linux чтобы получить хоть какой-нибудь ответ после восстановления соединения я у коннекции выставляю: Код: pascal 1. 2. Ответ приходит хоть и не так быстро, но приходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 16:23 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39633900&tid=2040443]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
148ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 471ms |

| 0 / 0 |
