Anonymous hat gesagt.:
Was muss ich beachten, wenn ich ein Java-Programm mit DB-Anbindung auf einem Terminalserver laufen lassen möchte? Ist ein MUSS vom Kunden.
Für die Clientseite gibt es normalerweise kein Problem. Problem wäre nur, wenn der Datenbankserver auch am Server läuft und jeder Client die Datenbank (im Servermodus) mitstarten will.
Bei uns im Haus setzen wir auch den (meisten) Usern einen Linuxdesktop vor die Nase. Die "nicht vermeidbaren Windowsanwendungen" - meistens Katalog- und Planungssoftware von den Lieferanten - laufen auf einem Terminalserver.
Hier ein paar "Leidenswege":
1.) Die Anwendung arbeitet immer mit den gleichen temporären Zwischendateien aus dem Programmverzeichnis. Wenn dann mehrere Leute parallel damit arbeiten, gibt es Fehlfunktionen und Abstürze.
Java Abhilfe: mit Systemwert user.dir arbeiten oder Zwischendateien vermeiden bzw. nummerieren
2.) Die Katalog-CD Xy bringt eine Datenbank z.B. Firebird mit. Beim Start der Katalog-Software wird die Datenbank gestartet, die Software greift mittels TCP darauf zu. Wenn ein weiterer User die Software startet, schlägt das fehl, weil die Datenbank nicht noch einmal gestartet weden kann (der Netzwerkport ist bereits belegt).
2a) Verschiedene Hersteller arbeiten mit der selben Datenbank und kommen sich dann auch mit dem Port ins Gehege.
Java Abhilfe: Mit einer embedded Datenbank wie H2 arbeiten (wenn jeder User für sich arbeiten soll).
3.) Mehrere Instanzen arbeiten mit den selben Registryeinträgen. Anstatt mit CurrentUser arbeiten die Anwendung mit CurrentMaschine (für Userdaten) und produzieren Fehlerfunktionen und Abstürze.
Ich habe nicht alle Fehlerursachen ausmachen können, aber wir haben hier einiges an Software das einfach nur für einen User läuft. Viele Probleme (Registry, externe embedded Datenbank) stellen sich in der Javawelt erst gar nicht.
/Robert