Hi,
Thanks for you reply.
Applied the below changes and it seems that there is another table that is missing the PRIMARY key:
mysql> describe metricdata_hour;
+-----------------------------------+----------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------------------+----------------------+------+-----+---------+-------+
| ts_min | int(11) | NO | MUL | NULL | |
| metric_id | int(11) | NO | MUL | NULL | |
| rollup_type | tinyint(4) | NO | | NULL | |
| cluster_rollup_type | tinyint(4) | NO | | NULL | |
| node_id | int(11) | NO | | NULL | |
| application_component_instance_id | smallint(5) unsigned | NO | | NULL | |
| application_id | smallint(5) unsigned | NO | | NULL | |
| count_val | bigint(20) unsigned | NO | | NULL | |
| sum_val | bigint(20) | NO | | NULL | |
| min_val | bigint(20) | NO | | NULL | |
| max_val | bigint(20) | NO | | NULL | |
| cur_val | bigint(20) | NO | | NULL | |
| weight_value_square | double | NO | | NULL | |
| weight_value | double | NO | | NULL | |
| hr_of_day | int(11) | NO | | NULL | |
| hr_of_week | int(11) | NO | | NULL | |
| hr_of_month | int(11) | NO | | NULL | |
+-----------------------------------+----------------------+------+-----+---------+-------+
17 rows in set (0.01 sec)
The error related to this would be:
[#|2015-09-16T22:30:45.056+0000|SEVERE|glassfish3.1.2|com.appdynamics.METRICS.WRITE|_ThreadID=4596;_ThreadName=Thread-5;|failed doing rollup: metricdata_hour_agg :
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Key 'PRIMARY' doesn't exist in table 'MD'
at sun.reflect.GeneratedConstructorAccessor531.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3597)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3529)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1990)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2151)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2625)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2119)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2415)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2333)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2318)
at com.sun.gjc.spi.base.PreparedStatementWrapper.executeUpdate(PreparedStatementWrapper.java:125)
at com.singularity.ee.controller.beans.agent.db.MetricDataRollupHandler.doRollupParallel(MetricDataRollupHandler.java:69)
at com.singularity.ee.controller.beans.agent.db.MetricDataRollupHandler.access$000(MetricDataRollupHandler.java:31)
at com.singularity.ee.controller.beans.agent.db.MetricDataRollupHandler$RollupTask.call(MetricDataRollupHandler.java:457)
at com.singularity.ee.controller.beans.agent.db.MetricDataRollupHandler$RollupTask.call(MetricDataRollupHandler.java:435)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
|#]
I think we would need to recreate the table: metricdata_hour as well
Also I get the below error after restarting the controller:
[#|2015-09-17T06:58:27.933+0000|SEVERE|glassfish3.1.2|com.singularity.ee.controller.beans.agent.db.PerfDataPartitionPurge|_ThreadID=1;_ThreadName=Thread-5;|TRUNCATE FAILED TO FINISH: ALTER TABLE metricdata_hour_agg TRUNCATE PARTITION PART
16330
java.sql.SQLException: Incorrect partition name
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3597)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3529)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1990)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2151)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2619)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1709)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1628)
at com.sun.gjc.spi.base.StatementWrapper.executeUpdate(StatementWrapper.java:117)
at com.singularity.ee.controller.beans.agent.db.PerfDataPartitionPurge.alterPartition(PerfDataPartitionPurge.java:379)
at com.singularity.ee.controller.beans.agent.db.PerfDataPartitionPurge.purgePartitionsForShard(PerfDataPartitionPurge.java:346)
at com.singularity.ee.controller.beans.agent.db.PerfDataPartitionPurge.purgePartitionsDirectly(PerfDataPartitionPurge.java:243)
at com.singularity.ee.controller.beans.agent.db.MetricDataPurger.purgeMetricData(MetricDataPurger.java:353)
at com.singularity.ee.controller.beans.agent.MetricDataWriterBean.processMetricPurges(MetricDataWriterBean.java:952)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
to mitigate this one I am recreating the metricdata_hour_agg as well.
Thanks,
Claudiu