@@ -66,3 +66,13 @@ inte i alla metoder i OraMon.java klassen). Anger man en PDB i OraMon.jsp så bl
Lyckades köra JavaMonWeb i Debug läge med Tomcat 7 local server. Skapade en sanityCheck() metod med break points så jag kan debugga när vissa räknare blir negativa.
Dock svårt att hitta rätt LongDelta objekt, eftersom det finns över 1000 i listan i random ordning. Behöver spara undan det nånstans eller breaka inne i en LongDelta metod istället.
Checkar in detta i alla fall så länge.
2019-01-23
Oracle support var ingen väg framåt. Planen är att bygga en work around.
Men det blir inte så lätt. Koden just nu har "underrun protection" påslaget default, men det fungerar inte eftersom flera räknare "inte" är cumulativa utan ska kunna ha minskande värden.
Därmed blir det svårt att skydda sig mot detta under en update.
Istället måste detta detekteras när man läser av ett delta i någon av delta metoderna, varvid det dock är för sent.
Innan trodde jag att problemet alltid inleds med ett negativt delta, sedan en spik, sedan normalt. Men så är inte fallet, jag har sett idag tvärtom, det inleds med en spik och sedan
en rättning (vilket känns konstigt) men så blev det på tex file io wait time. Så jag tror tyvärr att enda rätta lösningen på problemet är att spara minst 3 mätningar innan ett delta rapporteras,
samt att man då kan upptäcka ett negativt delta, och i så fall ignorera värdet innan.
rset=stmt.executeQuery("select systimestamp, c.NAME, s.value as NIWT, t.value as DBCPU from V$CON_SYSSTAT s, V$CON_SYS_TIME_MODEL t, V$CONTAINERS c where s.CON_ID=t.CON_ID and s.CON_ID=c.CON_ID and s.name='non-idle wait time' and t.STAT_NAME='DB CPU'");
colPdbSysStat.update(stmt.executeQuery("select systimestamp, c.NAME || '"+strSeparator+"' || s.name, s.value from V$CON_SYSSTAT s, V$CONTAINERS c where s.CON_ID=c.CON_ID"));