Back to Devexpress

Spreadsheet Document Hibernation

aspnet-116408-components-spreadsheet-document-management-document-hibernation.md

latest3.9 KB
Original Source

Spreadsheet Document Hibernation

  • Nov 16, 2021
  • 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

EnableHibernationSets whether the document hibernation is enabled. The default value is false.HibernationStoragePathSets the path to the server directory where open documents hibernate after the idle timeout period expires.HibernateTimeoutSets the idle timeout period before DocumentManager hibernates an open document. The default value is TimeSpan.FromHours(1).HibernatedDocumentsDisposeTimeoutSets how long DocumentManager stores a hibernated document on the server before disposal. The default value is TimeSpan.FromHours(24).HibernateAllDocumentsOnApplicationEndSets 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:

csharp
using DevExpress.Web.Office;

namespace YOUR_APP_ROOT_NAMESPACE {  
    public class Global_asax : System.Web.HttpApplication {  

        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
        }  
    }  
}
vb
Imports DevExpress.Web.Office

Namespace YOUR_APP_ROOT_NAMESPACE
    Public Class [Global]
        Inherits HttpApplication

        Private Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
            ' 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           
        End Sub
    End Class
End Namespace

Limitation

The ASPxSpreadsheet control loses the undo/redo history after hibernation.