clo*_*ker 5 spring hibernate spring-boot
我有一个使用 Oracle 数据源的 Spring Boot 应用程序,它在启动时冻结。控制台输出的最后消息是:
[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
Run Code Online (Sandbox Code Playgroud)
之后它只是无限期地挂起。不再输出调试消息,什么也没有发生。我已经让它在那里坐了几个小时,但什么都没有。
奇怪的是,一切正常。没有进行任何更改。突然间这开始发生,我不知道为什么它只是冻结。
很难判断您提供的信息会发生什么,我只能提出一些可以阐明正在发生的事情的事情:
尝试进行线程转储,看看每个线程到底做了什么。如果您将进行一些线程转储,并且会看到看起来相关的线程卡在某个地方,您可能能够从堆栈跟踪中更好地理解原因。
为 DEBUG 启用日志,您说没有出现调试消息,但在代码段中,您只显示了几条 INFO 消息。您可以从为 DEBUG 设置 spring 和 hibernate 日志开始。
尝试连接到空数据库 - 也许它会在初始化期间尝试读取某些内容(例如元数据)并且花费的时间太长(尽管我认为它不会花费数小时),但仍然......
您可以尝试查看启动过程中正在执行哪些SQL。只需将 hibernate 的“show sql”属性设置为 true,也许它会有所帮助
您还可以在 spring 中放置一个断点以查看哪个 bean 卡住并尝试从其代码中了解发生了什么(我知道它有点模糊,但重点是找到哪个 bean 无法启动并对其进行调试) .
归档时间: |
|
查看次数: |
6943 次 |
最近记录: |