Mappoint:Server ist ausgelastet

Rund um MS-MapPoint

Moderator: Moderatoren

Antworten
HarryD
Rookie
Rookie
Beiträge: 6
Registriert: Do, 12. Jan 2006 21:24
Wohnort: 75015 Bretten
Kontaktdaten:

Mappoint:Server ist ausgelastet

Beitrag von HarryD »

Hallo,
wir setzen Mappoint 2006 für unsere Disposition ein. In der Applikation laufen parallel zwei ActiceX-Threads mit je einer kleineren und einer großen Mappointkarte auf denen die Fahrzeugbewegungen und die Auftragsdaten dargestellt werden.

Über Zeiträume von mehreren Tagen laufen die Threads problemlos, aber irgendwann erhalten wir die Meldung, daß der Server ausgelastet sei.
Der Mappoint-Thread verabschiedet sich dann und lässt sich auch nicht abbrechen. Die einzige Möglichkeit ist den Prozess abzubrechen.
Hat jemand ähliche Symptome oder kennt sogar einen Lösungsansatz , z.B. wie die Rückgaben der einzelnen Mappoint-Methoden auszuwerten sind.

Gruß aus Bretten
HarryD
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Mappoint:Server ist ausgelastet

Beitrag von AUGE_OHR »

hi,
HarryD hat geschrieben: wir setzen Mappoint 2006 für unsere Disposition ein. In der Applikation laufen parallel zwei ActiceX-Threads mit je einer kleineren und einer großen Mappointkarte auf denen die
Frage : "macht" MP dabei etwas oder zeigt er "nur" die Map an ?
HarryD hat geschrieben: Fahrzeugbewegungen und die Auftragsdaten dargestellt werden.
du zeigst also wirklich eine "Bewegung" ?
und wie ... ? (alten Pin löschen neuen Pin anzeigen ... ?)
was sagt dein Speicher und CG dazu ... wieviel SLEEP() ?
HarryD hat geschrieben: Über Zeiträume von mehreren Tagen l
em, äh ... meinst du das jetzt im Ernst das er mehr als 24 Std.
läuft ohne das die Application beendet wird ?

Das ganze läuft doch unter M$ OS() und das mehr als 24 Std ?
Ich "traue" keine M$ OS() was mehr als 24 Std. läuft, da hab ich
schon Sachen erlebt ... sogar den M$ "Server 2003" reboote ich
des öfteren "wenn er komisch läuft" ... das musste ich mit dem
Novell Server nie machen.
HarryD hat geschrieben: ... aber irgendwann erhalten wir die Meldung, daß der Server ausgelastet sei.
Der Mappoint-Thread verabschiedet sich dann und lässt sich auch nicht abbrechen.
Die einzige Möglichkeit ist den Prozess abzubrechen.
deshalb frage ich nach, den das Verhalten kann ich leicht simulieren wenn
ich mehrfach hintereinander versuche eine Karte aufzubauen (PushPin setzten)
ohne die Xbase++ Application zu verlassen ... dann kommt der Fehler.

überhaupt muss ich eine Menge SLEEP() einsetzten weil MapPoint sonst knallt.
Beispiel Note : wenn ich mit geoDisplayBalloon eine Note setzte ohne SLEEP() davor knallt es
nach einigen PushPin, aber wenn ich zuerst geoDisplayNone nehme laufen auch
3000 Pushpin durch.
HarryD hat geschrieben: Hat jemand ähliche Symptome oder kennt sogar einen Lösungsansatz , z.B. wie die Rückgaben der einzelnen Mappoint-Methoden auszuwerten sind.
Nur über :onError des activeX, aber damit fängst du ja nur die Rückgabe ab ... MapPoint bleibt
im Speicher mit 100% CPU (bei HT 50% pro CPU) sodass du die Application verlassen musst um
MapPoint aus der Taskliste zu schmeissen.
gruss by OHR
Jimmy
HarryD
Rookie
Rookie
Beiträge: 6
Registriert: Do, 12. Jan 2006 21:24
Wohnort: 75015 Bretten
Kontaktdaten:

Re: Mappoint:Server ist ausgelastet

Beitrag von HarryD »

Hallo,
zu Deinen Fragen.
auf der MP-Karte sind zwischen 30 und 150 statische Pushpins dargestellt. Die werden je nach Anwendervorgaben ab- und angschaltet. Das sind z.B. Autobahnkilometer, Vertragswerkstätten, wichtige Kunden etc. oder auch Shapes. Die dienen lediglich der besseren Orientierung des Disponenten. Darüber hinaus werden zwischen 10 und 100 Fahrzeuge in Form von Pushpins dargestellt. Diese Pins ändern je nach Anforderung ihre :location , ihren :balloonstate , ihre :note und ihr :smbol.
Diese Pins werden bei Applikationsstart einmalig erzeugt und im weiteren Verlauf lediglich durch Änderen ihrer Eigenschaften refreshed. Sie werden nicht gelöscht und neu erzeugt (dauert viel zu lange ) .
Der Refreshzyklus liegt zwischen 30 - 60 Sekunden. Das hängt davon ab, welche Art der Kommunikation im Fahrzeug verwendet wird. Wir arbeiten hier mit TomTomWork oder VDO-Dayton zusammen. Beide Systeme kommunizieren über GPRS.

