Hallo,
ich bin auf der Suche nach einer Idee wie es praktisch am besten und einfachsten umgesetzt werden kann. Meine Programmierkenntnisse in C# sind recht rudimentär aber ich versuche mich gerade an einem kleinen Projekt.
Das Projekt besteht aus 2 Komponenten.
2)Eine Anwendung auf dem Terminalserver, welche in der Sitzung gestartet wird, die der Service aufbaut. Die Anwendung soll dann an den Service ein "OK und Zeitstempel" senden, so dass der Service weiß, dass die Anwendung auf dem Terminalserver erfolgreich nach x Sekunden gestartet wurde.
Anschließend soll die Anwendung die Sitzung wieder abmelden.(Dies funktioniert bereits)
Nun gibt es natürlich x beliebige Terminalserver und der Service baut in einer Foreach schleife alle x Sekunden eine Sitzung auf. Auch kann es sein, dass die Anmeldung am TS1 länger dauert als am TS6.
Nun die Frage, wie ich es designe/programmiere dass beim Starten der RDP Sitzung ein Log geführt wird(im RAM reicht) zu welchem TS eine Verbindung aufgebaut wurde und ob bereits ein OK gesendet wurde.
Ist nach 3 Verbindungsaufbauten kein OK gekommen, so wird der TS als "Down" markiert und ein Fehler wird protokolliert.
Ich hoffe meine Anforderung ist verständlich rüber kommen.
Das ganze muss ja irgendwie multithreaded sein, mit einer zentralen Art von DB im RAM.
Ich hätte auch gedacht, dass der Service auf einem TCP Port lauscht und die Anwendung per TCP Verbindung die Daten in der Art von TSNAME:OK:ZEIT sendet.
Allerdings wäre natürlich auch eine Art Session Nummer nicht schlecht, um zu sehen, in welcher Reihenfolge die Verbindungen zu Stande gekommen sind.
Achja und die Verbindungen werden über das Citrix Online Plugin (wfcrun32.exe) gestartet. Da ist leider nix mit Parameter übergeben. Aber das Sitzungsstarten funktioniert einwandfrei.
Danke für eure Ideen.
Achja und die Verbindungen werden über das Citrix Online Plugin (wfcrun32.exe) gestartet.
Hallo,
es geht hier also um das Loggen von Start von Citrix XenApp bzw. User Session? Wenn ja, dann hat der XenApp doch schon eigene Logging und Monitoring, warum das Rad neuerfinden?
Grüße
**:::
Weil Citrix/XenApp keine richtige Verbindung aufbaut. Die schauen nur, ob z.B. der IMA Dienst läuft.
Aber es hängen ja doch noch einige mehr Faktoren ab, ob die Sitzung wirklich sauber gestartet werden kann. Wir hatten selbst schon den Fall, dass laut Monitoring alles in Ordnung war und einer von 10 Hosts zwar angefangen hat die Sitzung aufzubauen, doch mittendrin ist der Prozess einfach hängen geblieben.
Daher die Anwendung und die Frage wie ich aus der Sitzung heraus den Status am besten reporten kann.
Hallo,
ich würde mir eine Struct aufbauen.
Dann erstellt du ein Array dieser Struct für deine Server.
Du durchläufst das Array und versuchst eine Verindung aufzubauen. Klappt es, stellst du die aktuellen Verbindungsversuche auf 0. Klappt es nicht, erhöhst du Verbindungsversuche um 1. Hast du die Anzahl der maximalen Verbindungsversuche erreicht (bzw. waren es 3), dann kommt die Fehlermeldung.
Viele Grüße
Christoph