java 创建连接池失败,springboot启动连接池建立失败报错问题定位

最近由于项目的需要,使用了springboot做为定时任务调用存储过程。在部分环境中测试时,通过java -jar命令执行后,用kill -9命令直接杀掉进程的方式,并没有出现什么新建连接的异常。但是在预发布环境中碰到了这样的问题。

Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (IO Error: Connection reset)

at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)

... 40 common frames omitted

Caused by: java.sql.SQLRecoverableException: IO Error: Connection reset

at oracle.jdbc.driver.T4CConnection.(T4CConnection.java:228)

at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)

at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)

at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)

at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)

... 44 common frames omitted

Caused by: java.net.SocketException: Connection reset

at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)

at java.net.SocketOutputStream.write(SocketOutputStream.java:153)

at oracle.net.ns.DataPacket.send(DataPacket.java:199)

at oracle.net.ns.NetOutputStream.flush(NetOutputStream.java:211)

at oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:227)

at oracle.net.ns.NetInputStream.read(NetInputStream.java:175)

at oracle.net.ns.NetInputStream.read(NetInputStream.java:100)

at oracle.net.ns.NetInputStream.read(NetInputStream.java:85)

at oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:123)

at oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:79)

at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1122)

at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1099)

at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:288)

at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191)

at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:366)

at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:752)

at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:366)

... 52 common frames omitted

java.net.SocketException: Connection reset

This exception appears when the remote connection is unexpectedly and forcefully closed due to various reasons like application crash, system reboot, hard close of remote host. Kernel from the remote system sends out a packets with RST bit to the local system. The local socket on performing any SEND (could be a Keep-alive packet) or RECEIVE operations subsequently fail with this error. Certain combinations of linger settings can also result in packets with RST bit set.

--查看当前有哪些用户正在使用数据

SELECT osuser,

a.username,

a.OSUSER,

a.STATE,

a.STATUS,

a.PORT,

a.EVENT,

a.EVENT#,

cpu_time / executions / 1000000 || 's',

b.sql_text,

machine

from v$session a, v$sqlarea b

where a.sql_address = b.address

order by cpu_time / executions desc;

springboot的服务安装和部署,发现官方其实提供了安全的服务stop时的安全退出机制

sudo ln -s /var/myapp/myapp.jar /etc/init.d/myapp

service myapp start

其中生成的springboot服务的jar包为可执行文件,通过在pom文件中配置

org.springframework.boot

spring-boot-maven-plugin

true

参考资料:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值