bug fixed pooledStatementStat

This commit is contained in:
wenshao
2012-08-06 20:11:32 +08:00
parent bfda4f6790
commit b4b18ea360
3 changed files with 23 additions and 1 deletions
@@ -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;
}
}