This discussion has been locked. The information referenced herein may be inaccurate due to age, software updates, or external references.
You can no longer post new replies to this discussion. If you have a similar question you can start a new discussion in this forum.

Report scheduler fails to display charts in PDF

All,

I have started having an issue with scheduled reports.  We have some custom views that we use to generate daily and weekly interface traffic charts (very basic view that only includes min/max/avg throughput for an interface).  These used to work flawlessly, but recently I have been told that the attached PDF files in the emails are no longer displaying the chart.  What makes this even harder to troubleshoot is that when I manually kick-off the scheduled report, it comes through fine, but if left to run at it's scheduled time, it exhibits the issue.

I edited some of the config file values in C:\Program Files\SolarWinds\Orion\ExportToPDFCmd.exe.config hoping that this would help the issue, but this morning's round of reports still has the problem...

<?xml version="1.0"?>

<configuration>

  <configSections>

    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" requirePermission="false"/>

    <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">

      <section name="ExportToPdfCmd.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>

    </sectionGroup>

  </configSections>

  <log4net>

    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">

      <!-- <file value="${ALLUSERSPROFILE}\Application Data\SolarWinds\${USERNAME}-Dashboard.log"/> -->

      <file value="${ALLUSERSPROFILE}\Application Data\SolarWinds\Logs\Orion\OrionWeb.log"/>

      <encoding value="utf-8" />

      <appendToFile value="true"/>

      <rollingStyle value="Date"/>

      <maxSizeRollBackups value="5"/>

      <maximumFileSize value="10MB"/>

      <layout type="log4net.Layout.PatternLayout">

        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>

      </layout>

      <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>

    </appender>

    <appender name="OutputDebugStringAppender" type="log4net.Appender.OutputDebugStringAppender">

      <layout type="log4net.Layout.PatternLayout">

        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>

      </layout>

    </appender>

    <appender name="DebugAppender" type="log4net.Appender.DebugAppender">

      <layout type="log4net.Layout.PatternLayout">

        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>

      </layout>

    </appender>

    <root>

      <level value="INFO"/>

      <appender-ref ref="RollingLogFileAppender"/>

      <appender-ref ref="OutputDebugStringAppender"/>

      <appender-ref ref="DebugAppender"/>

    </root>

   </log4net>

  <userSettings>

    <ExportToPdfCmd.Properties.Settings>

      <setting name="WaitAfterDocComplete" serializeAs="String">

        <value>00:00:10</value>

      </setting>

      <setting name="NavigationTimeout" serializeAs="String">

        <value>00:05:00</value>

      </setting>

      <setting name="ConversionDelay" serializeAs="String">

        <value>00:00:15</value>

      </setting>

    </ExportToPdfCmd.Properties.Settings>

  </userSettings>

  <runtime>

    <enforceFIPSPolicy enabled="false"/>

  </runtime>

<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>


The particular report that I have attached here are set to run @ 6AM daily.  (others run at midnight on Sundays)

One is the manually run job that does show the chart properly, the other is scheduled job that fails to include the chart...

Orion details:  Orion Core 2012.1.0, SAM 5.0.1, NCM 7.0.2, NPM 10.3, IVIM 1.3.0

ExportToPDFCmd.Exe2012.1.5.2202

Has anybody else seen this same behavior and resolved it?

