Feedback
Did this article resolve your question/issue?

   

Article

How to tell if proutil -C EnableLargeFiles has been run against a database?

« Go Back

Information

 
TitleHow to tell if proutil -C EnableLargeFiles has been run against a database?
URL NameP35250
Article Number000139382
EnvironmentProduct: Progress
Version: 9.1C, 9.1D, 9.1E
Product: OpenEdge
Version: 10.x, 11.x
OS: All Supported Operating Systems
Question/Problem Description
How to tell if large files feature has been enabled on a database?
How to find out if large files are enabled?
Has EnableLargeFiles been enabled on a database who's extents are approaching 2GB?
When was the feature EnableLargeFiles added to PROUTIL?
Steps to Reproduce
Clarifying Information
Error MessageLarge database file access is already enabled for database <db-name>. (9453)
Large database file access has been enabled. (9426)
Defect Number
Enhancement Number
Cause
Resolution
When the Area High Water Mark (HWM) is approaching 2GB upper limits on a database variable extent, it is worth knowing if large files have already been enabled for the database. 

There are a couple of ways to validate this.  The first are facts that can be used to rule this out and the next outline physical certainties to prove if the database has the large files feature enabled.  These are discussed below.

Progress OpenEdge large files feature factoids:
  • Only an Enterprise Database License supports the largefiles feature.
  • Large files are not supported and cannot be enabled prior to Progress 9.1C, where the feature was first introduced.
  • Prior to Progress 9.1E,  Linux Enterprise database licenses do not support large files. 
  • Progress does not support files larger than 2 Gigabytes on SCO Unixware or OpenServer Operating System platforms, which is no longer a supported Platform since OpenEdge 11.
  • Since OpenEdge 12, large file support is enabled by default when opening a database on a system where the Enterprise Database License is installed, if it is not enabled already. Opening a database on systems running with a sub-enterprise license (Workgroup and Personal) will disable large file support, if it is enabled.
Verfifying the Large File Feature:

To verify if Large File Support is enabled the following methods are listed in order of recommendation:

1.  Query the Large File Support Feature

Since OpenEdge 10.1B, the introduction of PROUTIL -C describe is the easiest option. It can be run online or offline and provides a basic description of the database and details which features are enabled for the database. 

When not enabled, the Large Files Feature will not be listed under the Database Features Section of the output:
 
ID   Feature                            Active  Details
----  ---------------------------------  ------  -------
   5  Large Files                        Yes

Similarly, the _DataBase-Feature VST can be queried for example as follows:
FIND _DataBase-Feature NO-LOCK WHERE _Database-Feature._DBFeature-ID = 5 NO-ERROR.
IF _DBFeature_Enabled = '1' THEN
    DISP "Largefiles are Enabled" SKIP
     _DBFeature-ID FORMAT ">9" LABEL "ID"
                  _DBFeature_Name FORMAT "X(20)" LABEL "NAME"
                  _DBFeature_Active FORMAT "9" LABEL "ACTIVE"
                  _DBFeature_Enabled FORMAT "9" LABEL "ENABLED" WITH SIDE-LABELS.

ELSE
    MESSAGE "Largefiles are NOT Enabled"
        VIEW-AS ALERT-BOX INFO BUTTONS OK.

2.  Parse the database log file

Historic database lg files can be parsed for the message:
Large database file access has been enabled. (9426)
-or-
Large database file access enabled for database <db-name>. (9425)

3.  Enable Large Files

Run the offline command:  proutil dbname -C EnableLargeFiles

This will either enable the large files feature against the database in question or fail if it has already been enabled with the message:
Large database file access has already been enabled for database (9453)

4.  Read the Database Master Block.

An Enterprise database is enabled for Large File Support when either:
  • The .st file used during a PROSTRCT CREATE contains a fixed (f) or fixed variable (v) extent with a size greater than 2GB.
  • After the "PROUTIL -C EnableLargeFiles" command has been run.
  • A large file enabled database is restored with PROREST or PROCOPY. Refer to Article  How do prorest and procopy work with Large File Support?   
Once Large File Support has been enabled, the database Master Block is updated accordingly.

To read the database Master Block, the bi will first need to be truncated before running the DBRPR offline utility.  
It would be recommended to have a backup of the database taken prior to using this utility.  

Run the PROUTIL -C dbrpr utility, Option 4. Dump Block, from the Schema Area

To dump the Master Block:
  • Dump DBKEY 32 for all database block sizes except 8K.  
  • For 8K database blocksize, dump DBKEY 64.
In the resulting 32.dmp or 64.dmp file:

HEX offset 22 is the largefile enabled flag and is equal to:
  • 01 if Large Files are enabled,
  • 00 if Large Files are not enabled.

Example:

>0000 0000 0020 017F 0002 0000 0000 0000 000B
>0010 045B 0000 0000 0003 0000 0000 0002 0000
>0020 0000 0100 0000 0000 0001 4CD3 0000 0000
-----------^^


When the large files feature is enabled:

Even if large files have been enabled against the database, this does not necessarily mean that all future filesize limit issues are solved.
  • Sufficient disk space needs to be available for variable database extents to grow.
  • The filesystem created when partitioning the drive must support largefiles and ulimits need to be set accordingly
  • The large files feature on the Database does not include client temp files. The 2GB limit on client temp files was lifted in OpenEdge 10.1C and has nothing to do with the large files database feature being enabled or not.
Workaround
Notes
Last Modified Date11/20/2020 6:59 AM
Attachment 
Files
Disclaimer The origins of the information on this site may be internal or external to Progress Software Corporation (“Progress”). Progress Software Corporation makes all reasonable efforts to verify this information. However, the information provided is for your information only. Progress Software Corporation makes no explicit or implied claims to the validity of this information.

Any sample code provided on this site is not supported under any Progress support program or service. The sample code is provided on an "AS IS" basis. Progress makes no warranties, express or implied, and disclaims all implied warranties including, without limitation, the implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample code is borne by the user. In no event shall Progress, its employees, or anyone else involved in the creation, production, or delivery of the code be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample code, even if Progress has been advised of the possibility of such damages.