Erstmal Hallo an alle User :toll:
Da ich hier neu und noch nicht mit allen Feinheiten vertraut bin, bitte ich darum, mich auf die Dinge hinweisen, die u. U. durch Unwissenheit falsch mache - Danke
Zu meinem Problem: in der Anwendung, die ich vor einiger Zeit übernommen habe, wird ziemlich zu Beginn ein neuer ServerSocket mit einem fix definierten Port angelegt. Dies soll verhindern, die auf dem gleichen PC eine zweite Instanz gestartet werden kann, da ja eigentlich beim zweiten Start mit dem gleiche Port eine BindException geworfen wird ...
Hier der relevante Code:
Es ist in den letzten Monaten mehrfach aufgefallen, dass die erwartete BindException auf einzelnen PCs nicht geworfen wird!
Die Rechner laufen mittlerweile allesamt unter Java6 und (derzeit noch) XP Prof.
Hat irgendjemand eine Idee, woran dies liegen kann resp. wie ich ggf. sonst den Start einer zweiten Instanz verhindern kann?
Danke im voraus :applaus:
Gruß
Klaus
Da ich hier neu und noch nicht mit allen Feinheiten vertraut bin, bitte ich darum, mich auf die Dinge hinweisen, die u. U. durch Unwissenheit falsch mache - Danke
Zu meinem Problem: in der Anwendung, die ich vor einiger Zeit übernommen habe, wird ziemlich zu Beginn ein neuer ServerSocket mit einem fix definierten Port angelegt. Dies soll verhindern, die auf dem gleichen PC eine zweite Instanz gestartet werden kann, da ja eigentlich beim zweiten Start mit dem gleiche Port eine BindException geworfen wird ...
Hier der relevante Code:
Java:
protected ServerSocket listenerSocket = null;
...
private void checkMultiWorkers()
{
// Mutexserverport zur Instanzenkontrolle des Workers
// ist im Original in einer Config-Datei deklariert!!
public static final int nMutexServerport = 62987;
try
{
listenerSocket = new ServerSocket( nMutexServerport );
}
catch( Exception ex )
{
ex.printStackTrace( );
JOptionPane.showMessageDialog( this,
"Es ist bereits eine Programminstanz auf diesem System aktiv.\n" +
"Sollte dies nicht der Fall sein, bitte den Rechner neu starten !",
"Fehler", JOptionPane.ERROR_MESSAGE, null );
System.exit( -2 );
}
} // checkMultiWorkers
Es ist in den letzten Monaten mehrfach aufgefallen, dass die erwartete BindException auf einzelnen PCs nicht geworfen wird!
Die Rechner laufen mittlerweile allesamt unter Java6 und (derzeit noch) XP Prof.
Hat irgendjemand eine Idee, woran dies liegen kann resp. wie ich ggf. sonst den Start einer zweiten Instanz verhindern kann?
Danke im voraus :applaus:
Gruß
Klaus
Zuletzt bearbeitet: