File system limits

This topic contains the values for the system limits that are related to file systems. They include limits on the number of documents in a folder, the size of a document, the size of a stream file, and others.

Table 1. File system limits
File system limits Value
Maximum number of libraries in the system part of the library list 15
Maximum number of libraries in the user part of the library list1 250
Maximum number of objects in a library 5 Approximately 1 000 000
Maximum number of documents and folders in a user auxiliary storage pool (ASP) 1 000 000
Maximum number of documents and folders in a folder 65 510
Maximum size of a document 2 GB - 1
Maximum cumulative number of objects across the "root" (/), QOpenSys, and user-defined file systems of ASPs 1 through 32 2 147 483 647
Maximum cumulative number of objects across the user-defined file systems for each independent ASP 2 147 483 647
Maximum cumulative number of user-defined file systems in ASPs 1 through 32 2 147 483 647
Maximum number of user-defined file systems in an independent ASP Approximately 4000
Maximum number of directories in one *TYPE1 directory in the "root" (/), QOpenSys, or user-defined file systems 32 765
Maximum number of directories in one *TYPE2 directory in the "root" (/), QOpenSys, or user-defined file systems 999 998
Maximum number of *TYPE1 directory links for an object in the "root" (/), QOpenSys, or user-defined file systems 32 767
Maximum number of *TYPE2 directory links for an object in the "root" (/), QOpenSys, or user-defined file systems 1 000 000
Maximum size of a stream file Approximately 1 TB
Default maximum number of file and socket descriptors per job2 200
Maximum number of file and socket descriptors per job 2 500 000
Maximum for directory levels, path names, and object attributes and links See the File system comparison topic in the information center. See Qp0lProcessSubtree()--Process a Path Name and QlgProcessSubtree()--Process a Path Name (using NLS-enabled path name) for more information.
Maximum number of directory levels when processing objects within a subtree using the Qp0lProcessSubtree() and QlgProcessSubtree() APIs and most integrated file system commands See Maximum number of file and socket descriptors per job in this table. See Qp0lProcessSubtree()--Process a Path Name and QlgProcessSubtree()--Process a Path Name (using NLS-enabled path name) for more information.
Maximum length (in bytes) of a path name when processing objects within a subtree using the Qp0lProcessSubtree() and QlgProcessSubtree() APIs and most integrated file system commands 16 773 116
Maximum number of files that the host file server and IBM i NetServer can have open at one time3 16 776 960
Maximum number of scan descriptors per job4 Approximately 524 000
Notes:
  1. There are compatibility considerations for application programs that retrieve library lists and are not prepared for the longer lists. For more details, see the 7.2 Memo to Users.
  2. Default can be changed with DosSetRelMaxFH() - Change the Maximum Number of File Descriptors (see UNIX-Type APIs in the information center.)
  3. This limit is cumulative across all file server jobs (QPWFSxxxx, QZLSFILE and QZLSFILET jobs) on the system. After a file is closed, it no longer counts toward the limit. This may affect clients such as IBM i Access Client Solutions, IBM Toolbox for Java™, QFileSvr.400 file system, and others which will connect to the host file server and IBM i NetServer.
  4. For more information about scan descriptors, see Integrated File System Scan on Open Exit Program in the API topic collection.
  5. This number can be less if the library contains objects of types *MODULE, *PGM, *QRYDFN, *SQLPKG or *SRVPGM because of internal space used by these objects.