KBA-01147: What limits the size of files placed in the catalog?

Question:

Is there a limit on the size of a file that can be placed in the Spitfire Catalog?

Answer:

Of course there is a limits, even on an x64 server

  • Theoretical limit: 1.9GB
  • Practical limit 960MB

In practice you might want to set a much smaller size.  We recommend something like 200MB, 320MB even 640MB.

ICTool Setting for Web Uploads

Here’s how to limit the size of files uploaded into the web application.  On the IIS server:

  1. Open ICTool
  2. Select the sfPMS tab
  3. Select the Catalog sub tab
  4. Look for the “Maximum Uploadable file size” spinner and specify a value.
  5. Select the Finish tab
  6. At an appropriate time of day with no users: Click Update Configuration

MaxFileSize

If users attempt to upload a file larger than the specified limit, they will get a clear “file too big” message for such files before the upload is attempted.

CloudStorageConfig | MaxInboundFileSizeInMB Rule

Files that arrive via the Cloud Sync engine are not subject to the limit set in ICTool.  The default for this rule is 360MB.   Files that exceed this limit are processed between 9 PM and 7 AM – but they are still accepted into the catalog.

Practical Constraints

Microsoft states ‘[many] factors play a role in the maximum file size that can be uploaded. These factors include available memory, available hard disk space, processor speed, and current network traffic. […] ‘ The workstation that catalogs the file using the Office Integrated Add Files dialog requires enough memory and disk space to process the file.  Spitfire requires at least 512MB of RAM on the workstations. The Windows IIS Application Server also must have enough available resources and be configured to allow the use of these resources for processing requests.

  • The server administrator may have placed a limit on the maximum request size on the (ICTool sfPMS Tab, Misc Options sub tab).  The default for this limit is approximately 20MB.  Files are uploaded in approximately 40KB chunks, bypassing this limitation.
  • The IIS Application Pool must be configured to allow it to consume the server memory resources.  Remember that all processes sharing the pool share the memory.  With IIS running in 32 bit mode, the theoretical limit for the pool is 4GB – but this theoretical limit is reduced by the size of the host processes and DLLS by at least 300MB, and the rest of the pool is shared among cache for all concurrent sessions.

Symptoms

If the file upload size exceeds the maximum defined request size, the server responses may be either ‘Cannot find server or DNS‘ or ‘Page cannot be displayed‘.  Since the request to upload was intercepted early by IIS as a possible Denial of Service attack, the response is not under Spitfire‘s control and is purposefully misleading to the potential attacker.

If the server runs out of resources, the response may vary between an ‘Out of Memory Exception‘ for the Add Files request to a temporary ‘Server Application is not Available‘ condition for users (while the server restarts the processes).

Additional Comments

See Microsoft KB Article 295626.  See also KBA-01149. The Add Files tool will warn users when they attempt to catalog files larger than 32MB via a browser connection. For users on the same local area network as the SQL Server, the Add Files tool will attempt to use a Windows Authenticated SQL connection to catalog the file.  Since the direct connection bypasses HTTP and IIS, huge files can be loaded.  For the direct connection to be viable, the local workstation must be able to make a trusted connection to SQL and be mapped to SpitfireStoreFiles database role.


KBA-01147; Last updated: May 30, 2019 at 21:43 pm;
Keywords:  out of memory;OutOfMemoryException;recycled;big files;huge file;direct load;