title: Java Thread Blocked 15 minutes, it happened by accident. Why did it have to happen?
body: <p>Here is the scene:</p>
  
  <ol>
  <li>Thread will be blocked accurate 15 minutes before database operation</li>
  <li>The database is normal, no slow query log</li>
  <li>when i monitor every step through 'pinpoint', when the block happened, setAutoCommit (false) method's gap time is 15 minutes(I think this is not the setAutoCommit method's execute time, it means the last method start to setAutoCommit method start used 15 minutes) </li>
  </ol>
  
  <p><a href="https://i.stack.imgur.com/9yJ9d.jpg" rel="nofollow noreferrer">pinpoint monitor image</a></p>
  
  <p>my sql string is : <code>jdbc:mysql:loadbalance://192.168.10.1:3306,192.168.10.2:3306/testdb</code></p>
  
  <p>the thread are blocked at com.mysql.jdbc.LoadbalancedConnectionProxy.doPing when connection pool check the connection is active or not. 15 minutes later, the thread continue to run, The system resource(cpu, memory..) are normal in this period. </p>
  
  <p>Is there any other reasons can make this situations happen?</p>
  
  <p>i use 'jstack -l' command to print the jvm stack when the thread is hanging.</p>
  
  <p><a href="https://i.stack.imgur.com/VngaX.jpg" rel="nofollow noreferrer">jvm stack dump file</a></p>