Вверх ↑
Этот топик читают: Гость
Ответов: 1429
Рейтинг: 50
#1: 2010-08-16 20:11:46 ЛС | профиль | цитата
Если нет инета, или ошибка на сервере, этот компонент виснет "навсегда", не выдавая никаких ошибок.
Если он при этом в отдельном потоке, но этот поток нельзя перезапустить или остановить. Прога работает, а POP3 в ней висит.

Что делать?
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Администрация
Ответов: 15294
Рейтинг: 1518
#2: 2010-08-16 20:20:25 ЛС | профиль | цитата
виснет во время работы или во время подключения? Про ошибку на сервере не понял - какая ошибка?
карма: 26
0
Ответов: 1429
Рейтинг: 50
#3: 2010-08-16 20:26:28 ЛС | профиль | цитата
Стабильность 99% Раз в час виснет. Ниразу еще не работало дольше.
карма: 0

0
Администрация
Ответов: 15294
Рейтинг: 1518
#4: 2010-08-16 20:37:26 ЛС | профиль | цитата
алгоритм повторения проблемы имеется?
карма: 26
0
Ответов: 1429
Рейтинг: 50
#5: 2010-08-16 20:42:50 ЛС | профиль | цитата
Я понимаю, что тут трудно помоч. щас я сделаю отдельный код, заведу ящик с письмом, и заставлю его проверять. И этот код выложу сюда для тестов.
карма: 0

0
Администрация
Ответов: 15294
Рейтинг: 1518
#6: 2010-08-16 20:55:39 ЛС | профиль | цитата
при отсутствии интернета элемент выдает 1 на точку onError при попытке соединения с сервером. При отсутствии сервера - выдается 2. В этом проблемы быть не может.
карма: 26
0
Ответов: 301
Рейтинг: 11
#7: 2010-08-16 21:01:34 ЛС | профиль | цитата
Dilma писал(а):
при отсутствии интернета элемент выдает 1 на точку onError при попытке соединения с сервером. При отсутствии сервера - выдается 2. В этом проблемы быть не может.

а 4 что значит?
------------ Дoбавленo в 21.01:
login писал(а):
Стабильность 99% Раз в час виснет. Ниразу еще не работало дольше.

у меня оно по 9 часов в день без сбоев работает. только если кто (например the bat или нотифиер от миранды) - то открыл рор3 - тогда почти мгновенно к другому ящику переходит.
карма: 0

0
Администрация
Ответов: 15294
Рейтинг: 1518
#8: 2010-08-16 21:07:59 ЛС | профиль | цитата
evgenyatam писал(а):
а 4 что значит?

в справке все популярно расписано
карма: 26
0
Ответов: 1429
Рейтинг: 50
#9: 2010-08-18 09:15:33 ЛС | профиль | цитата
Да, так я проверял, ошибки он выдает, но это только сразу, а после часа работы висит.
Делаю схему..
------------ Дoбавленo в 22.01:
только если кто (например the bat или нотифиер от миранды) - то открыл рор3 - тогда почти мгновенно к другому ящику переходит.


evgenyatam, Начинаю подозревать, что в етом может тоже быть причина.
К этому ящику у меня подключены 4 такие проги с 4 разных айпишников.
Наверное получается, что во время сеанса приходит запрос с другого айпишника, и mail.ru переключается на него.
Это не страшно, вот только надо сделать что то с зависаниями.

