|
|
|
ADOConnection, сервисы, проблема с подключением к БД ()
|
|||
|---|---|---|---|
|
#18+
Всем доброго дня! Проблема в следующем. Было обычное приложение, в котором был некий функционал, который создавал поток (потоки), которые в свою очередь внутри себя создавал ADO-шные контролы (ADOConnection, ADOStoredProc и т.д.) и все прекрасно работало. Решил переделать все в сервис. Внутри сервиса создал класс потока: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. из ServiceExecute(Sender: TService) создаю поток и запускаю его: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Далее код попытки подключения к серверу БД в самом потоке: Код: 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. на строке connect.Open(); процесс просто прерывается и вылетает, не говоря ни слова. Повторюсь, что в обычном "оконном варианте" все работает норм. Подскажите, плз, в чем грабли и куда копать? Заранее благодарен! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2020, 17:43 |
|
||
|
ADOConnection, сервисы, проблема с подключением к БД ()
|
|||
|---|---|---|---|
|
#18+
Bobby, а если запустить сервис от имени пользователя? а по какому протоколу подключение, может Named Pipes какой нить? Никогда не сталкивался с такой проблемой. у меня сервис к MSSQL подключается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2020, 22:17 |
|
||
|
ADOConnection, сервисы, проблема с подключением к БД ()
|
|||
|---|---|---|---|
|
#18+
BobbyВнутри сервиса создал класс потока Первая ошибка. В сервисе это не нужно, а местами и противопоказано. Код сервиса уже выполняется в специально выделенном потоке и его завершение приводит к остановке сервиса и смерти всех порождённых потоков. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2020, 22:27 |
|
||
|
ADOConnection, сервисы, проблема с подключением к БД ()
|
|||
|---|---|---|---|
|
#18+
может не хватает Код: pascal 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2020, 23:26 |
|
||
|
ADOConnection, сервисы, проблема с подключением к БД ()
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov BobbyВнутри сервиса создал класс потока Первая ошибка. В сервисе это не нужно, а местами и противопоказано. Код сервиса уже выполняется в специально выделенном потоке и его завершение приводит к остановке сервиса и смерти всех порождённых потоков. Кто как предпочитает, пробовал и так и так, мне больше нравится отдельным потоком ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2020, 00:04 |
|
||
|
ADOConnection, сервисы, проблема с подключением к БД ()
|
|||
|---|---|---|---|
|
#18+
Bobby Подскажите, плз, в чем грабли и куда копать? Попробуй Код: pascal 1. А перед open закинь в лог constr . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2020, 07:00 |
|
||
|
ADOConnection, сервисы, проблема с подключением к БД ()
|
|||
|---|---|---|---|
|
#18+
wadman Bobby Подскажите, плз, в чем грабли и куда копать? Попробуй Код: pascal 1. А перед open закинь в лог constr . поменял на Код: pascal 1. стало вылетать на Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2020, 09:17 |
|
||
|
ADOConnection, сервисы, проблема с подключением к БД ()
|
|||
|---|---|---|---|
|
#18+
Bobby стало вылетать на Не информативная ошибка. Доступ к файлу, куда лог пишется, у сервиса есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2020, 09:22 |
|
||
|
ADOConnection, сервисы, проблема с подключением к БД ()
|
|||
|---|---|---|---|
|
#18+
wadman Bobby стало вылетать на Не информативная ошибка. Доступ к файлу, куда лог пишется, у сервиса есть? Доступ к файлу есть, конечно. Блок записи в файл ПЕРЕД запуском потока отрабатывает: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. т.е. строка "10.01.2020 9:14:18 Запуск загрузки" в текстовом файле появляется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2020, 09:34 |
|
||
|
ADOConnection, сервисы, проблема с подключением к БД ()
|
|||
|---|---|---|---|
|
#18+
wadman Bobby стало вылетать на Не информативная ошибка. Доступ к файлу, куда лог пишется, у сервиса есть? Более того, в потоке вставил вот такую проверку, чтоб уж наверняка: Код: pascal 1. 2. 3. 4. 5. 6. 7. Строка в текстовом файле появляется, дело точно не в правах, как мне кажется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2020, 09:40 |
|
||
|
ADOConnection, сервисы, проблема с подключением к БД ()
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov BobbyВнутри сервиса создал класс потока Первая ошибка. В сервисе это не нужно, а местами и противопоказано. Код сервиса уже выполняется в специально выделенном потоке и его завершение приводит к остановке сервиса и смерти всех порождённых потоков. Дмитрий в принципе правильно угадал, но разгадка может быть чуть в ином месте: When the OnExecute event handler finishes, the service thread terminates. Возможно твой сервис "умирает" раньше, чем поток что-то успевает сделать. См. в сторону OnStart и не бросай ссылку на поток, чтобы в OnStop она была доступна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2020, 10:09 |
|
||
|
ADOConnection, сервисы, проблема с подключением к БД ()
|
|||
|---|---|---|---|
|
#18+
Bobby, стоит посмотреть в событиях Windows, возможно там найдутся записи о прибитии сервиса с сообщением об ошибке Код: powershell 1. или Код: powershell 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2020, 15:17 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=54&tid=2038702]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 255ms |
| total: | 385ms |

| 0 / 0 |
