Hi JPM!
We have been using the asemon_logger
for several years and have had very good experiences with it.
After upgrading our SAP ASE instances to ASE16 SP03 PL08 HF2, we also had to update the asemon_logger
(current version 3.1.7).
We're monitoring 2 instances.
In the asemon_logger.sh
the parameter -Xmx
has already been increased several times up to 1024m. The monitoring of the larger instance runs smoothly. With the other one we keep getting this error:
Exception in thread "<instance>_BlockedP" java.lang.OutOfMemoryError: GC overhead limit exceeded at com.sybase.jdbc4.utils.BufferPool.makeBuffer(BufferPool.java:247) at com.sybase.jdbc4.utils.BufferPool.getBI(BufferPool.java:232) at com.sybase.jdbc4.timedio.InStreamMgr.setBuffer(InStreamMgr.java:498) at com.sybase.jdbc4.timedio.Dbio.doRead(Dbio.java:242) at com.sybase.jdbc4.timedio.InStreamMgr.readIfOwner(InStreamMgr.java:587) at com.sybase.jdbc4.timedio.InStreamMgr.doRead(InStreamMgr.java:319) at com.sybase.jdbc4.tds.TdsProtocolContext.getChunk(TdsProtocolContext.java:622) at com.sybase.jdbc4.tds.PduInputFormatter.readPacket(PduInputFormatter.java:239) at com.sybase.jdbc4.tds.PduInputFormatter.read(PduInputFormatter.java:72) at com.sybase.jdbc4.tds.TdsInputStream.read(TdsInputStream.java:88) at com.sybase.jdbc4.tds.TdsInputStream.readUnsignedByte(TdsInputStream.java:121) at com.sybase.jdbc4.tds.Tds.nextResult(Tds.java:3051) at com.sybase.jdbc4.tds.Tds.readCommandResults(Tds.java:4570) at com.sybase.jdbc4.tds.Tds.doCommand(Tds.java:4555) at com.sybase.jdbc4.tds.Tds.endTransaction(Tds.java:2695) at com.sybase.jdbc4.jdbc.SybConnection.commit(SybConnection.java:2063) at asemon_logger.CnxMgr$ArchCnxPool.putArchCnx(CnxMgr.java:126) at asemon_logger.Archive_ASE.saveValues_exec(Archive_ASE.java:510) at asemon_logger.Archive_ASE.saveValues(Archive_ASE.java:340) at asemon_logger.CollectorGeneric.saveValues(CollectorGeneric.java:475) at asemon_logger.CollectorGeneric.getMetrics(CollectorGeneric.java:284) at asemon_logger.Collector.run(Collector.java:380)
How can the memory required for the VM be estimated and why is 1024 m enough for one instance but not for the other one?
Incidentally, the BlockedP module is active in both cases.
Thank you very much in advance!
Best regards,
Kai.
Anonymous
Hi Kai,
from the java stack trace we see the problem occurs in jConnect (trying to acquire memory in InStreamMgr) Don't know if it is a Sybase bug
Do you have this problem very often ?
When the problem occurs you can execute manually the query of the BlockP collector and see if it retreives a lot of rows (asemon stores all rows in memory before inserting them in the asemon db)
The query :
Best regards
Jpm