Commit 505f3c8c 505f3c8cb06d0ef19c42f23460df2aef44836c3a by Christian Gerdes

Ny buggfix för #6

1 parent f51d29df
No preview for this file type
...@@ -26,23 +26,29 @@ class LongDelta { ...@@ -26,23 +26,29 @@ class LongDelta {
26 } 26 }
27 public void update(ResultSet rset, int pos, boolean convert, boolean close) throws Throwable{ 27 public void update(ResultSet rset, int pos, boolean convert, boolean close) throws Throwable{
28 rset.next(); 28 rset.next();
29 long newval = rset.getLong(pos); 29 update(rset.getLong(pos), rset.getTimestamp(1), convert);
30 if(convert) newval = newval/1000; 30 if(close) rset.close();
31 }
32
33 public void update(long value, Timestamp timestamp) {
34 update(value, timestamp, false);
35 }
36
37 public void update(Long value, Timestamp timestamp, boolean convert) {
38 if(convert) value = value/1000;
31 if(urProt) { 39 if(urProt) {
32 if(this.curValue != null && this.curValue > newval) { 40 if(this.curValue != null && this.curValue > value) {
33 //This would be a negative delta. Ignore this data 41 //This would be a negative delta. Ignore this data
34 //System.out.println("Underrunprotection on " + name + " New Val: " + newval + " Old Val: " + this.curValue); 42 //System.out.println("Underrunprotection on " + name + " New Val: " + newval + " Old Val: " + this.curValue);
35 lastUpdCausedUR = true; 43 lastUpdCausedUR = true;
36 if(close) rset.close();
37 return; 44 return;
38 } 45 }
39 } 46 }
40 this.lastFetch = this.curFetch; 47 this.lastFetch = this.curFetch;
41 this.curFetch = rset.getTimestamp(1); 48 this.curFetch = timestamp;
42 this.lastValue = this.curValue; 49 this.lastValue = this.curValue;
43 this.curValue = newval; 50 this.curValue = value;
44 lastUpdCausedUR = false; 51 lastUpdCausedUR = false;
45 if(close) rset.close();
46 } 52 }
47 53
48 public boolean didLastUnderRun() { 54 public boolean didLastUnderRun() {
......
...@@ -211,7 +211,6 @@ public class OraMon { ...@@ -211,7 +211,6 @@ public class OraMon {
211 open(); 211 open();
212 } 212 }
213 Statement stmt = conn.createStatement(); 213 Statement stmt = conn.createStatement();
214 Statement scrollStmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
215 ResultSet rset = null; 214 ResultSet rset = null;
216 215
217 //Get the database name once 216 //Get the database name once
...@@ -229,12 +228,11 @@ public class OraMon { ...@@ -229,12 +228,11 @@ public class OraMon {
229 this.numCpus = (int) colOsStat.getCurrentValue("NUM_CPUS"); 228 this.numCpus = (int) colOsStat.getCurrentValue("NUM_CPUS");
230 229
231 // Get DB CPU use time 230 // Get DB CPU use time
232 rset = scrollStmt.executeQuery("select systimestamp, s.value as NIWT, t.value as DBCPU from V$SYSSTAT s, V$SYS_TIME_MODEL t where s.name='non-idle wait time' and t.STAT_NAME='DB CPU'"); 231 rset = stmt.executeQuery("select systimestamp, s.value as NIWT, t.value as DBCPU from V$SYSSTAT s, V$SYS_TIME_MODEL t where s.name='non-idle wait time' and t.STAT_NAME='DB CPU'");
233 cpuTime.update(rset, 3, false, false); 232 rset.next();
234 rset.beforeFirst(); 233 niwTime.update(rset.getLong(2), rset.getTimestamp(1));
235 niwTime.update(rset, 2, false); 234 cpuTime.update(rset.getLong(3), rset.getTimestamp(1));
236 rset.close(); 235 rset.close();
237 scrollStmt.close();
238 236
239 // cpuTime.update(stmt.executeQuery("select systimestamp, value from V$SYS_TIME_MODEL where stat_name='DB CPU'")); 237 // cpuTime.update(stmt.executeQuery("select systimestamp, value from V$SYS_TIME_MODEL where stat_name='DB CPU'"));
240 // niwTime.update(stmt.executeQuery("select systimestamp, value from V$SYSSTAT where name='non-idle wait time'")); 238 // niwTime.update(stmt.executeQuery("select systimestamp, value from V$SYSSTAT where name='non-idle wait time'"));
......