# javaw bleibt bei hsqldb hängen



## hans (18. Jun 2004)

Hallo!

Ich habe ein Programm, das auf eine hsqldb zugreift. Es läuft auch Fehlerfrei (soweit).
Wenn ich das Programm beende, wird javaw nicht mit beendet. Bei einem Neustart des Programmes läuft dann die Datenbank nicht richtig. 
Ich muss jedesmal javaw von Hand beenden.
Starte ich das Programm mit jawa anstatt jawaw gibt es keine Probleme, java wird richtig beendet.

Wo liegt das Problem?

Hans


----------



## Grizzly (18. Jun 2004)

Wahrscheinlich läuft noch irgendein Thread weiter. Schreib an das Ende Deines Programmes mal 
	
	
	
	





```
System.exit(0);
```


----------



## hans (18. Jun 2004)

Löst das Problem leider auch nicht. 

(Würde dann ja bei java auch auftrten).

Hans


----------



## Grizzly (18. Jun 2004)

Wir haben hier auch eine Anwendung, die mit hsqldb läuft. Bei der tritt das Problem allerdings nicht auf.


----------



## nollario (18. Jun 2004)

also wenn du 
	
	
	
	





```
system.exit
```
 aufrust, läuft die java vm noch? -> schau mal im top nach...

ein system.exit(-1) sollte alle Thread, Daemons (sowieso) und die VM killen... Und Hsql ist in dem Sinne nix anderes als ein Thread


----------



## Guest (18. Jun 2004)

Auch das bringt keine Verbesserung!  :bahnhof:


----------



## Grizzly (18. Jun 2004)

Also irgendwie kommt mir das merkwürdig vor. Das HSQLDB Probleme mit dem Zugriff auf die Datenbank hat, wenn das Programm nicht geschlossen wurde, ist klar, da ja die Dateien noch geöffnet sind. Aber das sich das Programm nach einem 
	
	
	
	





```
System.exit(0);
```
 nicht beendet... Das ist eigentlich nicht möglich. Bist Du wirklich sicher, dass das Programm auch an dem Aufruf vorbeikommt?

Wenn Du Eclipse als IDE einsetzt, solltest Du das Programm mal im Debug-Modus starten.


----------



## hans (18. Jun 2004)

Hallo!

Das Programm wird geschlossen, alle Fenster werden geschlossen. 

Das Programm kommt auch am System.exit(0) oder System.exit(-1)vorbei. 

Ich habe auch alle connections vorher nochmal geschlossen. 

Nur die Datenbank bleibt offen. Und die VM wird nicht beendet.

 :bahnhof:  :bahnhof:  :autsch:


----------



## Grizzly (18. Jun 2004)

Welche VM benutzt Du? Und vom welchem Hersteller?


----------



## Guest (21. Jun 2004)

Hallo!

 JRE  1.4.2


----------



## nollario (21. Jun 2004)

kannst du vielleicht mal den coden posten, wie du hsqldb startest/ ansprichst?


----------



## glob (26. Jul 2005)

Schreib eigene Händler und dann kannst exakt Verbindung schliessen.



public class WindowClosingHandler extends WindowAdapter {

	public WindowClosingHandler() {

	}

	public void windowClosing(WindowEvent pE) {

		if (DBHandler.isToUpdate()) {
			Toolkit.getDefaultToolkit().beep(); 
			int result = MyOptionPane.showConfirmDialog(null,Labels.sNotify_exitWithoutUpdate,
											           Labels.sNotify,
											           JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
			switch(result) {
		      	case JOptionPane.YES_OPTION :

					DBHandler.deleteUpdate();
*DBHandler.shutdown();*
					pE.getWindow().dispose();
					System.exit(0);
		            break;
				case JOptionPane.CLOSED_OPTION :
		        case JOptionPane.NO_OPTION :
					break;

			}
		} else {
*DBHandler.shutdown();*
			pE.getWindow().dispose();
			System.exit(0);
		}
    }

}


----------



## Bleiglanz (27. Jul 2005)

das ist ein echter "Bug" im HSQL, habich mal gelesen

da läuft irgendein nicht-dämon-thread einfach weiter, mach mal db.shutdown oder sowas


----------

