2017-03-28 8 views
0

Ich verbinde HANA DB via ngdbc.jar. Die Verbindung wird ordnungsgemäß hergestellt, aber nach 3-4 maliger Abfrage geht die Verbindung zur HANA-DB verloren. Wenn ich meinen JAVA-Server neu starte, funktioniert es 3-4 mal. Kann jemand helfen? Check error description hereVerbindungsproblem beim Verbinden mit HANA DB via JDBC

Fehler msg-

WARN [org.hibernate.util.JDBCExceptionReporter] (http--0.0.0.0-8080-6) SQL Error: -708, SQLState: 08006 
ERROR [org.hibernate.util.JDBCExceptionReporter] (http--0.0.0.0-8080-6) Data receive failed [Connection reset]. 
INFO [com.ultimatix.controller.MetricsController] (http--0.0.0.0-8080-6) context setMonthFreezeDateorg.hibernate.exception.JDBCConnectionException: could not execute query 
ERROR [org.hibernate.transaction.JDBCTransaction] (http--0.0.0.0-8080-6) JDBC rollback failed: com.sap.db.jdbc.exceptions.jdbc40.SQLNonTransientConnectionException: Connection to database server lost; check server and network status [System error: Socket closed] 
+0

Bitte senden Sie Fehlertext als Text, nicht als Bild –

+0

yup Verbindungen ablaufen können, verwenden Sie einen Verbindungspool und eine richtige „geistige Gesundheit überprüfen“ Abfrage. –

+0

wie man diese @RC macht. –

Antwort

0

Ich kann sehen Sie Hibernate verwenden basierend auf dem Protokoll.

Können Sie ein wenig auf Ihrem Stapel ausarbeiten?

Wie @RC sagte, sollten Sie das Verbindungs-Pooling in Betracht ziehen, anstatt direkte Verbindungen zu öffnen, wenn Sie dies auf Ihrem "JAVA" -Server tun.

Möglicherweise sind Sie halten die Verbindung zu lange offen und es Timeout.

Dies sind alles Vermutungen, bis Sie alle Protokolle oder Beispielcode freigeben können.

Eine weitere Sache, die nur mit dem ngjdbc-Treiber zusammenhängt, ist eine Verbindungseigenschaft "reconnect", die standardmäßig auf false gesetzt ist.

Grüße

+0

Ich öffne die Verbindung vor der Ausführung jeder Abfrage und schließen Sie es sofort in endlich Block nach Abfrage wird ausgeführt. Sitzung = this.sessionFactory.openSession(); und nach der Ausführung session.flush(); \t \t \t session.clear(); \t \t \t session.close(); –

+0

Hallo, basierend auf dem Namen der Methode, ich vermute, dass Sie eine Tabelle in SAP HANA aktualisieren. Sie haben jedoch nicht gesagt, ob Sie Ihre Änderung vorgenommen haben, bevor Sie den Flush geschlossen, geklärt und begangen haben. Haben Sie versucht, eine Reihe von SELECT-Anweisungen auszuführen? –