在docker集装箱几分钟后,弹簧启动连接重置

后端运行在docker容器中。 它与春季启动和安全运行,工作正常。 前端也在另一个容器中运行。 所有工作正常,直到出现这个exception抛出。 我只是在闲置几分钟之后才注意到这个exception(通常在5到10分钟之间)。

警告1 — [nio-8080-exec-2] ohengine.jdbc.spi.SqlExceptionHelper:SQL错误:0,SQLState:08S01
错误1 — [nio-8080-exec-2] ohengine.jdbc.spi.SqlExceptionHelper:I / O错误:连接重置
ERROR 1 — [nio-8080-exec-2] oaccC [。[。[/]。[dispatcherServlet]:Servlet.service()用于servlet [dispatcherServlet]上下文中的path []引发exception[Request processing failed; 嵌套的exception是org.springframework.dao.DataAccessResourceFailureException:无法提取ResultSet; 嵌套的exception是org.hibernate.exception.JDBCConnectionException:无法提取ResultSet]的根本原因

java.net.SocketException:连接重置在java.net.SocketInputStream.read(SocketInputStream.java:209)〜[na:1.8.0_111内部]在java.net.SocketInputStream.read(SocketInputStream.java:141)〜[ na:1.8.0_111-internal]在java.io.DataInputStream.readFully(DataInputStream.java:195)〜[na:1.8.0_111-internal]
…..

与数据库的连接始终可用。 奇怪的是,这个错误是只有当我运行我的项目与docker。 如果我用eclipse和node.js运行它,错误不会发生。 我注意到的唯一的事情是,在我进入和闲置几分钟之后,当我试图做某事的时候,我被自动消除了。 我不知道这是否与原有的错误有任何关系。

application.properties

spring.datasource.url=databaseURL spring.datasource.username=SQLusername spring.datasource.password=Password spring.datasource.driver-class-name=net.sourceforge.jtds.jdbc.Driver spring.datasource.initialSize=100 spring.datasource.minIdle=10 spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.EJB3NamingStrategy spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl spring.datasource.tomcat.max-active=250 spring.datasource.tomcat.max-wait=30000 spring.datasource.test-on-borrow=true spring.datasource.test-while-idle=true spring.datasource.minEvictableIdleTimeMillis=21600000 spring.datasource.timeBetweenEvictionRunsMillis=43200000 spring.datasource.connection-test-query=SELECT 1 spring.datasource.validationQuery=SELECT 1 

我很高兴每一个build议,可以帮助解决这个proplem。

Interesting Posts