schwinni79
Goto Top

Prozessanzahl pro User einschränken

Terminalserverressourcen besser verwalten

Hallo zusammen,

wir haben bei uns im Unternehmen eine recht speicherintensive Javaanwendung im Einsatz, die auch von sehr vielen Terminalserverusern genutzt wird. Für jede Programminstanz werden über 100 MB Arbeitsspeicher gezogen. Bei vielen Usern kann das zu Engpässen auf den Servern führen.

Eigentlich sind die Server ausreichend mit RAM versehen worden, aber wir haben nicht die hohen Ansprüche der User bedacht: Startet die Javaanwendung nicht binnen 2 Sekunden nach dem Doppelklick, wird erneut geklickt. Dieses Spiel kann sich durchaus 17 Mal wiederholen - und das in einer Usersitzung. Wir haben über 25 dieser Experten!

Kann man per VB erzwingen, dass für manche Benutzer z.B. der Prozess mit dem Namen "javaw.exe" nur einmal ausgeführt werden darf? Dann können die ihr Programm genau einmal starten und wenn es mal länger dauert, dann müssen die eben warten....

Vielen Dank für die Hilfe!

Michael Student

Content-ID: 79832

Url: https://administrator.de/contentid/79832

Ausgedruckt am: 22.11.2024 um 17:11 Uhr

pacobay
pacobay 08.02.2008 um 02:37:31 Uhr
Goto Top
Prozess mit dem Namen "javaw.exe" nur einmal ausgeführt werden darf

Dies würde doch bedeuten, dass sonst auch keine andere Java Applikation laufen könnte ??
Bzw sofern der anwender bereits eine andere Javaanwendung am laufen hat, dann kann er nicht mehr die terminalApp zu laufen bringen. Ist dies wirklich in deinem Sinne?

Weil deine Anfrage schon ein paar Tage schmorrt und du bisher noch keine Anwort hast
scheint dies wohl nicht so easy going zu gehen. ?????

Daher ein "Versuch" eines anderen Ansatzes.
Bin deshalb so vorsichtig weil:
Ich bin mir nicht sicher ob es funktioniert und ob es wirklich eine gute Idee ist.
Auch ist es im eigentlichen Sinne nicht die gewünschte Lösung sondern nur ein Ansatz zu einem Workarround der mir spontan einfiel und der eher von hinten durch die Brust ist.
Daher würde ich dieses Ansatz eher unter der Kategorie "wenn gar nichts anderes kommt dann vielleicht mal probieren"


der ansatz
Die java Applikation wird nicht mehr direkt aufgerufen sondern innerhalb einer HTA.
In der HTA könnte innerhalb des HTA -TAG mit (singleinstance="yes") dafür gesorgt werden das dieser Aufruf praktisch nur einmal gleichzeitig möglich ist weil die HTA nur einmal gleichzeitig laufen kann.
vgl: http://msdn2.microsoft.com/en-us/library/ms536471(vs.85).aspx

der button zum Starten der Java Applikation
hat gleichzeitig einen Zähler Anzahl der Klicks wenn x>1 dann kein neuer Aufruf
sonder meldung: geduld!!!

weiterhin gehe ich davon aus (ohne es zu wissen oder es gar mal mit einer java app via terminalserver gestestet zu haben) das ich irgendwie fesstellen kann das Java Applikation wirklich zur verfügung steht vgl.: hierzu z.b. WshScriptExec-Objekt und Object.Status

Wenn dies dann der Fall wäre sollte sich dann die HTA selbständig verabschieden
if Object.Status = xy then quit

Zusätzlich müßte noch abgefangen werden, dass die lieben User nicht einfach die HTA schliessen und neu starten und doch wieder eine neuen Aufruf machen

Eine Idee wäre wenn HTA beendet wird (also wenn HTA ohne die vorgesehene automatik geschlossen wird ) dann wird die Anforderung zuerst gecancelt)
Wie ??? noch keine idee

Sollten die ganz schlauen Jungs auf die Idee kommen den Process der HTA (mshta.exe) zu killen um doch wieder das ganze zu umgehen dann unter Umständen noch eine zeitblokade einbauen
(z.b. via Regwert "last aufruftime" der jeweils mit aufruf der app via button immer neu gesetzt wird)
dann wäre sowas möglich wie:
if weniger als x sec dann msgbox: hallo ganz kluger ! ist aber nicht face-wink

Aber wie gesagt: könnte man mal testen ...

ciao pacobay