When navigating to the SQL Performance dashboard (for either a Oracle or MSSQL database instance) on a Federator server, the dashboard only displays There is No Data To Display
.
Other dashboards that access observations for the affected topology objects such as DBSS_ASP_Config
can be impacted; for example, the SQL Server Instance > Activity > Sessions dashboard may display An error has occurred
under the CPU block and the following errors present in the Management Server logs:
WARN [http-exec-110] com.quest.wcf.portal.layouts.SwitchValueLayout - Unable to evaluate the switch value:
com.quest.wcf.core.module.runtimevalue.RuntimeValueException: com.quest.wcf.publicapi.code.FunctionInvocationException: Error executing script id=system:dbwc_mssql_realtime_sessions_new20sessions.getOSStatus name="'Get OS Status' from the System module Databases/SQL Server/realtime/SQL Activity/Sessions/New Sessions"
message: com.quest.nitro.service.sl.interfaces.scripting.ScriptingException: com.quest.nitro.service.sl.interfaces.scripting.ScriptAbortException: java.lang.NullPointerException: Cannot invoke method toBoolean() on null object
Issue is caused by the Federator Master FMS cache.
Once this script is run, this clears this cache, and the Fed Master FMS can then register the fresh information from the Child FMS instances.
It is only required to run this once.
Run the attached script(s) on the Federator Master FMS. Wait for around 30 minutes and navigate to the SQL Performance dashboard again to confirm if the issue persist after running the required script.
Script 1 (SQL Server)
import com.quest.nitro.service.util.MBeanRef; import javax.management.ObjectName; import com.quest.nitro.service.util.JDBCHelper; import groovy.sql.Sql; import java.sql.*; // Purge the observations def ps = new MBeanRef(ObjectName.getInstance("com.quest.nitro:service=Persistence")).ref(); def topObjs = []; topObjs.addAll(#!DBSS_ASP_Config#.topologyObjects); topObjs.addAll(#!DBSS_ASP_PA_Conn_Profile#.topologyObjects); ps.purgeData(topObjs as Set); // Clear the persisted data management information def ds = JDBCHelper.getDataSource(null); def sql = new Sql(ds); sql.execute "truncate table mgmt_observation_size"; sql.execute "truncate table mgmt_timeslice_data_avail"; sql.execute "delete from mgmt_timeslice"; // Refresh the data management information def dms = new MBeanRef(ObjectName.getInstance("com.quest.nitro:service=DataManagement")).ref(); dms.refreshStatistics();
Script 2 (Oracle)
import com.quest.nitro.service.util.MBeanRef; import javax.management.ObjectName; import com.quest.nitro.service.util.JDBCHelper; import groovy.sql.Sql; import java.sql.*; // Purge the observations def ps = new MBeanRef(ObjectName.getInstance("com.quest.nitro:service=Persistence")).ref(); def topObjs = []; topObjs.addAll(#!DBO_ASP_Config#.topologyObjects); topObjs.addAll(#!DBO_ASP_SPI_Config#.topologyObjects); ps.purgeData(topObjs as Set); // Clear the persisted data management information def ds = JDBCHelper.getDataSource(null); def sql = new Sql(ds); sql.execute "truncate table mgmt_observation_size"; sql.execute "truncate table mgmt_timeslice_data_avail"; sql.execute "delete from mgmt_timeslice"; // Refresh the data management information def dms = new MBeanRef(ObjectName.getInstance("com.quest.nitro:service=DataManagement")).ref(); dms.refreshStatistics();
Note: For more information on how to run as script refer to Running a groovy script using the script console (4309796).
© ALL RIGHTS RESERVED. Terms of Use Privacy Cookie Preference Center