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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 79832
Url: https://administrator.de/contentid/79832
Ausgedruckt am: 22.11.2024 um 17:11 Uhr
1 Kommentar
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
Aber wie gesagt: könnte man mal testen ...
ciao pacobay