Skip to main content
All docs
V25.1
  • Rich Text Editor Document Hibernation

    • 2 minutes to read

    The DocumentManager can release server memory from inactive open documents and save them to the server file system. This behavior reduces server memory consumption and prevents the loss of unsaved document changes after IIS recycling. If a user interacts with a hibernated document, DocumentManager restores the document from the file system to the server’s RAM.

    Hibernation Settings

    EnableHibernation
    Sets whether the document hibernation is enabled. The default value is false.
    HibernationStoragePath
    Sets the path to the server directory where open documents hibernate after the idle timeout period expires.
    HibernateTimeout
    Sets the idle timeout period before DocumentManager hibernates an open document. The default value is TimeSpan.FromHours(1).
    HibernatedDocumentsDisposeTimeout
    Sets how long DocumentManager stores a hibernated document on the server before disposal. The default value is TimeSpan.FromHours(24).
    HibernateAllDocumentsOnApplicationEnd
    Sets whether DocumentManager should hibernate all open documents if a planned IIS process recycling occurs.

    Specify the hibernation settings in the Application_Start method handler in the global.asax file. In this instance, users are not required to reload the page with the Spreadsheet control and can continue to work with the open document even after a server failure.

    The following code sample demonstrates how to define the hibernation settings:

    <%@ Application Language="C#" %>
    <%@ Import Namespace="DevExpress.Web.Office" %>
    <script runat="server">
        void Application_Start(object sender, EventArgs e) {
            // Code that runs on application startup
            DocumentManager.HibernationStoragePath = Server.MapPath("~/App_Data/HibernationStorage/"); // Required setting
            DocumentManager.HibernateTimeout = TimeSpan.FromMinutes(30); // Optional setting
            DocumentManager.HibernatedDocumentsDisposeTimeout = TimeSpan.FromDays(1); // Optional setting
            DocumentManager.HibernateAllDocumentsOnApplicationEnd = true; // Optional setting
            DocumentManager.EnableHibernation = true; // Required setting to turn the hibernation on
        }
    </script>