1Danke
ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
473
473
EMPFEHLEN
-
26.02.09 15:51 #1
Servus,
ich verwende Hibernate für mein kleines Projekt. Es gibt eigentlich auch keine Besonderheiten daran.
Ich würde innerhalb meines Programms von Zeit zu Zeit abfragen wollen, ob die Verbindung noch intakt ist.
Leider macht es nicht viel Sinn im Standardverhalten von Hibernate die Methoden session.isClosed() oder session.isConnected() aufzurufen. Diese liefern immer true zurück.
Allerdings bin ich bereit zu glauben, dass man diese Methoden nicht aus Langeweile erstellt hat. Ich denke mir, dass es vielleicht nur eine Einstellungssache ist. Nur leider fehlt mir die Kenntniss. Ich habe keine Ahnung wie diese Option heißt. Ich dachte, dass es vieleicht die Eigenschaft "testonborrow" ist, nur leider brachte das keinen Erfolg. Kann mit einer helfen?
Hier meine config:
Code xml:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
<hibernate-configuration> <session-factory> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">***</property> <property name="connection.username">***</property> <property name="connection.password">***</property> <!--<property name="hibernate.show_sql"> true</property> --> <property name="connection.autocommit">true</property> <property name="testOnBorrow">true</property> <mapping class="chronos.persistence.entities.Booking"/> <mapping class="chronos.persistence.entities.Card"/> <mapping class="chronos.persistence.entities.CardHistory"/> </session-factory> </hibernate-configuration>
Ich hab keine Ahnung.
Aber davon jede Menge.
-
26.02.09 16:17 #2
Eine Session ist etwas anderes als eine Verbindung. Desweiteren hoffe ich, dass du die Session nicht über die ganze Applikationszeit aufrecht erhältst. D.h was du effektiv machen kannst, istr schauen, ob du gerade eben eine Verbindung aufbauen kannst (und dann annehmen, dass Hibernate das auch kann). Im Normalfall reicht ein manueller SELECT auf irgendeine bekannte Tabelle via plain JDBC.
Gruß
OllieIn theory, there is no difference between theory and practice. In practice, there is!
www.olivergierke.de
-
26.02.09 17:38 #3
Unwissend wie ich bin, habe ich schon versucht diese eine Session die ganze Zeit über aufrecht zu erhalten. Ich hole mir die Session wie folgt:
java Code: SessionFactory sf = new AnnotationConfiguration().configure().buildSessionFactory();
session = sf.openSession();
Und das einzige, das ich bisher wirklich damit mache ist:
java Code: session.save(myObject);
Dein Vorschlag zur Überwachung ist schon eine gute Alternative, aber eigentlich möchte ich ja wissen, ob Hibernate selbst eine Verbindung zu DB hinbekommt und halten kann.OK das mit dem Testobject laden lassen klingt auch gut (und das werde ich auch machen, wenn sich nicht noch eine bessere Lösung anbietet)
PS: Ich bin gern bereit das mit der dauerhaften Session zu ändern, aber ich bin halt einer der es immer genau wissen will. Kannst Du mir also sagen, was daran verwerflich ist?Ich hab keine Ahnung.
Aber davon jede Menge.
-
26.02.09 18:04 #4
Eine Session ist, wie der Name schon sagt, ein "Arbeitszyklus" von Hibernate. D.h. alles, was darn passiert, bleibt solange im Speicher bis jemand die Session schließt. Wenn du die jetzt die ganze Zeit offen hältst, hast du nach ner gewissen Zeit die komplette DB im Speicher -> ungut. Desweiteren gehen die dirtyread checks über alle Objekte in der Session was bedeutet, dass die mit zunehmender Größe immmer langsamer werden...
Im Idealfall konfiguriert man sich eine DataSource und lässt Hibernate mit der arbeiten. Das hat den Vorteil, dass man auch an Hibernate vorbei recht leicht die DB pingen kann.
Gruß
OllieIn theory, there is no difference between theory and practice. In practice, there is!
www.olivergierke.de
-
27.02.09 09:57 #5
Ok. Danke. Das hat mich überzeugt. Damit wurde mein Problem gelöst.
Ich hab keine Ahnung.
Aber davon jede Menge.
Ähnliche Themen
-
Script zum Verbindungstest?
Von Niklas1812 im Forum PHPAntworten: 3Letzter Beitrag: 06.02.10, 11:05 -
MySql verbindungstest ohne PHP Fehlermeldung?
Von trage im Forum PHPAntworten: 3Letzter Beitrag: 23.05.09, 10:18 -
Socket verbindungstest
Von fettyteddy im Forum C/C++Antworten: 6Letzter Beitrag: 05.11.08, 11:59 -
Verbindungstest zu einer Datenbank auf einem Sql Server!?
Von Ardro im Forum Visual Basic 6.0Antworten: 0Letzter Beitrag: 09.01.08, 14:37 -
Verbindungstest zu einer Datenbank auf einem Sql Server!?
Von Ardro im Forum Visual Basic 6.0Antworten: 0Letzter Beitrag: 09.01.08, 14:37





Zitieren
Login