attachments.zip
  • This can occasionally be due to permissions issues with the account you are using to run the scheduled report.  You aren't seeing this when you are running the report as you are logged into the server to run it.  One thing to try is to add Authenticated Users to C:\InetPub\SolarWinds and grant full control.  I'd also undo the changes you made to the config files.  Once you make the change to the permissions, you may need to restart IIS.

    Regards,

    Matthew Harvey

    Loop1 Systems

    http://www.loop1systems.com

  • I'm pretty sure this isn't a permissions issue, as the jobs run at their scheduled time.  They even convert the web page to PDF and send it as an attachment in an email as expected... the ONLY thing that's not occuring is the chart itself that is part of the custom view isn't showing up in the converted PDF attachment.  You can see the borders surrounding the chart which are generated from the web page view...  If there were permissions issues, the job wouldn't even run, or wouldn't be able to pull up any of the custom web view.

    I believe this is more of a timing issue, which is why I edited some of the timer variables in the config file.

  • It can be a permissions issue in the fact that the job cannot pull the .html resource piece for the charts.  The user is logging into the website, and the report is pulling, but the fact the chart image isn't loading can very much be a permissions issue.  All the pieces of the website that load up are in that \inetpub\SolarWinds directory.  Oftentimes this simple adjustment as mentioned previously can resolve this issues.  It would be the same as logging into the website and all the gauges and charts come up as red x's.  While yes the authentication worked to pass you to the web, there is a permissions issue failing to let the files fully render to allow you to see the website.

  • Well, I still don't think this is permissions related.  I am able to use Firefox without any NTLM credential integration to load the full URL that the report scheduler job should be using:

    http://solarwinds.domain.com/Orion/NPM/InterfaceDetails.aspx?viewid=129&NetObject=I:4037&Printable=True&AccountID=<removed>&Password=<removed>

    This pulls up the page completely without issue, and should rule out permission issues.  If you look again at the PDF's I attached in my original post, you will see that the borders of the web page are coming up, including the title of the chart, and the icons in the top right...  That indiates to me that the creds are good, and access is granted.  Just the chart itself isn't coming up.  I adjusted the time that the job run to a time during the middle of the day, and let the job kick-off on its own, and it seems to work as expected.

    I have a feeling this is related to the fact that the reports run at times when nobody has been logged into SolarWinds and IIS/.NET doesn't have the data cached or the .NET web app compiled.  I know there are some issues with IIS when a website is first loaded that it can take some time to run through and compile the application in the backend, and have a significantly slower than normal page-load time.  Google "iis page load slow first time" and you will see what I"m talking about.  Thinking through the report scheduler process, I think the job is running, the html page is loading but the PDF exporter is running prior to the chart data being fully compiled and displayed, hence why I was adjusting the timers in the PDF exporter config (lines 43, 46, and 49).  I think I may need to crank up the timer for line 43 though.  I was hoping 10 seconds would be sufficient, but perhaps it isn't.  May also see if there's something else I can do with the IIS app pools that could eliminate this first-time lag issue.

  • Hi mbaskett, I am having exactly the same behavior, if I changed the report time to 1 hour, I get the complete information on the PDF report, however, I have changed the report to the last 24 hours, then I am getting the incomplete PDF attachment. I have modified the values on the ExportToPDFCmd.exe.config file but still happening the same.

    Have you been able to find a solution or workaround for this. You can check the attachment.

    Running NPM 10.4, NTA 3.10

  • I have the same problem, several years down the road. I generate several NetFlow reports every night. Only 1 report fails to populate the charts. I get the outline of the chart, but no graphs. Interactively, the URL works fine. I even changed the job to use my own user ID (for which I must change password every 45 days) instead of the service account - same result. I've tried less computatively congested times of day to run it. Joy was not be experienced.

    Looking at release notes, I see that there has been at least one attempt to fix this before. Likely, it has more than one way to fail.

    It would be nice in such failures if some error code could be put in the report itself. I know that's asking a lot.

    I did a SolarWinds Diagnostic run, and looked for references in logs to "pdf", It wasn't too helpful - just INFO  SolarWinds.Orion.Core.Actions.Utility.WebPageFetcher - ExportToPdfCmd Exporting...

    I surmise that at that point, the error has already happened, and the PDF exporter is just exporting the unfinished result.

    I've seen several other threads which talk about setting privs on various folders (which we've done in the past, despite this being a terrible security practice), and observing various kinds of SQL timeouts that mysteriously happen when run as a scheduled task, but not as an interactive user on the same server.

    So my money is on the RAM upgrade I asked management for months ago. emoticons_happy.png

    =Foon=