View previous topic :: View next topic |
Author |
Message |
Vf-y6d Messenger
Joined: 23 Nov 2008 Posts: 40
|
Posted: 01 Apr 2011 15:25 (Fri) Post subject: Как работает тайм-аут в POP3-клиенте CMS? |
|
|
Вот такая ситуация, как в анекдоте.
Короче - ЦМС устанавливает соединение с POP3-сервером, запрашивает передачу письма. POP3-сервер начинает передачу, а через несколько секунд замолкает без предупреждения. Через некоторое время он уже доступен для подключения другого клиента, то есть, про ЦМС просто забыл. А тот упорно продолжает ждать окончания передачи - пока его не перезапустишь. Даже если нажать кнопку "Разорвать соединение" - кнопка "обесцвечивается", но соединение из списка не пропадает.
Нельзя ли как-то контролировать такую ситуацию - типо за 10 минут не поступило ни одного пакета - отсоединяться нафег? |
|
Back to top |
|
|
NAMOR CMS Developer
Joined: 15 Oct 2005 Posts: 1079
|
Posted: 01 Apr 2011 16:01 (Fri) Post subject: |
|
|
Для этого имеется настройка "Тайм-аут" в свойствах внешнего POP3-сервера.
Проблема может быть не только во внешнем сервере, но и в нестабильном интернет-канале, и в антивирусе, медленно проверяющем письмо (или вообще зависшем из-за нарушенной структуры письма).
Если установленный тайм-аут не срабатывает, значит, информация на CMS поступает, только очень медленно.
Чтобы можно было разорвать соединение, внешний сервер должен быть доступен (даже разрыв соединения сопровождается обменом информацией). Иначе остаётся только ждать истечения тайм-аута или завершения проверки письма антивирусом. |
|
Back to top |
|
|
Vf-y6d Messenger
Joined: 23 Nov 2008 Posts: 40
|
Posted: 02 Apr 2011 3:04 (Sat) Post subject: |
|
|
...а я так понимал, что тайм-аут - это действует только в процессе установления соединения, типо послали запрос - не получили ответ через заданное время. А тут-то - соединение уже установлено и идет прием. То есть, запросы уже не посылаются до окончания приема. Установка таймаута и тут должна продолжать работать? |
|
Back to top |
|
|
NAMOR CMS Developer
Joined: 15 Oct 2005 Posts: 1079
|
Posted: 02 Apr 2011 13:54 (Sat) Post subject: |
|
|
Да. Этот тайм-аут действует как раз с момента подключения к внешнему серверу и до момента отключения от него.
Соединение установлено и идёт приём, т.е. POP3-сервер передаёт на CMS данные. Если он перестал их передавать, то CMS ждёт указанное время (тайм-аут), по его истечении он считает соединение "зависшим" и принудительно его закрывает.
А величина тайм-аута при установке соединения определяется Windows и зависит от типа подключения к интернету. В CMS этот тайм-аут не настраивается. |
|
Back to top |
|
|
Vf-y6d Messenger
Joined: 23 Nov 2008 Posts: 40
|
Posted: 16 Apr 2011 19:19 (Sat) Post subject: |
|
|
NAMOR wrote: | ...А величина тайм-аута при установке соединения определяется Windows и зависит от типа подключения к интернету. В CMS этот тайм-аут не настраивается. |
- а вот тут что-то не то... В Виндусе есть "время простоя до разрыва соединения", но оно как я понимаю, касается самого канала связи с интернетом. И при постоянном подключении обычно выставлено в "никогда".
А вот "отпад" CMS от зависшего соединения с почтовым сервером происходит когда через 5 минут, когда через 45, а когда и вообще перезапускать приходится. Может в ём самом чего предусмотреть надо?
В свойствах внешнего POP3 сервера таймаут выставляется, но, как я понял, этот таймаут действует только в процессе установки соединения, от запроса до ответа сервера. И он срабатывает точно, на сколько задано - если сервер воще не отвечает. |
|
Back to top |
|
|
NAMOR CMS Developer
Joined: 15 Oct 2005 Posts: 1079
|
Posted: 16 Apr 2011 23:58 (Sat) Post subject: |
|
|
Vf-y6d wrote: | А вот "отпад" CMS от зависшего соединения с почтовым сервером происходит когда через 5 минут, когда через 45, а когда и вообще перезапускать приходится. Может в ём самом чего предусмотреть надо? |
Если в течение установленного в CMS тайм-аута внешний сервер не пришлёт ни одного байта, то CMS разорвёт соединение. Если до истечения тайм-аута внешний сервер пришлёт хотя бы один байт, то CMS не разорвёт соединение (и начнёт отсчёт тайм-аута сначала).
Можно, конечно, замерять скорость соединения и, если она меньше заданного значения, разрывать соединение. Подумаем, может, в будущем так и сделаем.
Vf-y6d wrote: | В свойствах внешнего POP3 сервера таймаут выставляется, но, как я понял, этот таймаут действует только в процессе установки соединения, от запроса до ответа сервера. И он срабатывает точно, на сколько задано - если сервер воще не отвечает. |
Повторюсь: тайм-аут процесса установки соединения в CMS не настраивается.
Привожу пример, из которого видно, что процесс подключения к внешнему серверу прервался ровно через 1 секунду после его начала, несмотря на то, что тайм-аут для этого сервера был установлен в 300 секунд.
Code: | ~16.04.2011 23:38:56 000Q Thread started (TCsReceiveThread)
~16.04.2011 23:38:56 000Q Начали приём почты из группы внешних п/я "Test"...
16.04.2011 23:38:56 000Q Подключаемся к серверу mail.ru:110...
16.04.2011 23:38:56 000Q Начали приём почты из внешнего п/я <test@mail.ru>...
~16.04.2011 23:38:56 000Q iphlpapi.dll loaded
~16.04.2011 23:38:56 000Q Windows DNS servers: 213.132.77.124;213.132.64.251;213.132.67.110;
~16.04.2011 23:38:56 000Q iphlpapi.dll unloaded
16.04.2011 23:38:56 000Q Получаем IP-адреса для mail.ru...
~16.04.2011 23:38:56 000Q DNS query [213.132.77.124]: mail.ru 1
~16.04.2011 23:38:56 000Q mail.ru A 94.100.191.204
~16.04.2011 23:38:56 000Q mail.ru A 94.100.191.201
~16.04.2011 23:38:56 000Q mail.ru A 94.100.191.202
~16.04.2011 23:38:56 000Q mail.ru A 94.100.191.203
16.04.2011 23:38:56 000Q IP-адреса: 94.100.191.204;94.100.191.201;94.100.191.202;94.100.191.203;
!16.04.2011 23:38:57 000Q Не удалось подключиться к серверу mail.ru:110: Подключение отклонено удалённым хостом (10061)
16.04.2011 23:38:57 000Q Закончили приём почты из внешнего п/я <test@mail.ru>
~16.04.2011 23:38:57 000Q Закончили приём почты из группы внешних п/я "Test"
~16.04.2011 23:38:57 000Q Thread stopped (TCsReceiveThread) |
|
|
Back to top |
|
|
Vf-y6d Messenger
Joined: 23 Nov 2008 Posts: 40
|
Posted: 17 Apr 2011 16:53 (Sun) Post subject: |
|
|
Не, ну тут-то - "Отклонено удаленным хостом"...
Это же уже не таймаут получился, а послали конкретно...
==================
Авот тут например 2 сеанса: в обоих случаях (по всей видимости?- лог не подробный) первый из серверов воще не отвечает, и от него отваливается через 30 секунд - прям так и пишет - "Тайм-аут":
31.03.2011 14:15:00 00B3 Начали приём почты из группы внешних п/я "bolon"...
31.03.2011 14:15:00 00B4 Начали приём почты из внешнего п/я <хххххххххх@[194.85.113.246]>...
!31.03.2011 14:15:30 00B4 Тайм-аут соединения
31.03.2011 14:15:30 00B4 Закончили приём почты из внешнего п/я <хххххххххх@[194.85.113.246]>
31.03.2011 14:15:30 00B4 Начали приём почты из внешнего п/я <хххххххх@mail.ru>...
31.03.2011 14:15:31 00B4 Писем во внешнем п/я: 37 (новых 0)
31.03.2011 14:15:31 00B4 Закончили приём почты из внешнего п/я <хххххххх@mail.ru>
31.03.2011 14:15:31 00B3 Закончили приём почты из группы внешних п/я "bolon"
========================
+05.04.2011 12:01:33 00IG Подключились к "Диал-Ап", скорость (bps): 28800
05.04.2011 12:01:33 00IG Начали приём почты из группы внешних п/я "bolon"...
05.04.2011 12:01:33 00IH Начали приём почты из внешнего п/я <хххххххххх@[194.85.113.246]>...
!05.04.2011 12:02:03 00IH Тайм-аут соединения
05.04.2011 12:02:03 00IH Закончили приём почты из внешнего п/я <хххххххххх@[194.85.113.246]>
05.04.2011 12:02:03 00IH Начали приём почты из внешнего п/я <хххххххх@mail.ru>...
05.04.2011 12:02:05 00IH Писем во внешнем п/я: 57 (новых 0)
05.04.2011 12:02:06 00IH Закончили приём почты из внешнего п/я <хххххххх@mail.ru>
05.04.2011 12:02:06 00IG Закончили приём почты из группы внешних п/я "bolon"
-05.04.2011 12:02:08 00IG Отключились от "Диал-Ап"
==========================
А тут вот вообще вот - единственное письмо из ящщика принято нормально, а окончание сеанса - через 30 секунд по тайм-ауту:
=======================
05.04.2011 14:00:00 00JN Начали приём почты из внешнего п/я <хххххххххх@[194.85.113.246]>...
05.04.2011 14:00:19 00JN Писем во внешнем п/я: 22 (новых 1)
@05.04.2011 14:00:22 00JN Принято письмо N22 0MP0002B (7383 байт) от <calldet@office.beeline.ru> из п/я <хххххххххх@[194.85.113.246]> (Тема: "BEELINE Call Detail Record(s)"; UID: "3N3"!G-`!!L~\"!RH("!")
@05.04.2011 14:00:22 00JP Обрабатываем письмо 0MP0002B (7383 байт) от <calldet@office.beeline.ru> для <> (Тема: "BEELINE Call Detail Record(s)")
05.04.2011 14:00:22 00JP Начали сортировку "Dalsvyaz sorter"... Получатели: <>
05.04.2011 14:00:22 00JP Добавили получателя <dalsvyaz@bolon.local> (ID: 7)
05.04.2011 14:00:22 00JP Выполнилось условие: [Return-path!:"<>" & From!:"daemon" & From!:"ххххх@mail.amursk.ru"] (ID: 5)
05.04.2011 14:00:22 00JP Добавили получателя <admin@bolon.local> (ID: 5)
05.04.2011 14:00:22 00JP Закончили сортировку "Dalsvyaz sorter". Получатели: <admin@bolon.local>;<dalsvyaz@bolon.local>
05.04.2011 14:00:22 00JP Начали сортировку "Main sorter"... Получатели: <admin@bolon.local>;<dalsvyaz@bolon.local>
05.04.2011 14:00:22 00JP Запустили задание "Application" (ID: 1)
05.04.2011 14:00:22 00JP Закончили сортировку "Main sorter". Получатели: <admin@bolon.local>;<dalsvyaz@bolon.local>
@05.04.2011 14:00:22 00JP Доставлено письмо 0MP0002B (7505 байт) от <calldet@office.beeline.ru> для <dalsvyaz@bolon.local> (Тема: "BEELINE Call Detail Record(s)")
@05.04.2011 14:00:22 00JP Доставлено письмо 0MP0002B (7505 байт) от <calldet@office.beeline.ru> для <admin@bolon.local> (Тема: "BEELINE Call Detail Record(s)")
!05.04.2011 14:00:52 00JN Тайм-аут соединения
05.04.2011 14:00:52 00JN Закончили приём почты из внешнего п/я <хххххххххх@[194.85.113.246]>
==========
- то есть, тут кто накосячил? Внешний сервер после передачи письма должен был сказать "Все, я закончил", или ЦМС должен был сказать "Все, мне от тибя больше ничего не надо" ? Почему тайм-аут возникнул? |
|
Back to top |
|
|
NAMOR CMS Developer
Joined: 15 Oct 2005 Posts: 1079
|
Posted: 18 Apr 2011 0:31 (Mon) Post subject: |
|
|
По вашим примерам почти ничего нельзя сказать, т.к. журнал ("лог") у вас — с обычным уровнем подробности. Для детального разбора нужен отладочный уровень. Отсюда и ваши вопросы, поскольку вы видите лишь малую часть из того, что реально происходит при приёме писем из внешнего ящика.
Тем не менее, из второго примера ясно, что тайм-аут для внешнего POP3-сервера у вас установлен в 30 сек. Для Dial-Up-подключения этого крайне мало, тем более при скорости 28.8 кбит. Надо хотя бы 120 сек. Да и для не-Dial-Up тоже не помешает такое значение указать или большее. Если связь отличная, то тайм-аутов не будет и большой тайм-аут ничем не помешает, а если связь вдруг испортилась, то и поможет. Но тайм-аут больше 300 сек. указывать, думаю, смысла тоже нет.
Vf-y6d wrote: | - то есть, тут кто накосячил? Внешний сервер после передачи письма должен был сказать "Все, я закончил", или ЦМС должен был сказать "Все, мне от тибя больше ничего не надо" ? |
Сначала "Внешний сервер после передачи письма должен был сказать "Все, я закончил"", а потом "ЦМС должен был сказать "Все, мне от тибя больше ничего не надо".
Vf-y6d wrote: | Почему тайм-аут возникнул? |
Связь плохая, пакеты не идут в одном или в обоих направлениях. CMS "устал" ждать данных от сервера и разорвал соединение по тайм-ауту. А вот в какой именно момент тайм-аут возник, нужно смотреть в отладочном журнале. Хотя, кроме удовлетворения любопытства, это ничего не даст. Проблема — в ненадёжной связи и в малом значении тайм-аута. |
|
Back to top |
|
|
NAMOR CMS Developer
Joined: 15 Oct 2005 Posts: 1079
|
Posted: 31 Oct 2015 14:50 (Sat) Post subject: |
|
|
Vf-y6d wrote: | А вот "отпад" CMS от зависшего соединения с почтовым сервером происходит когда через 5 минут, когда через 45, а когда и вообще перезапускать приходится. Может в ём самом чего предусмотреть надо? |
Для решения этой проблемы сделали в CMS 3.06 beta 1 следующее:
Code: | [*] Тайм-аут, задаваемый в свойствах сервисов и внешних серверов, теперь
действует не только при приёме, но и при отправке данных. Это позволяет
избежать случаев длительного зависания соединений. |
|
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|