This article describes what to do when there is a large number of ncmconfigbucket files in the reporting directory and they are increasing in number rather than being cleared.
While the bucket tables can be cleared manually with the following MySql command (the following using a bucket table called "ncmconfigbucket16777216_1493943512213" as an example):
$SPECROOT/mysql/bin/mysql.exe --defaults-file=../my-spectrum.cnf -uroot -p<PASSWD> reporting -e "DROP TABLE IF exists ncmconfigbucket16777216_1493943512213"
This is not a reasonable solution when there are thousands of bucket tables to drop.
Release : Any
Component : Spectrum Report Manager/SRM
This happens very rarely and can be be due to a corrupt bucket file that cannot be dropped after processed it which blocks the deletion of subsequent buckets. A mySQLcheck --repair used to help by removing the corruption records and allowing the processing to proceed but since changing the storage engine of the reporting db, this utility no longer works so we have to manually delete the corrupt record. Deleting the oldest records first should have the same effect and allow the system to manually drop the rest if the buckets after a tomcat restart.
NOTE: Starting from DX NetOps Spectrum 21.2.4, the default root password for MySql is "MySqlR00t". For DX NetOps Spectrum versions prior to 21.2.4, the default root password is "root". In the following MySql commands, replace <PASSWD> with the root password for your DX NetOps Spectrum version.
Clean all the NCM config bucket files, by running the drop command as per the above but replacing the example bucket table name (ncmconfigbucket16777216_1493943512213) with the one to be deleted from the system.
- Log into the SRM system as the user that owns the installation
- If on Windows, start a bash shell by running "bash -login"
- Shutdown tomcat
- cd to the $SPECROOT/mysql/bin directory and enter the following command to log into mysql:
./mysql --defaults-file=../my-spectrum.cnf -uroot -p<PASSWD> reporting -A
- Using the above example, run the following command:
update bucketactivitylog set destroy_time = now() where bucket_table_name like '%ncm%' and destroy_time is null;
- Restart tomcat