|
Как прервать выполнение через заданный интервал времени? | ☑ | ||
---|---|---|---|---|
0
Septera
05.11.11
✎
13:25
|
Есть код:
как можно прервать процедуру через скажем 10 секунд? |
|||
1
ДенисЧ
05.11.11
✎
13:25
|
таймаут выставить
|
|||
2
Septera
05.11.11
✎
13:34
|
(1) хорошее предложение, осталось узнать как?))
|
|||
3
ДенисЧ
05.11.11
✎
13:36
|
А почитать доку по ADO религия не позволяет??
|
|||
4
Septera
05.11.11
✎
13:44
|
(4) весьма тонкий намек... и на этом спасибо
|
|||
5
shuhard
05.11.11
✎
13:45
|
(3) +1
и "localhost" я бы убрал ибо "Если параметр опущен, то создается на данном компьютере." |
|||
6
Septera
05.11.11
✎
16:18
|
Соединение.ConnectionTimeout = 5;
не помогло |
|||
7
Septera
05.11.11
✎
17:27
|
апну разок
|
|||
8
Jaap Vduul
05.11.11
✎
18:18
|
||||
9
Septera
05.11.11
✎
18:57
|
(8) Дословно: Удостоверьтесь что провайдер и источник данных, в который Вы пишете, поддерживают функциональность CommandTimeout.
Значит не поддерживает мой драйвер, по умолчанию стоит 15 секунд, но толку ноль. Какой может быть обход? |
|||
10
aleks-id
05.11.11
✎
21:55
|
(9) использовать другой провайдер? и вообще. что за jопское создание конекшена?
|
|||
11
vde69
05.11.11
✎
22:01
|
во первых можно ADO настроить по DCOM и смотреть там таймауты
во вторых можно перед созданием соединения просканировать процессы и убить по тайму процесс (а переменные обнулить) |
|||
12
Septera
05.11.11
✎
22:39
|
(10) чем же плох этот конекшен???
(11) ппц... я почти был готов это реализовать, даже наброски уже были (кстати насчет тайма не знаю, но при помощи telnet все решается довольно просто), Но в итоге все решилось намного проще, как оказалось в параметрах реестра ранее выставлялась задержка, после ее отключения все заработало |
|||
13
vde69
05.11.11
✎
22:52
|
(12) есть еще один способ, дело в том что таймаут устанавливается как в объекте connect так и в объекте open на память я не помню что имеет приоритет, но если таймаут установить в обоих объектах - то все заработает
|
|||
14
МишельЛагранж
05.11.11
✎
22:53
|
(12) вы бы подробнее описали - а то "все просто: 1с заработала нормально, как только реестр поправил и загрузил 1 раз сайт Майкрософта" ))
|
|||
15
Septera
05.11.11
✎
23:08
|
(13) не факт, я ведь в (9) написал дословный перевод документации по этому поводу и на факте все подтверждается, по умолчанию стоит 15 секунд, я меняю на 5 секунд, тут же проверяю установилось новое значение или нет, после вызываю open и иду спать))
(14) МС тут не причем, когда-то выставлялись настройки для тунелирования, а там чувствительность к задержкам большая, поэтому увеличивали TcpMaxDataRetransmissions, после удаления параметра, а также за компанию удалил TcpTimedWaitDelay, все встало на свои места, теперь open замерзает максимум на 20 секунд и вылетает с ошибкой, за что ему и спасибо)) |
|||
16
МишельЛагранж
05.11.11
✎
23:14
|
(15) т.е. проблема в настройках сети? тогда и другие сетевые приложения - тот RDP, - будут работать с разрывами...
а как понять "теперь open замерзает максимум на 20 секунд и вылетает с ошибкой, за что ему и спасибо"? т.е. вы добивались ошибки? |
|||
17
Septera
06.11.11
✎
01:20
|
(16) причем здесь rdp, rdp упал и мы это увидели если что, а COM-соединение если упадет то в лучшем случае ты это увидишь при следующем open, а следующий open в моем случае замерзал надолго, тогда как теперь проходит 20 секунд и я могу обработать Исключения со всеми вытекающими
|
|||
18
МишельЛагранж
06.11.11
✎
01:25
|
т.е. у вас сеть как-бы висла что ли??
интересные у вас настройки были )) |
|||
19
Septera
06.11.11
✎
01:28
|
(18) именно "подвисала" на этом сервере, это было сделано в свою очередь когда-то для стабильности тунельных соединений, но в данный момент такая необходимость отпала
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |