mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
improved DruidDataSource for profile
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.alibaba.druid.pool;
|
||||
|
||||
import com.alibaba.druid.pool.DruidAbstractDataSource.PhysicalConnectionInfo;
|
||||
import com.alibaba.druid.support.logging.Log;
|
||||
import com.alibaba.druid.support.logging.LogFactory;
|
||||
import com.alibaba.druid.util.JdbcConstants;
|
||||
@@ -47,6 +48,10 @@ public final class DruidConnectionHolder {
|
||||
private final long connectTimeMillis;
|
||||
private transient long lastActiveTimeMillis;
|
||||
private long useCount = 0;
|
||||
|
||||
private long lastNotEmptyWaitNanos;
|
||||
|
||||
private final long createNanoSpan;
|
||||
|
||||
private PreparedStatementPool statementPool;
|
||||
|
||||
@@ -65,11 +70,16 @@ public final class DruidConnectionHolder {
|
||||
private boolean discard = false;
|
||||
|
||||
public static boolean holdabilityUnsupported = false;
|
||||
|
||||
public DruidConnectionHolder(DruidAbstractDataSource dataSource, PhysicalConnectionInfo pyConnectInfo) throws SQLException {
|
||||
this(dataSource, pyConnectInfo.getPhysicalConnection(), pyConnectInfo.getConnectNanoSpan());
|
||||
}
|
||||
|
||||
public DruidConnectionHolder(DruidAbstractDataSource dataSource, Connection conn) throws SQLException{
|
||||
public DruidConnectionHolder(DruidAbstractDataSource dataSource, Connection conn, long connectNanoSpan) throws SQLException{
|
||||
|
||||
this.dataSource = dataSource;
|
||||
this.conn = conn;
|
||||
this.createNanoSpan = connectNanoSpan;
|
||||
this.connectTimeMillis = System.currentTimeMillis();
|
||||
this.lastActiveTimeMillis = connectTimeMillis;
|
||||
|
||||
@@ -256,6 +266,20 @@ public final class DruidConnectionHolder {
|
||||
public void setDiscard(boolean discard) {
|
||||
this.discard = discard;
|
||||
}
|
||||
|
||||
|
||||
public long getCreateNanoSpan() {
|
||||
return createNanoSpan;
|
||||
}
|
||||
|
||||
|
||||
public long getLastNotEmptyWaitNanos() {
|
||||
return lastNotEmptyWaitNanos;
|
||||
}
|
||||
|
||||
protected void setLastNotEmptyWaitNanos(long lastNotEmptyWaitNanos) {
|
||||
this.lastNotEmptyWaitNanos = lastNotEmptyWaitNanos;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuilder buf = new StringBuilder();
|
||||
|
||||
Reference in New Issue
Block a user