(заканчиваю код скоро выложу.)
------------ Дoбавленo в 22.15:
Итак вот такая схема:
Add(MainForm,2953706,84,98)
{
Width=453
Height=164
}
Add(Hub,8843929,847,301)
{
OutCount=5
link(onEvent1,1697604:doWork3,[(873,307)(873,288)(767,288)])
link(onEvent2,8364373:In,[])
link(onEvent3,9579696:doChangeValue,[(875,321)(875,335)])
link(onEvent4,7301485:In,[(869,328)(869,377)])
}
Add(InfoTip,16136873,168,91)
{
@Color=14215660
Info=#14:Чтение из mail|
Width=925
Height=375
}
Add(POP3,4600154,665,224)
{
Login="c-hu@mail.ru"
Password="asdf"
Point(doTop)
Point(onError)
link(onRead,5564472:doParse,[])
link(onError,11688575:doEvent1,[(719,244)(719,167)])
}
Add(Hub,10379878,532,210)
{
InCount=2
OutCount=3
link(onEvent1,6269490:doWork2,[(602,216)(602,230)])
link(onEvent2,8891662:doData,[(584,223)(584,265)])
link(onEvent3,16206586:doCompare,[(571,230)(571,307)])
}
Add(DoData,8891662,595,259)
{
link(onEventData,4600154:doRead,[(632,265)(632,237)])
link(Data,7527882:Var2,[])
}
Add(POP3_Parse,5564472,728,231)
{
link(onParse,224257:doValue,[])
}
Add(Memory,224257,854,231)
{
link(onData,89292:doData,[])
}
Add(FileStream,14014400,966,217)
{
Mode=1
AutoCopy=0
Point(doCopyFromStream)
link(FileName,224257:Value,[(972,209)(944,209)(944,278)(860,278)])
}
Add(DoData,89292,903,231)
{
link(onEventData,14014400:doCopyFromStream,[])
link(Data,5564472:Attach,[(909,221)(789,221)(789,273)(755,273)])
}
Add(Hub,11688575,763,161)
{
OutCount=3
PColor(onEvent2,0)
link(onEvent1,14097841:In,[(787,167)(787,146)])
link(onEvent2,14620630:doEvent4,[(888,174)(888,117)(325,117)(325,195)])
link(onEvent3,1697604:doWork2,[(789,181)(789,210)])
}
Add(HubEx,1697604,763,204)
{
Angle=2
link(onEvent,15559578:doWork1,[(650,210)])
}
Add(Thread,6249774,462,175)
{
FastStop=0
BusyEvent=1
PColor(onExec,0)
link(onExec,10379878:doEvent1,[(517,181)(517,216)])
}
Add(If_else,16206586,735,301)
{
Op2=String(123456789)
link(onTrue,8843929:doEvent1,[])
link(onFalse,6610559:doData,[(781,314)(781,369)(556,369)(556,328)])
link(Op1,5564472:Subject,[])
}
Add(DoData,6610559,567,322)
{
link(onEventData,15811089:doEvent1,[])
link(Data,14130260:Var2,[(573,300)(657,300)])
}
Add(GetDataEx,14130260,651,269)
{
Angle=1
link(Data,4600154:Count,[(671,274)])
}
Add(Hub,15811089,609,322)
{
OutCount=4
link(onEvent1,6269490:doWork3,[(663,328)(663,280)(620,280)])
link(onEvent2,4600154:doDelete,[(641,335)(641,244)])
link(onEvent3,15559578:doWork3,[(650,342)])
link(onEvent4,3432990:doCompare,[(668,349)(668,315)(450,315)(450,265)])
}
Add(HubEx,6269490,616,224)
{
link(onEvent,4600154:doConnect,[])
}
Add(HubEx,15559578,646,245)
{
link(onEvent,4600154:doClose,[])
}
Add(If_else,3432990,462,259)
{
Op2=Integer(0)
link(onTrue,16559194:doMessage,[(506,265)(506,342)(275,342)(275,391)])
link(onFalse,10379878:doEvent2,[(517,272)(517,223)])
link(Op1,7527882:Var1,[(468,247)])
}
Add(GetDataEx,7527882,595,242)
{
Angle=1
link(Data,14130260:Var1,[(637,247)(637,274)])
}
Add(LineBreak,3181259,182,217)
{
Caption="Значит пусто в ящике"
PColor(Out,0)
link(Out,14620630:doEvent3,[(338,223)(338,188)])
Primary=[8256894,154,168]
}
Add(LineBreak,1475799,700,532)
{
@Hint=#15:Банг при старте|
@Color=43520
Caption="Старт таймера"
Color=3483077
link(Out,14360933:doTimer,[(828,538)(828,573)])
Primary=[12017836,-238,-392]
}
Add(InfoTip,13623637,644,483)
{
Info=#41:Внешний блок защиты, по принципу таймера.|49:Если долго ничего не происходит - начать с начала|
Width=449
Height=165
}
Add(Timer,14360933,847,567)
{
Interval=17000
Enable=1
AutoStop=1
link(onTimer,3237772:doEvent1,[])
}
Add(Hub,14620630,350,168)
{
InCount=5
OutCount=1
link(onEvent1,12834989:doTimer,[])
}
Add(LineBreak,12921604,679,560)
{
Caption="Стоп таймеру"
Color=16711808
link(Out,14462774:doWork1,[(774,566)])
Primary=[14097841,119,-420]
}
Add(LineBreak,13372840,679,588)
{
Caption="Стоп таймеру"
Color=16711808
link(Out,14462774:doWork2,[])
Primary=[8364373,210,-280]
}
Add(HubEx,14462774,770,588)
{
link(onEvent,14360933:doStop,[(800,594)(800,580)])
}
Add(LineBreak,9682352,210,175)
{
Caption="Начать сначала"
link(Out,14620630:doEvent2,[])
Primary=[10275376,756,413]
}
Add(Button,7535208,273,133)
{
Left=65
Top=40
Width=80
Height=35
Caption="Start"
link(onClick,14620630:doEvent1,[(338,139)(338,174)])
}
Add(InfoTip,2644109,252,329)
{
Info=#22:Значит пусто в ящике..|
Width=225
Height=116
}
Add(Hub,3237772,917,567)
{
link(onEvent1,10477014:In,[(941,573)(941,559)])
link(onEvent2,10275376:In,[(941,580)(941,594)])
}
Add(LineBreak,13224958,203,245)
{
Caption="Остановить поток"
link(Out,2464348:doWork2,[])
Primary=[10477014,763,308]
}
Add(InfoTip,15662542,679,266)
{
Info=#67:Проверка темы письма (тема должна быть 123, и иметь вложенный файл)|
Width=141
Height=95
}
Add(Timer,12834989,378,168)
{
Interval=10000
Enable=1
AutoStop=1
link(onTimer,15226397:doEvent1,[])
}
Add(Hub,15226397,427,168)
{
OutCount=3
PColor(onEvent2,0)
link(onEvent1,12017836:In,[(451,174)(451,146)])
link(onEvent2,12302930:doWork2,[])
}
Add(LED,9579696,889,329)
{
Left=350
Top=25
Width=65
Height=65
}
Add(Label,253569,84,147)
{
Left=165
Top=50
Width=165
Height=17
Caption="Мигает при успешной операции"
}
Add(Message,16559194,287,385)
{
Message="Пусто в ящике (это невозможно!)"
link(onMessage,8256894:In,[])
}
Add(LineBreak,1096248,210,273)
{
Caption="Начать с начала"
link(Out,14620630:doEvent5,[(343,279)(343,202)])
Primary=[7301485,679,98]
}
Add(Button,7667182,364,266)
{
Left=45
Top=85
Width=125
Height=25
Caption="Перезапустить поток"
link(onClick,13370386:doEvent1,[])
}
Add(Hub,13370386,413,266)
{
InCount=2
PColor(onEvent2,0)
link(onEvent1,2464348:doWork3,[(449,272)])
link(onEvent2,12302930:doWork3,[(445,279)])
}
Add(HubEx,2464348,445,245)
{
Angle=3
link(onEvent,6249774:doStop,[(449,188)])
}
Add(HubEx,12302930,441,175)
{
PColor(onEvent,0)
link(onEvent,6249774:doStart,[])
}


