Hello
Looking at the log, I see this error during the purge :
2018/11/06 18:00:00.148 Purge HEXA - Purge Thread : archive, error in loop. com.sybase.jdbc4.jdbc.SybSQLException: Attempt to insert duplicate key row in object 'HEXA_TrendProc' with unique index 'icu'
com.sybase.jdbc4.jdbc.SybSQLException: Attempt to insert duplicate key row in object 'HEXA_TrendProc' with unique index 'icu'
at com.sybase.jdbc4.tds.Tds.processEed(Tds.java:4112) at com.sybase.jdbc4.tds.Tds.nextResult(Tds.java:3229) at com.sybase.jdbc4.jdbc.ResultGetter.nextResult(ResultGetter.java:78) at com.sybase.jdbc4.jdbc.SybStatement.nextResult(SybStatement.java:302) at com.sybase.jdbc4.jdbc.SybStatement.nextResult(SybStatement.java:284) at com.sybase.jdbc4.jdbc.SybStatement.updateLoop(SybStatement.java:2762) at com.sybase.jdbc4.jdbc.SybStatement.executeUpdate(SybStatement.java:2746) at com.sybase.jdbc4.jdbc.SybStatement.executeUpdate(SybStatement.java:596) at asemon_logger.PurgeThread.archiveIndic(PurgeThread.java:102) at asemon_logger.PurgeThread.run(PurgeThread.java:158)
2018/11/06 18:00:00.151 Purge HEXA - Purge Thread - archive,Closing connection
2018/11/06 18:00:00.153 Purge HEXA - Purge Thread : error in loop. java.lang.NullPointerException
java.lang.NullPointerException
at asemon_logger.PurgeThread.run(PurgeThread.java:193)
2018/11/06 18:00:00.153 Purge HEXA - Purge Thread - Closing connection
What can create this problem ? And how to resolve it ?
Thank you and regards
Philippe RITTER
Anonymous
Hi
this can be due to long procnames (more than 30 chars)
In the xxx_TrendProc , the ProcName column (participating in the UNIQUE index) is defined as VARCHAR(30)
I fixed thin in V3.0.11 but I didn't yet posted this version
You can replace the Trends.xml file with the one attached to this post and see if it fixes your problem
Best regards
Jpm
Hi Jean-Paul,
Thank you for this update. I installed the new file, and after a restart, I get this :
2018/11/09 11:36:26.404 HEXA_Trends - Modify archive table : alter table HEXA_TrendProc modify [ProcName] varchar(255) null
2018/11/09 11:36:26.411 HEXA_Trends - Archive table modified
After some time, the purge started, but I'm not sure if it finished. I got this error :
2018/11/09 12:06:11.021 Purge HEXA - Start thread.
2018/11/09 12:06:11.023 Purge HEXA - Try to connect to srv : AMHE
2018/11/09 12:06:11.024 Purge HEXA - Srv found in interfaces or SQL.INI file. Host=mcsgsybhexa Port=7626
2018/11/09 12:06:11.024 Purge HEXA - Using password from passwords file for 'AMHE.sa'
2018/11/09 12:06:11.062 Purge HEXA - Connected to archive server : AMHE Database : asemon
ERROR CollectorMonSQL.retreiveSQLText : 0 JZ006: Caught IOException: java.io.CharConversionException: java.nio.charset.UnmappableCharacterException: Input length = 252
2018/11/09 14:12:20.137 HEXA_MonSQL - Error in loop. Error=0 SQL message=JZ006: Caught IOException: java.io.CharConversionException: java.nio.charset.UnmappableCharacterException: Input length = 252 state=JZ006
java.sql.SQLException: JZ006: Caught IOException: java.io.CharConversionException: java.nio.charset.UnmappableCharacterException: Input length = 252
at com.sybase.jdbc4.jdbc.ErrorMessage.raiseError(ErrorMessage.java:766)
at com.sybase.jdbc4.jdbc.ErrorMessage.raiseErrorCheckDead(ErrorMessage.java:1179)
at com.sybase.jdbc4.tds.TdsJdbcInputStream.getString(TdsJdbcInputStream.java:2374)
at com.sybase.jdbc4.jdbc.SybResultSet.getString(SybResultSet.java:331)
at asemon_logger.CollectorMonSQL$RunningStmt.retreiveSQLTextandLookup(CollectorMonSQL.java:612)
at asemon_logger.CollectorMonSQL$RunningStmt.access$2800(CollectorMonSQL.java:479)
at asemon_logger.CollectorMonSQL.getMetrics(CollectorMonSQL.java:1557)
at asemon_logger.Collector.run(Collector.java:387)
2018/11/09 14:12:38.337 HEXA_MonSQL - Error in loop. Error=0 SQL message=JZ006: Caught IOException: java.io.CharConversionException: java.nio.charset.UnmappableCharacterException: Input length = 1 state=JZ006
java.sql.SQLException: JZ006: Caught IOException: java.io.CharConversionException: java.nio.charset.UnmappableCharacterException: Input length = 1
at com.sybase.jdbc4.jdbc.ErrorMessage.raiseError(ErrorMessage.java:766)
at com.sybase.jdbc4.jdbc.ErrorMessage.raiseErrorCheckDead(ErrorMessage.java:1179)
at com.sybase.jdbc4.tds.TdsJdbcInputStream.getString(TdsJdbcInputStream.java:2374)
at com.sybase.jdbc4.jdbc.SybResultSet.getString(SybResultSet.java:331)
at asemon_logger.CollectorMonSQL.getMetrics(CollectorMonSQL.java:1457)
at asemon_logger.Collector.run(Collector.java:387)
2018/11/09 14:12:43.365 HEXA_MonSQL - Error in loop. java.lang.IllegalArgumentException: Non-positive length
java.lang.IllegalArgumentException: Non-positive length
at java.nio.charset.CoderResult$Cache.get(CoderResult.java:203)
at java.nio.charset.CoderResult$Cache.access$200(CoderResult.java:195)
at java.nio.charset.CoderResult.unmappableForLength(CoderResult.java:250)
at com.sybase.jdbc4.charset.SybUTF8CharsetDecoder.decodeLoop(SybUTF8CharsetDecoder.java:121)
at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:561)
at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:783)
at com.sybase.jdbc4.charset.CharsetUtil.toUnicode(CharsetUtil.java:142)
at com.sybase.jdbc4.charset.CharsetUtil.toSybUTF8(CharsetUtil.java:115)
at com.sybase.jdbc4.charset.PureConverter.toUnicode(PureConverter.java:90)
at com.sybase.jdbc4.tds.TdsDataObject.readString(TdsDataObject.java:586)
at com.sybase.jdbc4.tds.TdsJdbcInputStream.getString(TdsJdbcInputStream.java:2181)
at com.sybase.jdbc4.jdbc.SybResultSet.getString(SybResultSet.java:331)
at asemon_logger.CollectorMonSQL.getMetrics(CollectorMonSQL.java:1457)
at asemon_logger.Collector.run(Collector.java:387)
2018/11/09 14:12:49.106 HEXA_MonSQL - initialize : java.lang.IllegalArgumentException: Non-positive length
java.lang.IllegalArgumentException: Non-positive length
at java.nio.charset.CoderResult$Cache.get(CoderResult.java:203)
at java.nio.charset.CoderResult$Cache.access$200(CoderResult.java:195)
at java.nio.charset.CoderResult.unmappableForLength(CoderResult.java:250)
at com.sybase.jdbc4.charset.SybUTF8CharsetDecoder.decodeLoop(SybUTF8CharsetDecoder.java:121)
at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:561)
at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:783)
at com.sybase.jdbc4.charset.CharsetUtil.toUnicode(CharsetUtil.java:142)
at com.sybase.jdbc4.charset.CharsetUtil.toSybUTF8(CharsetUtil.java:115)
at com.sybase.jdbc4.charset.PureConverter.toUnicode(PureConverter.java:90)
at com.sybase.jdbc4.tds.TdsDataInputStream.readString(TdsDataInputStream.java:69)
at com.sybase.jdbc4.tds.EedToken.<init>(EedToken.java:61)
at com.sybase.jdbc4.tds.Tds.nextResult(Tds.java:3227)
at com.sybase.jdbc4.jdbc.ResultGetter.nextResult(ResultGetter.java:78)
at com.sybase.jdbc4.jdbc.SybStatement.nextResult(SybStatement.java:302)
at com.sybase.jdbc4.jdbc.SybStatement.nextResult(SybStatement.java:284)
at com.sybase.jdbc4.jdbc.SybStatement.updateLoop(SybStatement.java:2762)
at com.sybase.jdbc4.jdbc.SybStatement.executeUpdate(SybStatement.java:2746)
at com.sybase.jdbc4.jdbc.SybStatement.executeUpdate(SybStatement.java:596)
at asemon_logger.Archive_ASE.createArchiveTable(Archive_ASE.java:157)
at asemon_logger.Collector.initialize(Collector.java:250)
at asemon_logger.CollectorMonSQL.initialize(CollectorMonSQL.java:72)
at asemon_logger.Collector.run(Collector.java:369)</init>
These errors occur in the MonSQL collector (capture of SQL statements and plans)
I am pretty sure this is not related to the Trends aggregation and to the new file (Trends.xml) I send you before
Can you check in the xxx_TrendProc if you have data up to yesterday (see "day" column)
Currently, in MonSQL you get a "CharConversionException" error
Your monitored server seems to be in UFT8
May be you have some chars (in a SQL text request, comment or other ... ) not in pure UTF8
I have no more explaination for the moment
Best regards
Jpm