【发布时间】:2020-12-25 06:20:09
【问题描述】:
有一种方法可以调用存储过程。根据输入,该过程可以运行很长时间。程序完成后,有一条更新语句。 HikariCP-Connection 泄漏在调用过程的方法中检测到,过程有时会失败。请提及为 HikariCP 更改的任何特定属性(当前使用默认属性)或为解决此问题而对代码进行的任何更改。
public void procedure (String[] names){
try(Connection connection = getJdbcTemplate().getDataSource().get connection()){
Oracle connection oracleConnection = connection.unwrap(OracleConnection.class);
AbstractSqlTypeValue names = new OracleArrayType(oracle connection,names);
.... //execute procedure
....// update status
}catch block
}
2020-08-20 14:01:24.880 WARN 14366 --- [l-1 管家] com.zaxxer.hikari.pool.ProxyLeakTask:线程、堆栈上的 oracle.jdbc.driver.T4CConnection 触发了连接泄漏检测跟踪跟踪
java.lang.Exception:检测到明显的连接泄漏 在 com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:128) ~[HikariCP-2.7.9.jar:na] 在 service.Procedure.execute(Procedure.java:58) ~[classes/:na] 在 service.Procedure.Procedure(Procedure.java:46) ~[classes/:na] 在 service.Procedure$$FastClassBySpringCGLIB$$f.invoke() ~[classes/:na] 在 org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) ~[spring-core-5.0.10.RELEASE.jar:5.0.10.RELEASE] 在 org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746) ~[spring-aop-5.0.10.RELEASE.jar:5.0.10.RELEASE] 在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.0.10.RELEASE.jar:5.0.10.RELEASE] 在 org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294) ~[spring-tx-5.0.10.RELEASE.jar:5.0.10.RELEASE] 在 org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98) ~[spring-tx-5.0.10.RELEASE.jar:5.0.10.RELEASE] 在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) ~[spring-aop-5.0.10.RELEASE.jar:5.0.10.RELEASE] 在 org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688) ~[spring-aop-5.0.10.RELEASE.jar:5.0.10.RELEASE] 在 service.ProcedureService$$EnhancerBySpringCGLIB$$8.Procedure() ~[classes/:na] 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] 在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] 在 java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
【问题讨论】:
标签: spring-boot oracle11g hikaricp