Делает она следующее:

1. Проверяет почту по кругу.
2. Если в ней есть письмо с темой письма "123456789" - скачивает аттач из него на диск.
3. Если есть любое другое письмо с темой отличной от "123456789" - удаляет его, и переходит к письму с темой "123456789".


(прописывать свой ящик нельзя!!!, постирает все письма!!!)
Как на зло, сегодня, с утра, веб-морда mail.ru не принимает пароли своих ящиков.
Поэтому не могу создать ящик. Наверное до завтра они это исправят, и я выложу схему с "прописаным" ящиком и письмом.

------------ Дoбавленo в 03.45:
Я исправил код (выше), добавил в него Реальный ящик с письмом. Все работает, можно запустить.

Но, для наглядности, я сделал видео того, как вызвать такую ошибку:
http://www.youtube.com/watch?v=FTywtQ2cRBM

(качество не очень, но в 480p вроде видно мышку)
------------ Дoбавленo в 23.12:
Dilma, скажите, планируете ли Вы исправить компонент? Мне надо что-то с этой проблемой делать, ждать или не ждать?
------------ Дoбавленo в 23.17:
Под исправлением, я имею ввиду возможность перезапустить елемент, в каком бы он состоянии не находился. Чтобы продолжалась его работа.
Этого было бы достаточно.
------------ Дoбавленo в 09.15:
Dilma, я решил эту проблему с помощью мультика в режиме "OnlyOnce"
##Delete, затем ##ADD - и все работает
(часто вот так бывает, что задаеш кому-то вопросы и сам себя к ответу приводиш )

карма: 0

0
9
Сообщение
...
Прикрепленные файлы
(файлы не залиты)