diff --git a/src/main/java/com/zaxxer/hikari/pool/HikariPool.java b/src/main/java/com/zaxxer/hikari/pool/HikariPool.java index 7565131d..244c89fb 100644 --- a/src/main/java/com/zaxxer/hikari/pool/HikariPool.java +++ b/src/main/java/com/zaxxer/hikari/pool/HikariPool.java @@ -222,7 +222,6 @@ public class HikariPool implements HikariPoolMBean, IBagStateListener closeConnection(bagEntry, "connection broken or evicted"); } else { - bagEntry.lastAccess = System.currentTimeMillis(); connectionBag.requite(bagEntry); } } diff --git a/src/main/java/com/zaxxer/hikari/pool/PoolBagEntry.java b/src/main/java/com/zaxxer/hikari/pool/PoolBagEntry.java index 4a88ac46..40d5d3a7 100644 --- a/src/main/java/com/zaxxer/hikari/pool/PoolBagEntry.java +++ b/src/main/java/com/zaxxer/hikari/pool/PoolBagEntry.java @@ -32,11 +32,11 @@ public final class PoolBagEntry implements IConcurrentBagEntry public final AtomicInteger state = new AtomicInteger(); public Connection connection; + public long lastAccess; public long lastOpenTime; public volatile boolean evicted; public volatile boolean aborted; - protected long lastAccess; private volatile ScheduledFuture endOfLife; diff --git a/src/main/java/com/zaxxer/hikari/proxy/ConnectionProxy.java b/src/main/java/com/zaxxer/hikari/proxy/ConnectionProxy.java index 3deca963..275f4509 100644 --- a/src/main/java/com/zaxxer/hikari/proxy/ConnectionProxy.java +++ b/src/main/java/com/zaxxer/hikari/proxy/ConnectionProxy.java @@ -51,6 +51,7 @@ public abstract class ConnectionProxy implements IHikariConnectionProxy private final PoolBagEntry bagEntry; private final FastList openStatements; + private long lastAccess; private boolean isCommitStateDirty; private boolean isConnectionStateDirty; private boolean isAutoCommitDirty; @@ -76,6 +77,7 @@ public abstract class ConnectionProxy implements IHikariConnectionProxy this.bagEntry = bagEntry; this.delegate = bagEntry.connection; this.leakTask = leakTask; + this.lastAccess = bagEntry.lastAccess; this.openStatements = new FastList(Statement.class, 16); } @@ -131,6 +133,7 @@ public abstract class ConnectionProxy implements IHikariConnectionProxy public final void markCommitStateDirty() { isCommitStateDirty = true; + lastAccess = System.currentTimeMillis(); } // *********************************************************************** @@ -139,6 +142,7 @@ public abstract class ConnectionProxy implements IHikariConnectionProxy private final T trackStatement(final T statement) { + lastAccess = System.currentTimeMillis(); openStatements.add(statement); return statement; @@ -205,6 +209,7 @@ public abstract class ConnectionProxy implements IHikariConnectionProxy } finally { delegate = ClosedConnection.CLOSED_CONNECTION; + bagEntry.lastAccess = lastAccess; parentPool.releaseConnection(bagEntry); } }