Thanks for pointing that out. I've changed the 'numTestsPerEvictionRun' parameter to 4, which would correctly evict max of 12 connections within 1hr i.e. between 3rd-4th hour of ideal connections. If you want to be extra cautious and don't want to keep ideal connection after 3hrs, you can start evecting after idealTimeout of 2hrs (i.e. set idleTimeoutMillis: 72000000) and you will be done evecting max of 12 connections from 2nd-3rd hour.