Security Compliance
The creation of reports in ARM fails
This article will explain how to solve the issue with failing ARM reports.
First published date
Last published date
Overview
Product section
Cause
- The login process in the background is slow enough to make the token used for reporting to expire before all calls are done.
- If only scheduled reports are failing, the user that scheduled the reports is not present in AD anymore or is disabled.
Resolution
For environments with potential higher load and reporting it could be a good way to adjust the time to live for the token to 120 seconds as described below.
- Add the following configuration switch in C:\ProgramData\protected-networks.com\8MAN\cfg\pnServer.config.xml. You can add it before the last </config>. The configuration file is found on the ARM server.
<debugging.ott.expiration type="System.Int32">120</debugging.ott.expiration>
- Restart the ARM Service
- Try to run the report again.
- Please add the following switch in the pnServer.config.xml file in the same way mentioned above.
<options.referalChasingOption>None</options.referalChasingOption>
- Save the file and restart the ARM service.
- Try the login again.
- Try to run the reports again.
Resolution for cause 2:
- If there are only a few scheduled reports, we would recommend to just recreate them manually.
- If there are a lot of scheduled reports affected and they were all scheduled by the same user, please execute the following script on the ARM database to change the report owner in bulk.
-Please customize the highlighted values in bold for @ScheduledReportOwnerUserName and @ScheduledReportOwnerDomainName according to the ones in your system.
-- Scripts are not supported under any SolarWinds support program or service.
-- Scripts are provided AS IS without warranty of any kind. SolarWinds further
-- disclaims all warranties including, without limitation, any implied warranties
-- of merchantability or of fitness for a particular purpose. The risk arising
-- out of the use or performance of the scripts and documentation stays with you.
-- In no event shall SolarWinds or anyone else involved in the creation,
-- production, or delivery of the scripts be liable for any damages whatsoever
-- (including, without limitation, damages for loss of business profits, business
-- interruption, loss of business information, or other pecuniary loss) arising
-- out of the use of or inability to use the scripts or documentation.
BEGIN TRANSACTION DECLARE @ScheduledReportOwnerUserName NVARCHAR(MAX); DECLARE @ScheduledReportOwnerDomainName NVARCHAR(MAX); SET @ScheduledReportOwnerUserName= 'robert.mustermann' SET @ScheduledReportOwnerDomainName= 'pneng' IF OBJECT_ID(N'tempdb..#Temp') IS NOT NULL BEGIN DROP TABLE #Temp END CREATE TABLE #Temp ( ReportId nvarchar(255) ); BEGIN TRY Insert into #Temp select _value from _jobconfig_object_values where _property = 'scheduledreportid' UPDATE v SET v._value = @ScheduledReportOwnerUserName FROM _jobconfig_object_values jov INNER JOIN _jobconfig_object_values v on v._id = jov._id WHERE jov._property='scheduledreportid' and jov._value in (select * from #Temp) and (v._property='reportusername' or v._property='ownerusername'); UPDATE v SET v._value = @ScheduledReportOwnerDomainName FROM _jobconfig_object_values jov INNER JOIN _jobconfig_object_values v on v._id = jov._id WHERE jov._property='scheduledreportid' and jov._value in (select * from #Temp) and (v._property='owneruserdomainname' or v._property='reportuserdomainname') COMMIT TRANSACTION DROP TABLE #Temp END TRY BEGIN CATCH THROW; IF @@TRANCOUNT > 0 BEGIN ROLLBACK TRANSACTION END END CATCH