sql >> Database teknologi >  >> RDS >> Mysql

MySQL Statement Cancellation Timer kunne ikke stoppe

(gammelt spørgsmål, men jeg stødte på den samme fejl/advarselsmeddelelse) Bruger du en jdbc-pulje med QueryTimeoutInterceptor eller ring til statement.setQueryTimeout(320) fungere. Den kalder en intern mysqljdbc.jar-tråd for at annullere langvarige forespørgsler.

Tomcat hotdeployment genkender det ikke, så tråden efterlades kørende og holder en død webapp-kontekst stadig i RAM.

  <Resource name="jdbc/BSManager" auth="Container" 
    type="javax.sql.DataSource" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
    initialSize="2" maxActive="100" maxIdle="10" maxWait="30000"    
    username="myuser" password="mypwd"
    driverClassName="com.mysql.jdbc.Driver" 
    jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.QueryTimeoutInterceptor(queryTimeout=320)"
    url="jdbc:mysql://127.0.0.1:3306/mydb?useUnicode=true&amp;characterEncoding=utf8"
        validationQuery="SELECT 1" removeAbandoned="true" removeAbandonedTimeout="7200"
        testOnBorrow="true" maxAge="1800000"
  />

Denne advarselsmeddelelse The web application [TI] appears to have started a thread named [MySQL Statement Cancellation Timer] but has failed to stop it sker, selvom denne lytter er aktiveret i tomcat/conf/server.xml fil. Jeg ved ikke, om død webapp frigives efter en forespørgselstimeout. Jeg har besluttet ikke at bruge en forespørgsel timeout med MySQL jdbc driver.

  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" 
        classesToInitialize="com.mysql.jdbc.NonRegisteringDriver" />



  1. Hvad er den bedste praksis for at begrænse bestemte sider til kun loggede brugere i Codeigniter?

  2. PHP Laravel:Der kunne ikke oprettes forbindelse, fordi målmaskinen aktivt afviste det

  3. JPA SQL Server Ingen dialekttilknytning for JDBC-type:-9

  4. Oprettelse af et relateret eller lignende indlæg ved hjælp af PHP &MySQL