mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
bug fixed pooledStatementStat
This commit is contained in:
@@ -40,6 +40,7 @@ import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import com.alibaba.druid.proxy.jdbc.JdbcParameter.TYPE;
|
||||
import com.alibaba.druid.stat.JdbcSqlStat;
|
||||
|
||||
/**
|
||||
* @author wenshao<szujobs@hotmail.com>
|
||||
@@ -465,4 +466,13 @@ public class PreparedStatementProxyImpl extends StatementProxyImpl implements Pr
|
||||
|
||||
return super.unwrap(iface);
|
||||
}
|
||||
|
||||
public JdbcSqlStat getSqlStat() {
|
||||
if (sqlStat.isRemoved()) {
|
||||
JdbcSqlStat sqlStat = this.getConnectionProxy().getDirectDataSource().getDataSourceStat().getSqlStat(sql);
|
||||
sqlStat.setDbType(this.sqlStat.getDbType());
|
||||
this.sqlStat = sqlStat;
|
||||
}
|
||||
return sqlStat;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -110,6 +110,7 @@ public class JdbcDataSourceStat implements JdbcDataSourceStatMBean {
|
||||
Map.Entry<String, JdbcSqlStat> entry = iter.next();
|
||||
JdbcSqlStat stat = entry.getValue();
|
||||
if (stat.getExecuteCount() == 0 && stat.getRunningCount() == 0) {
|
||||
stat.setRemoved(true);
|
||||
iter.remove();
|
||||
} else {
|
||||
stat.reset();
|
||||
|
||||
@@ -64,6 +64,8 @@ public final class JdbcSqlStat implements JdbcSqlStatMBean {
|
||||
|
||||
private String lastSlowParameters;
|
||||
|
||||
private boolean removed = false;
|
||||
|
||||
private final Histogram histogram = new Histogram(new long[] { //
|
||||
//
|
||||
1, 10, 100, 1000, 10 * 1000, //
|
||||
@@ -84,7 +86,7 @@ public final class JdbcSqlStat implements JdbcSqlStatMBean {
|
||||
private final Histogram updateCountHistogram = new Histogram(new long[] { //
|
||||
1, 10, 100, 1000, 10 * 1000 });
|
||||
|
||||
public JdbcSqlStat(String sql) {
|
||||
public JdbcSqlStat(String sql){
|
||||
this.sql = sql;
|
||||
this.id = DruidDriver.createSqlStatId();
|
||||
}
|
||||
@@ -621,4 +623,13 @@ public final class JdbcSqlStat implements JdbcSqlStatMBean {
|
||||
executeAndResultHoldTimeHistogram.record((statementExecuteNano + resultHoldTimeNano) / 1000 / 1000);
|
||||
updateCountHistogram.record(0);
|
||||
}
|
||||
|
||||
public boolean isRemoved() {
|
||||
return removed;
|
||||
}
|
||||
|
||||
public void setRemoved(boolean removed) {
|
||||
this.removed = removed;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user