Menu

#24 Purge error

v1.0_(example)
open
nobody
None
1
2021-12-30
2018-11-06
Anonymous
No

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

Discussion

  • Jean-Paul Martin

    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

     
    • Anonymous

      Anonymous - 2018-11-09

      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>

       
  • Jean-Paul Martin

    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

     

Anonymous
Anonymous

Add attachments
Cancel





Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.