Die Speicherauslastung schwankt dabei minimal und die CPU-Auslastung für die komplette Applikation liegt im Dauerbetrieb zwischen 3 und 10 %.
Dabei läuft die Arbeitsstation ( Windows XP SP 3 ) in der Tat non Stop und das tut sie auch über Tage hinweg.
Ich war gerade gestern bei einem Kunden mit diesem Problem. Dort lief die Anwendung jetzt seit dem 10.10.08 bis gestern ohne Probleme.
Ich habe die Fehlermeldung auch mal gegoogelt und es hat scheinbar etwas mit dem OLE-Server von Microsoft zu tun. Ich habe jetzt mal den dort beschriebenen Registry-Eintrag (TcpNumConections ) auf der Arbeitsstation eingtragen und behalte es weiter im Auge.

Grüße aus Bretten
HarryD
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Mappoint:Server ist ausgelastet

Beitrag von Wolfgang Ciriack »

Hallo Harry,
ich hoffe, ihr benutzt dazu Mappoint Fleet, ansonsten lass das hier mal nicht M$ lesen :?
Viele Grüße
Wolfgang
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Mappoint:Server ist ausgelastet

Beitrag von AUGE_OHR »

hi,
HarryD hat geschrieben: Diese Pins ändern je nach Anforderung ihre :location , ihren :balloonstate , ihre :note und ihr
:smbol.
Frage: In welcher Reihenfolge setzt du :Symbol, :Ballonstate und :Note ?
vor dem :Note ein SLEEP()?

Ich habe gerade in den letzten Tagen an sowas geknobelt und nehme nun genau die obige
Reihenfolge mit einem SLEEP(40) nach dem geöffneten Ballon und vor Anzeige der :Note bei
ca. 3000 Pushpin. Wenn ich "nur" 100 nehme reicht schon ein SLEEP(1) d.h. das ganze
"scheint" also auch mit der Menge/Grösse etwas zu tun haben.
HarryD hat geschrieben: Diese Pins werden bei Applikationsstart einmalig erzeugt
hm ... ich "lade" die "präparierte" Karte mit allen 3000 Pushpin (der Kunden) und "erstelle" über
die Kunden ID, die ich den PushPin als Name gegeben habe, dann meine Waypoints.
Das geht mit FindPushPin(Kunden ID) ca. so schnell wie eine LOCATE über 1000 Sätze ... < 1sec.
HarryD hat geschrieben: Ich habe die Fehlermeldung auch mal gegoogelt und es hat scheinbar etwas mit dem OLE-Server von Microsoft zu tun. Ich habe jetzt mal den dort beschriebenen Registry-Eintrag (TcpNumConections ) auf der Arbeitsstation eingtragen und behalte es weiter im Auge.
hm ... Workstation ... dann gibt es auch einen Server ... liegen dort die "Karten" ?

Ich habe am Anfang nur eine "minimal" Installation gemacht und er musste jedesmal auf die
CD-ROM zugreifen (bevor er abstürzte ...) deshalb kam ich auf das SLEEP() und habe mit der
Reihenfolge gespielt. Man sollte unbedingt eine Vollinstallation auf (jeder) Workstation machen
den sonst ist Xbase++ "zu schnell" bzw das activeX "zu langsam" und man bekommt den OLE
Error was nichts anderes heisst als "Fehler unbekannt" ... (habe hier ihm Forum irgendwo eine
activeX Error Liste gepostet)

Was Netzwerk angeht : welche Opportunistic locking Settings fährst du am Server / Workstation ?
HarryD hat geschrieben: Der Refreshzyklus liegt zwischen 30 - 60 Sekunden. Das hängt davon ab, welche Art der
Kommunikation im Fahrzeug verwendet wird. Wir arbeiten hier mit TomTomWork oder VDO-Dayton
zusammen. Beide Systeme kommunizieren über GPRS.
wow hört sich gut an. Frage : wie bekommst du die Info "in" deine Xbase++ Application ?

bei 30 sec. hast du doch massig Zeit um da jeweils 1/2sec abzuzwacken vor der Anzeige von
:Note, den die "scheint" die Zeit kritischste zu sein.

weil wir nun gerade beim Thema sind (und ich immer noch keine Antwort habe) :
Wie kann ich "alle Information abschalten", wie es im original geht (rechts Maustaste / Menu ) ?
z.Z. mache ich das in einer DO WHILE ! oPushPin:EOF() Schleife ...

auch so, "Hardwarebeschleunigung" der GFK sind alle "on" ? ... das hat mich viel SLEEP gekostet ...
gruss by OHR
Jimmy
Antworten