WAA und socket write/read error [ERLEDIGT]

Vom Front-End bis SOAP.

Moderator: Moderatoren

Antworten
Benutzeravatar
Armin
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 392
Registriert: Mo, 26. Sep 2005 12:09
Wohnort: 75331 Engelsbrand
Danksagung erhalten: 3 Mal
Kontaktdaten:

WAA und socket write/read error [ERLEDIGT]

Beitrag von Armin »

Hallo,

seit neuestem habe wir wieder Probleme mit dem WAA. Jetzt lief er seit 2 Jahren ohne diese socket error Geschichte. Eventuell sind momentan mehr Requests und mache Benutzer scheinen ungeduldig immer wieder auf die gleichen Knöpfe zu drücken, wenn noch nichts kommt.
Drücke ich z.B. schnell und oft hintereinander F5 auf der Startseite, dann kann so etwas passieren:

...
[03.11.2009 11:50:14][#28:Pkg][//WEBMANAGE/Login] request at [192.168.100.100]
[03.11.2009 11:50:14][#14:Pkg][//WEBMANAGE/Login] request at [192.168.100.100]
[03.11.2009 11:50:15][#11:Pkg][//WEBMANAGE/Login] request at [192.168.100.100]
[03.11.2009 11:50:15][#35:Pkg][//WEBMANAGE/Login] request at [192.168.100.100]
[03.11.2009 11:50:15][#31:Pkg][//WEBMANAGE/Login] request at [192.168.100.100]
[03.11.2009 11:50:15][#16:Pkg][//WEBMANAGE/Login] request at [192.168.100.100]
[03.11.2009 11:50:15][#8:Pkg][//WEBMANAGE/Login] request at [192.168.100.100]
[03.11.2009 11:50:50] *** -----------------------------------------------------------
[03.11.2009 11:50:50] *** worker #28 Error:
[03.11.2009 11:50:50] ***


e:canDefault :.F.
e:canRetry :.F.
e:canSubstitute:.F.
e:description :
e:filename :
e:genCode :0
e:operation :socket read error
e:osCode :0
e:severity :0
e:subCode :0
e:subSystem :
e:thread :28
e:tries :0
e:cargo :

Callstack:

CGICHANNEL:DISCONNECT(182)
WAATRANSACT:TEXIT(247)
ENDTRANSACTION(403)
SERVEJOB(338)
SERVEJOBPROTECTION(208)


[03.11.2009 11:50:50] *** -----------------------------------------------------------
[03.11.2009 11:50:50] *** worker #28 Request not completed


Das passiert ein paar Mal unbemerkt und der WAA wird immer lahmer. Irgendwann kommt es dann zu einem socket write error.
Umgebung: Win 2003 Server, IIS6, Xbase++ 1.90 331
Im Moment wird der WAA gerade so gestartet:
SET WAA_WORKERTHREADS=80
SET WAA_HOST=localhost
SET WAA_PORT=1024
SET WAA_TRACE=OFF
SET WAA_DEVMODE=OFF
SET WAA_INTERNAL_LOG=ON

Wäre es eine Möglichkeit, zu schauen, ob die akuelle Thread-ID momentan noch benutzt wird... Soetwas wie ein Threadhandler...
Eigentlich ist das ja im WAA eingebaut..
Ein noch nicht vollendeter Thread vernichtet anscheinend ein Socket - der Neustart vom WAA reicht nicht unbedingt, nicht mal ein Neustart vom Rechner hat ausgereicht - ein richtiger Kaltstart kann nötig sein :angry5:

In der IIS MetaBase.xml kann z.B. AllowKeepAlive=TRUE eingestellt werden - die Sockets werden wiederbenutzt und ist anscheinend schneller... Könnte das vielleicht helfen auf FALSE zu stellen...

Grüße, Armin
Zuletzt geändert von Armin am Mi, 04. Nov 2009 14:46, insgesamt 1-mal geändert.
Sören
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 205
Registriert: Mo, 07. Aug 2006 10:18
Wohnort: Leipzig
Danksagung erhalten: 11 Mal

Re: WAA und socket write/read error

Beitrag von Sören »

Hallo Armin,

zunächst: Ich habe selbst den WAA noch nicht verwendet.

Mir ist jedoch die Einstellung "SET WAA_WORKERTHREADS=80" ins Auge gefallen!

Ich habe mittels ASINET via TCPIP/Socket-Kommunikation eine C/S-Anwendung erstellt.

Auf dem letzten XUG-Treffen in Osnabrück hat Steffen Pirsig zu diesem Thema einige
Dinge gesagt. U.a. sagte er, dass er schon 30 gleichzeitige Workerthreads
(sprich: gleichzeitig abzuarbeitende Client-Requests) als kritisch betrachte.
Wenn tatsächlich 30 gleichzeitige Client-Anfragen kommen, werden diese auch
gleichzeitig bearbeitet - was das System in die Knie zwingen kann.
Und Du hast 80 eingestellt!

Ich habe daraufhin meine Anwendung dahingehend umgeschrieben, dass man die Anzahl
der gleichzeigigen Workerthreads einstellen kann (war vorher nicht der Fall; jeder
Client-Request erzeugte einen neuen Workerthread). Und die Zahl der gleichzeitig
gestarteten Workerthreads habe ich jetzt auf 10 gesetzt.

Wie oben gesagt: Solange Du 80 Threads zulässt, aber nur 12 gleichzeitige
Requests einlaufen, mag alles funktionieren. Aber sobald es mehr werden...

Setz' einfach mal den Wert runter und beobachte, was passiert:
SET WAA_WORKERTHREADS=15
Beste Grüße,
Sören
Benutzeravatar
Armin
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 392
Registriert: Mo, 26. Sep 2005 12:09
Wohnort: 75331 Engelsbrand
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: WAA und socket write/read error

Beitrag von Armin »

Hallo Sören,

ok danke, bin bereits am Testen.
Der WAA lief bisher mit SET WAA_WORKERTHREADS=50...
Komischerweise hatte ich an diesem Wert nichts geändert und unser Nacht-Batch-Lauf (also keine Änderung/ Steigerung der Zugriffe) läuft seit letzten Freitag trotzdem nicht mehr...

:coffee: Armin
Benutzeravatar
Armin
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 392
Registriert: Mo, 26. Sep 2005 12:09
Wohnort: 75331 Engelsbrand
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: WAA und socket write/read error

Beitrag von Armin »

Ok, Problem gelöst :D
Das Problem war der McAfee, bzw. der zugehörende Agent. Seit das wieder weg ist läuft der WAA wieder einwandfrei.
Nachträglich habe ich jetzt WAA_WORKERTHREADS=30 gesetzt - sieht gut aus...
Antworten