簡體   English   中英

IO錯誤:在部署JAR文件一段時間后,連接在Spring Boot中超時了嗎?

[英]IO Error: Connection timed out in spring boot after sometime of deploy JAR file?

我已經在我的server上部署了jar文件,該文件是從spring boot application創建的。 這樣我們就使用了embedded tomcat

我已經為此application在1- java類中設置了以下database configured

import org.apache.commons.dbcp.BasicDataSource;
    ...
    @Bean
    public DataSource dataSource() {
        //DriverManagerDataSource dataSource = new DriverManagerDataSource();
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName(environment.getRequiredProperty("spring.datasource.driverClassName"));
        dataSource.setUrl(environment.getRequiredProperty("spring.datasource.url"));
        dataSource.setUsername(environment.getRequiredProperty("spring.datasource.username"));
        dataSource.setPassword(environment.getRequiredProperty("spring.datasource.password"));
        dataSource.setMaxActive(10);
        dataSource.setMaxIdle(3);
        dataSource.setMaxWait(environment.getRequiredProperty("spring.datasource.tomcat.max-wait"));
        dataSource.setTestOnBorrow(environment.getRequiredProperty("spring.datasource.tomcat.test-on-borrow"));
        dataSource.setInitialSize(environment.getRequiredProperty("spring.datasource.tomcat.initial-size"));
        return dataSource;
    }

我注意到在部署最初的幾分鍾時。 工作正常。 但是經過一段時間后,會因以下錯誤而開始操作,

     WARN   SQL Error: 17002, SQLState: 08006
     ERROR  IO Error: Connection timed out (Read failed)
     WARN   SQL Error: 0, SQLState: null
     ERROR  Already closed.
     ERROR  Forwarding to error page from request [/client] due to exception [Could not commit Hibernate transaction; nested exception is org.hibernate.TransactionException: Unable to commit against JDBC Connection]
    org.springframework.transaction.TransactionSystemException: Could not commit Hibernate transaction; nested exception is org.hibernate.TransactionException: Unable to commit against JDBC Connection
        at org.springframework.orm.hibernate5.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:586) ~[spring-orm-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761) ~[spring-tx-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730) ~[spring-tx-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:504) ~[spring-tx-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:292) ~[spring-tx-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) ~[spring-tx-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:136) ~[spring-tx-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:133) ~[spring-data-jpa-1.11.0.RELEASE.jar!/:?]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) ~[spring-aop-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke(SurroundingTransactionDetectorMethodInterceptor.java:57) ~[spring-data-commons-1.13.0.RELEASE.jar!/:?]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) ~[spring-aop-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
        at com.sun.proxy.$Proxy129.findUserWithCompanyInfo(Unknown Source) ~
[?:?]
Caused by: org.hibernate.TransactionException: Unable to commit against JDBC Connection
    at org.hibernate.resource.jdbc.internal.AbstractLogicalConnectionImplementor.commit(AbstractLogicalConnectionImplementor.java:86) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
    at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:232) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
    at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:65) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
    at org.springframework.orm.hibernate5.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:582) ~[spring-orm-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
    ... 111 more
Caused by: java.sql.SQLRecoverableException: IO Error: Connection timed out (Read failed)
    at oracle.jdbc.driver.T4CConnection.doCommit(T4CConnection.java:665) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:3901) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:3907) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at org.apache.commons.dbcp.DelegatingConnection.commit(DelegatingConnection.java:301) ~[commons-dbcp-1.2.2.jar!/:1.2.2]
    at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.commit(PoolingDataSource.java:200) ~[commons-dbcp-1.2.2.jar!/:1.2.2]
    at org.hibernate.resource.jdbc.internal.AbstractLogicalConnectionImplementor.commit(AbstractLogicalConnectionImplementor.java:80) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
    at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:232) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
    at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:65) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
    at org.springframework.orm.hibernate5.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:582) ~[spring-orm-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
    ... 111 more
Caused by: java.net.SocketException: Connection timed out (Read failed)
    at java.net.SocketInputStream.socketRead0(Native Method) ~[?:1.8.0_121]
    at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) ~[?:1.8.0_121]
    at java.net.SocketInputStream.read(SocketInputStream.java:171) ~[?:1.8.0_121]
    at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[?:1.8.0_121]
    at oracle.net.ns.Packet.receive(Packet.java:300) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.net.ns.DataPacket.receive(DataPacket.java:106) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:315) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.net.ns.NetInputStream.read(NetInputStream.java:260) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.net.ns.NetInputStream.read(NetInputStream.java:185) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.net.ns.NetInputStream.read(NetInputStream.java:102) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:124) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:80) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1137) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:290) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.jdbc.driver.T4C7Ocommoncall.doOCOMMIT(T4C7Ocommoncall.java:75) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.jdbc.driver.T4CConnection.doCommit(T4CConnection.java:610) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:3901) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:3907) ~[ojdbc6-11.2.0.3.jar!/:11.2.0.3.0]
    at org.apache.commons.dbcp.DelegatingConnection.commit(DelegatingConnection.java:301) ~[commons-dbcp-1.2.2.jar!/:1.2.2]
    at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.commit(PoolingDataSource.java:200) ~[commons-dbcp-1.2.2.jar!/:1.2.2]
    at org.hibernate.resource.jdbc.internal.AbstractLogicalConnectionImplementor.commit(AbstractLogicalConnectionImplementor.java:80) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
    at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:232) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
    at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:65) ~[hibernate-core-5.0.11.Final.jar!/:5.0.11.Final]
    at org.springframework.orm.hibernate5.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:582) ~[spring-orm-4.3.6.RELEASE.jar!/:4.3.6.RELEASE]
    ... 111 more

誰能指導我哪里出了問題? 正是在programming side或在network side是這樣的issue

我認為引導正在為您配置DataSource。 您可以將以下內容添加到application.properties

spring.datasource.validation-query =選擇1

spring.datasource.test上借入=真

我將這些添加到我的配置中,並且可以正常工作。 請檢查。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM