# DB connection überprüfen



## matthias333 (1. Jun 2005)

ich hab einen GUI wo in einer Statusbar angezeigt werden soll ob die Verbindung zur Datenbank steht oder nicht.
Wie kann ich das jetzt überprüfen und wie kann ich die Änderung in der GUI ausführen - brauch ich dazu einen Thread der die ganze Zeit läuft?

mfg matthias


----------



## DP (1. Jun 2005)

da es sich nicht um ein db-spezifisches problem handelt, habe ich das mal in die gui-ecke geschoben


----------



## matthias333 (1. Jun 2005)

die hauptfrage ist aber wie kann man überprüfen ob eine datenbank verbindung besteht oder nicht.  ???:L


----------



## ronny (1. Jun 2005)

hmmmm, so auf die schnelle.....
du könntest eine eigene "DBConnectionManger" Klasse schreiben, die selbst Zustände hält wie
isOpen, isClosed etc. und auch die zugehörigen Methoden wie open, close etc. die die Zustände
dann jenachdem setzt und die db-infos "nach unten" weiterreicht....

Wenn du jetzt open machst irgendwo in deiner app dann könntest du 
zentral an dieser Stelle einen PropertyChangeEvent (z. B.) feuern, den
du wiederum in deiner Gui abfängst und den text auf der statusbar jenachdem änderst.... 

allerdings müsstest du dann die view als listener an dem Manager
registrieren.... der Manager würde also gleichzeitig eine Art Model Funktion übernehmen..
und wäre selbst ein "PropertyChangeEventSender" mit allen nötigen add..() remove...() fire..() Methoden....
wäre aber in dem Fall, ich weiß ja nicht genau, was du vorhast, denkbar...


----------



## Bleiglanz (1. Jun 2005)

hol dir halt ein SELECT 1+1 und schau ob du 2 kriegst ( in einem anderen Thread alle 5 sekunden, ist aber nicht so toll)

ansonsten ist die Frage, ob du da eine offene Connection rumliegen hast und prüfen willst ob die noch da ist (timeout von der DB o.ä), oder ob du nicht lieber ggf. eine aufmachst...?


----------



## matthias333 (1. Jun 2005)

bis jetzt mach ichs so, dass ich sobald ich die connection öffne, ändere ich den wert in der statusbar auf "connected*.
wenn ich die verbindung trenne dann auf "disconnected".
das problem liegt jetzt darin, was passiert wenn die verbindung zum server unterbrochen ist (netzwerkkabel drausen, mysql server abgeschaltet oder was weiß ich).
jetzt hätt ich mir gedacht ich mach einen thread auf der immer überprüft ob die connection noch besteht (also mit timeout wäre es scho möglich, aber wie krieg ich den timeout in java).

@ronny: eine DBConnectionManager Klasse solls werden - oder so ähnlich  :roll: - gibts da schon was in die richtung das ich mir anschaun sollte?

mfg und thx for answers matthias


----------



## DP (2. Jun 2005)

matthias333 hat gesagt.:
			
		

> die hauptfrage ist aber wie kann man überprüfen ob eine datenbank verbindung besteht oder nicht.  ???:L



das war nicht ersichtlich


----------



## Bleiglanz (2. Jun 2005)

matthias333 hat gesagt.:
			
		

> das problem liegt jetzt darin, was passiert wenn die verbindung zum server unterbrochen ist (netzwerkkabel drausen, mysql server abgeschaltet oder was weiß ich).



lass das einfach liegen, solange du die connection nicht benutzt, bekommst du von so einem netzwerk fehler nix mit (wie auch?)

warum willst du ein einem thread andauernd select 1+1 machen um zu testen??

es reicht doch, wenn der user informiert wird, sobald er wieder zugreifen will...


----------



## ronny (2. Jun 2005)

Das mit dem thread und der user-info seh ich genauso wie Bleiglanz. 

Du könntest doch auch nen "Refresh" Button machen, der einfach den Status deiner
Connection (was auch immer du da hast) aktualisiert, so als "zusatzgimmick"....

Ansonsten reicht doch die user-info beim nächsten zugriff.... 

was hast du denn genau vor? willst du so ne art DB Manager machen, mit dem
man verschiedene DBs ansteuern kann zum überprüfen der Connections? 
Sowas wie DB-Visualizer?

Dafür reicht n "Refresh-Button" für die einzelnen Connections in deiner Liste,
der dann alles wieder aktualisiert auf Abruf..  :wink:


----------



## Guest (2. Jun 2005)

jo wahrscheinlich habt ihr recht, dass der user das eh erst mitbekommt sobald er auf die datenbank zugreift.

@ronny: eigentlich sollts nur ein programm werden das mit einer datenbank arbeitet und als feature wollt ich einbaun dass man sieht ob man verbunden ist oder nicht - ist aber mehr spielerei.

trotzdem thx für die kommentare


----------

