| 

.NET C# Java Javascript Exception

4
Ich habe eine einfache Kundenverwaltung als Java-App entwickelt und greife dabei auf einen MySQL-Server zu. Diese Anwendung läuft ganz einfach auf einem Windows-PC. Nun habe ich folgendes Problem: Wenn der Anwender den MySQL-Server nicht automatisch startet, crasht meine Applikation. Ich muss also prüfen, ob eine Serverinstanz mit meiner DB geladen ist und falls nein, diese starten. Wie mache ich so etwas am Besten?
02.12.2011
Smalls 11 1
2
Als erstes solltest du Exceptions richtig behandeln. Also eine Meldung ausgeben, wenn es sich nicht zur DB verbinden konnte.
LiRo 02.12.2011
Das ist schon mal gut. Aber welchem Benutzer (DAU) traust du zu einen Dienst zu starten? Darum kann man ja mal versuchen ober man den Dienst selber starten kann.
Karl 05.12.2011
1 Antwort
1
Sofern der MySQL Server als Service / Dienst eingerichtet ist, kannst du folgende Dinge versuchen:

Unter Windows gibt es das Kommandozeilenprogramm "sc", mit ihm ist es unter anderem möglich den Status eines Dienstes abzufragen.

String[] command = { "cmd", "/c", "sc", "query", "servicename" };
Process process = Runtime.getRuntime().exec(command);
BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = input.readLine();
if (line == "blubb") { .. } // Musst schauen was drin steht, STATE: gibt dir den status


Über folgenden Befehl kannst du den Dienst starten:

String[] command = { "cmd", "/c", "net", "run", "servicename" };
Process p = Runtime.getRuntime().exec(command);


Grüße
04.12.2011
Nicolai Schönberg 2,3k 1 8
Geht das auch mit Windows Vista und Konsorten? Auch mit eingeschalteter UAC?
Karl 05.12.2011
In Win7 gibt es die Befehle aufjedenfall. Wie es mit UAC aussieht kann ich dir aus dem Kopf leider nicht beantworten, müsste ich selbst ausprobieren (Und ich hab grad kein Win7 zur Hand).
Nicolai Schönberg 05.12.2011

Stelle deine Java-Frage jetzt!