M100734: Dynamic data imports fail after ASP.NET reconfiguration

Summary

When operations such as event processing, discovery, and installation occur on distribution servers or managed devices, data about the results of the operations are uploaded to the administration server and added to the ManageSoft database. Depending on their type, data are processed into the database in one of two ways:

  • Dynamically, by an ASP.NET web application
  • By a scheduled task that runs a ManageSoft importer

This article describes a problem that may occur after you have made changes to the configuration of an ASP.NET web application. If the problem occurs, it prevents dynamic data import.

In the event that this problem occurs, data will still be loaded to the database by scheduled tasks running ManageSoft importers, so the problem is not critical. However in high-traffic environments, dynamic data loading is more efficient, and you should perform the workaround described in this article to re-enable dynamic data imports.

Background

Some general information about ASP.NET web applications is provided at the end of this article.

You can read more about how data is processed into the ManageSoft database in the Data and log file processing chapter of ManageSoft Reference: Configuration. It explains which types of data are processed by default by an ASP.NET web application and which by ManageSoft importers, and how to configure the method you want used for different data types.

If changes are made to its configuration file under heavy load conditions, ASP.NET may fail to correctly load the DLLs required to dynamically import data to the ManageSoft database.

As a result, data uploaded to the administration server may not be imported successfully by the web application, but instead be saved to files in subdirectories under ManageSoft\Incoming. These files are processed by a scheduled task that runs a ManageSoft importer, at which time the data will be loaded to the ManageSoft database.

This problem is most likely to occur on multi-CPU computers. It has not been observed on single-CPU computers.

Symptoms

If dynamic imports of data to the ManageSoft database are failing, you will see a build up of files in subdirectories below ManageSoft\Incoming on the administration server. These are files of data that are usually processed immediately by the web application, but instead are being stored. Files with .disco, .mss, .log, .ndi, .ndi.gz, .msa, and .msa.gz extensions are usually processed by the ASP.NET web application (although your system may be configured differently—consult the Data and log file processing chapter of ManageSoft Reference: Configuration for details about configuration), so if you are seeing a build up of files with these extensions, your system is likely to be experiencing this problem.

Be aware: There can be many causes of files building up in subdirectories below ManageSoft\Incoming. This article describes just one possible cause. Review the symptoms described in this article to determine whether your file buildup is caused by this issue.

Logging output

If you are investigating to discover whether or not you are experiencing this problem, we recommend that you enable the following trace classes in etap.trace:

+Import/Http/Exceptions 
+Import/Dispatcher/Failures 
+Import/Dispatcher/Exceptions 
+Import/Dispatcher/Problems 
+Import/Dispatcher/Configuration 
+Import/FileSaveImporter/Failures

In your log file, check that the appropriate types of data are being processed dynamically, by looking for the string Direct Import Type | <data type> |. For example, Direct Import Type | discovery | indicates that discovery data are being dynamically processed into the database.

The problem described in this article results from a problem in the Microsoft .NET Framework, and the ManageSoft product cannot work around it. Complete the following actions to fix a system that exhibits the symptoms described above:

  • Restart IIS or the affected AppPool process.

    This is the preferred solution, unless you are running multiple web applications and cannot interrupt them by restarting IIS or the AppPool process.

    If necessary, consult your IIS documentation for details about restarting IIS or AppPool processes.

  • Modify Web.config again and save it—thus triggering another automatic reload of the relevant IIS processes. Repeat this process until the reload is successful and data are being processed dynamically.

Further information about ASP.NET web applications

ASP.NET web applications are executed in the context of a worker process. Internet Information Services (IIS) 6 uses one worker process (w3wp.exe) for each application pool. An AppDomain (application domain) is a logical process that exists inside the worker process. AppDomains are used to provide separation between web applications or websites that share a worker process.

Some ManageSoft functionality that is performed by ASP.NET web applications can be configured using Web.configfiles. When a Web.config file is edited ASP.NET automatically reloads any affected web applications and their dependencies (assemblies) into the relevant AppDomains.

Under load conditions where there is a consistent flow of requests and substantial concurrency, the dynamic load of DLLs required for dynamic data import can fail during this AppDomain reload. This leaves IIS in an unstable state, with assemblies not properly loaded. When in this problematic state, the issues described in this article may occur.

Comments

Powered by Zendesk