2017-12-18 5 views
0

Ich habe eine Spring Boot App mit einer Oracle-Datenquelle, die beim Start einfriert. Die letzten Meldungen auf der Konsole ausgegeben werden:Spring Boot App beim Start eingefroren

[2017-12-18T15:34:19,425] INFO org.hibernate.dialect.Dialect HHH000400: Using dialect: org.hibernate.dialect.Oracle10gDialect 
[2017-12-18T15:34:27,186] INFO org.hibernate.hql.internal.QueryTranslatorFactoryInitiator HHH000397: Using ASTQueryTranslatorFactory 

Danach wird es auf unbestimmte Zeit gerade hängt. Es werden keine Debug-Meldungen mehr ausgegeben und nichts passiert. Ich lasse es stundenlang dort sitzen, aber nichts.

Das komische Ding ist, dass alles gut funktionierte. Es wurden keine Änderungen vorgenommen. Plötzlich fing das an, und ich habe keine Ahnung, warum es nur friert.

+0

Es ist möglich, dass die Datenbank, mit der Sie eine Verbindung herstellen möchten, nicht verfügbar ist. [Siehe Problem] (https://github.com/spring-projects/spring-boot/issues/7589) – Lethalskillzz

+0

Ich kann manuell mit der Datenbank verbinden, so dass es verfügbar ist. – cloudwalker

Antwort

1

Es ist schwer zu sagen, was aus den Informationen geschieht, Sie zur Verfügung gestellt haben, kann Ich schlage vor, nur ein paar Dinge, die etwas Licht auf vergießen können, was los ist:

  1. Try Thread-Dump nehmen und sehen, was genau jeder Thread macht. Wenn Sie einige Thread-Dumps nehmen und sehen werden, dass der Thread, der relevant aussieht, irgendwo hängen bleibt, werden Sie wahrscheinlich in der Lage sein, den Grund des StackTrace besser zu verstehen.

  2. Aktivieren Sie Protokolle für DEBUG, Sie sagen, dass keine Debugmeldungen angezeigt werden, aber im Snippet haben Sie nur einige INFO-Nachrichten angezeigt. Sie können wahrscheinlich damit beginnen, Spring- und Hibernate-Logs für DEBUG festzulegen.

  3. Versuchen Sie sich mit der leeren Datenbank zu verbinden - vielleicht versucht es etwas während der Initialisierung zu lesen (Zeug wie Metadaten) und es dauert zu lange (obwohl ich glaube nicht, dass es Stunden dauern sollte), aber immer noch ...

  4. Sie können versuchen zu sehen, welche SQLs beim Start ausgeführt werden. Setzen Sie einfach die "show sql" -Eigenschaft von hibernate auf true und vielleicht hilft es auch ein bisschen vage, aber der Punkt ist zu finden, welche Bean nicht startet und nur debuggen).

+0

Sorry, ich hätte mehr klären sollen. Ich habe die Root-Logger auf DEBUG gesetzt, es gibt gerade keine Debug-Level-Nachrichten zu diesem Zeitpunkt ausgegeben werden. Die Datenbank ist tatsächlich leer. Es ist eine brandneue Datenbank. Ich habe auch sql Tracing Hibernate, aber keine SQL ausgeführt wird. Ich habe versucht, durch Spring zu debuggen, aber ich habe keinen Ort gefunden, an dem es tatsächlich "festgefahren" wird. – cloudwalker

+0

Haben Sie Thread-Dumps versucht? –

+0

Ja, nichts Verdächtiges kam aber heraus. JEDOCH habe ich gerade bemerkt, dass es etwas gibt, das alle Protokollanweisungen nach der letzten Zeile verschluckt. Und von dem, was ich sagen kann, gibt es eine Art "unendliche" Schleife, die versucht, die Metadaten zu lesen, also ist etwas wackelig. Ich denke, ich werde versuchen, die Datenbank zu vernichten und neu anzufangen, obwohl es frisch ist. – cloudwalker

Verwandte Themen