Ik heb een applicatie gemaakt in VB6 die periodiek een call uitvoert naar een UNIX server en de reply van de server verwerkt.
De periodieke call wordt uitgevoerd met behulp van het timer event, de reply is een antwoord dat wordt ontvangen op een socket. Dit antwoord wordt verwerkt tot een event door een third-party OCX en ik ontvang in mijn applicaitie een event op deze OCX met al parameter de de ontvangen string.
Het probleem is het feit dat het proces soms blijft hangen. Het doet niets meer en geen enkel event wordt meer uitgevoerd. Dit hangen is niet tijdens het uitvoeren van code, maar in de tijd dat het proces niets hoeft uit te voeren.
Timer:
Ontvangen data:
Als ik in de logging nu als laatste een 1 of een 3 zou zien staan, dan is het debuggen geen probleem, maar als laatste zie ik een 4.
De handles, het geheugen en de processorkracht van het proces lijken normaal.
Mijn vragen:
• Heeft iemand ooit gehoord van de Timer-OCX van VB6 die zijn event niet meer af laat gaan? Ik heb niet kunnen vinden daarover op www.microsoft.com of google.
• Wat zou een reden kunnen zijn voor een applicatie om niet meer te reageren op elke prikkel die het krijgt. Ook 'End process' vanuit taskmanager komt met een time-out indien deze netjes vraagt of het proces wil afsluiten. Hierdoor denk ik persoonlijk dat het probleem niet bij het timer event ligt.
De periodieke call wordt uitgevoerd met behulp van het timer event, de reply is een antwoord dat wordt ontvangen op een socket. Dit antwoord wordt verwerkt tot een event door een third-party OCX en ik ontvang in mijn applicaitie een event op deze OCX met al parameter de de ontvangen string.
Het probleem is het feit dat het proces soms blijft hangen. Het doet niets meer en geen enkel event wordt meer uitgevoerd. Dit hangen is niet tijdens het uitvoeren van code, maar in de tijd dat het proces niets hoeft uit te voeren.
Timer:
code:
1
2
3
4
5
| tmrPeriodiek_Timer()
log 1
ThirdpartyOcx.call("Vraag om data")
log 2
end sub |
Ontvangen data:
code:
1
2
3
4
5
6
7
8
| OCXSock_OnSocketReceive(host as string, data as string) log 3 zet timer uit Knip de string uit elkaar, verwerk de string Plaats de verwerkte data op een DCOM Server zet timer aan log 4 end sub |
Als ik in de logging nu als laatste een 1 of een 3 zou zien staan, dan is het debuggen geen probleem, maar als laatste zie ik een 4.
De handles, het geheugen en de processorkracht van het proces lijken normaal.
Mijn vragen:
• Heeft iemand ooit gehoord van de Timer-OCX van VB6 die zijn event niet meer af laat gaan? Ik heb niet kunnen vinden daarover op www.microsoft.com of google.
• Wat zou een reden kunnen zijn voor een applicatie om niet meer te reageren op elke prikkel die het krijgt. Ook 'End process' vanuit taskmanager komt met een time-out indien deze netjes vraagt of het proces wil afsluiten. Hierdoor denk ik persoonlijk dat het probleem niet bij het timer event ligt.
Q: How many geeks does it take to ruin a joke? A: You mean nerd, not geek. And not joke, but riddle. Proceed.