java - Tomcat memory leak warning - AS400 job threads not getting closed on shutdown/redeploy -


i have spring application running on tomcat 8.0 server following error when either stopping server or redeploying app on server.

info: closing spring root webapplicationcontext jul 25, 2016 10:18:40 org.apache.catalina.loader.webappclassloaderbase clearreferencesthreads warning: web application [app_name] appears have started thread named [as400 read daemon [system:*connectionurl*;job:768339/quser/qzdasoinit]] has failed stop it. create memory leak. stack trace of thread:  java.net.socketinputstream.socketread0(native method)  java.net.socketinputstream.socketread(unknown source)  java.net.socketinputstream.read(unknown source)  java.net.socketinputstream.read(unknown source)  com.ibm.as400.access.datastream.readfromstream(datastream.java:52)  com.ibm.as400.access.clientaccessdatastream.construct(clientaccessdatastream.java:58)  com.ibm.as400.access.as400threadedserver.run(as400threadedserver.java:357)  java.lang.thread.run(unknown source) 

i connecting as400 db jt400 maven dependency (version 9.0, though i've tried others), as400jdbcdriver. here how connection set in app's context.xml

  <resource name="jdbc/test_name"   auth="container"  driverclassname="com.ibm.as400.access.as400jdbcdriver"  factory="org.apache.tomcat.jdbc.pool.datasourcefactory"  initialsize="3"  logabandoned="true"  maxactive="100"  maxidle="40"  maxwait="30000"  minevictableidletimemillis="60000"  minidle="10"  password="*password*"  removeabandoned="true"  removeabandonedtimeout="60"  testonborrow="true"  testonreturn="false"  testwhileidle="true"  timebetweenevictionrunsmillis="30000"  type="javax.sql.datasource"  url="jdbc:as400:*connection url*;date format=iso;time format=iso;"  username="*username*"  validationinterval="30000"  validationquery="select current date sysibm.sysdummy1" /> 

the datasource declared in spring configuration file:

  <bean id="datasourcetester" class="org.springframework.jndi.jndiobjectfactorybean">       <property name="jndiname" value="java:comp/env/jdbc/test_name"/>   </bean> 

and have dozens of beans using datasource.

  <bean id="testtesterdao" class="*class  url*" scope="request"> <property name="datasource" ref="datasourcetester" /> 

so problem is, when stop tomcat or redeploy, greeted number of these messages threads have failed stop. know comes connection source because when change "initialsize" attribute (like 3 5), many messages when server stops. it's clear of these connections being opened connection pool not getting terminated.

when server shuts down, threads dissappear (obviously, server doesn't exist anymore), when redeploy, these threads stay open. know because can go on as400 machine , find open job, , dont seem time out.

i've tried bunch of things, have servletcontextlistener deregisters driver (which got rid of that warning, not these), have tried moving jt400.jar tomcat/lib folder (but can't tell if working off of there or not when run it), , i've tried tweaking settings , trying different versions of jt400.jar. no luck.

any advice or appreciated.


Comments

Popular posts from this blog

jOOQ update returning clause with Oracle -

java - Warning equals/hashCode on @Data annotation lombok with inheritance -

java - BasicPathUsageException: Cannot join to attribute of basic type -