file size limits in Progress 5.2?

Posted by Carl Brewer on 06-Apr-2016 18:20

Thank you for the help with my last question about extracting data from our ancient Progress 5.2 installation.

I have another question, concerning a potential time bomb.

uname for this box reports :

# uname -a
SCO_SV clunky 3.2 2 i386
#
which is SCO OpenServer 5.something I think.

Progress is :

# ./version
PROGRESS Version 5.2I as of Thu Feb 15 17:03:14 EST 1990

anyway ...

The database file is getting biggish

-rw-r--r--   1 root     sys      93247488 Apr  6 09:08 aam.db

that's in bytes, so it's about 92 MB now.

I wonder, how long 'til it blows up? I think 2GB is the max file size in SCO OpenServer 5.x, but documentation is scarce, any idea of what limits may exist in Progress 5.2?

Also - there's a lot of old cruft in it - what's the recommended way to remove old data?  Dump everything to ASCII, purge it manually then re-load it?

thanks again, for any help anyone here can give.

All Replies

Posted by ChUIMonster on 06-Apr-2016 18:47

As I recall the file size limit is 2GB.

Regarding recommendations...  do you have the source for the application?  If you have the source then the best option, by far, is to dump the data and reload it into a new, up to date database on a modern and supportable platform.  OpenEdge 11.6 on Linux for instance.

It will almost certainly "just work".

You *might* run into some minor glitches with keyword conflicts -- as the language has grown new keywords have been added and in some cases those were field or variable names in older systems.  This is easily dealt with by either editing the source or using the "keyword forget list" feature.

The effort to port it to something modern is probably much, much less than incrementally experimenting with one archaeology question after another...

Posted by Carl Brewer on 06-Apr-2016 18:51

G'day Tom, thank you, yes, I have the source code.  Is there an eval version I can test on?

Posted by ChUIMonster on 06-Apr-2016 19:09
Posted by ChUIMonster on 06-Apr-2016 19:10

If that turns out to be some horrible windows-only crippleware contact sales -- they can get you an eval for your target platform.

Posted by Carl Brewer on 06-Apr-2016 19:29

Thanks again Tom, I found a linux download (1.3GB ... chugging away!) and will try that out.

Posted by Carl Brewer on 07-Apr-2016 01:46

I've got 11.6 installed, with the RDBMS and application server modules - I think that's what's needed? on CentOS 7 32 bit - it installed ok, where can I find doco on what to do to (re)compile the .p files?  I tried proutil but it just said that _dbutil wasn't there (it is!) _dbutil is in /usr/dlc/bin!  

Path error?  Clues? :)

Posted by George Potemkin on 07-Apr-2016 01:53

> it just said that _dbutil wasn't there

PATH=$DLC/bin:$PATH; export PATH

Posted by Carl Brewer on 07-Apr-2016 02:02

thank you

Posted by George Potemkin on 07-Apr-2016 02:15

> any idea of what limits may exist in Progress 5.2?

 Solution: 3276 Type: N

    Title: How V5 PROGRESS changes the ULIMIT

Wrotten by GFS 10/09/90

Modified by  10/05/98

How V5 PROGRESS changes the ULIMIT

In version 5 of PROGRESS, there is a hard-coded limitation on the size of a database file. PROGRESS sets the ULIMIT on your system to the value 1,500,000 for all systems except the ARIX S90. This means that for a system with a 512 byte block size, the maximum size of a single volume database or multi-volume database extent is 768,000,000 bytes. For 1,024 bytes blocks, it's 1,536,000,000 bytes.

Please note that this hard-coded limitation does not exist in Version 6 of PROGRESS.

Pay particular attention to those customers receiving PROGRESS error 303 (UNIX maximum file size exceeded). They may be subject to this unforseen limitation.

Posted by gus on 07-Apr-2016 09:06

And, at only 93 MB, you are a long way away from reaching the database

filesize limit.

Note that there was no binary dump in version 5 so you will have to do a

text dump.

Don¹t forget to dump the .df files too.

Posted by George Potemkin on 07-Apr-2016 09:18

> Don¹t forget to dump the .df files too.

The following article might be useful:

 Solution: 19200

    Title: How to convert V4/V5 df to V8/V9 df.

In the V6 utility Data Dictionary >> Database >> PROGRESS Utilitites ... >> Convert V4/V5 .df into V6 .df

You can find the source of the procedure called from this Data Dictionary utility in

Progress V8:

------------

 %DLC%\src\prodict\dump\_dmp5cvt.p   or

 %DLC/src/prodict/dump/_dmp5cvt.p

Progress V9:

------------

 %DLC%\src\prodict.pl  (procedure library)  or

 $DLC/src/prodict.pl

 Use extractpl.bat (in the same directory) to extract the procedure(s) from the library in V9.

Having the V6 df now, you should be able to load that into a V8/V9 database.

Posted by Carl Brewer on 07-Apr-2016 18:28

these are the database files as best I can tell :

# ls -la aam*

-rw-r--r--   1 root     sys      2162688 Apr  7 08:44 aam.bi

-rw-r--r--   1 root     sys      93247488 Apr  7 08:47 aam.db

-rw-r--r--   1 root     sys        43554 May 25  2001 aam.df

-rw-r--r--   1 root     sys          495 May 25  2001 aam.ds

-rw-r--r--   1 root     sys      4445050 Apr  7 08:30 aam.lg

-r--r--r--   1 root     root           8 Apr  7 00:12 aam.lk

(aam is the name of the application)

.db is obviously the actual data, what's the .df file?  Some sort of index?  It's pretty old!

I still need some really basic handholding - trying to find my way around and understand how to compile .p files - there doesn't seem to be an obvious "compile" program in either 5.2 or 11.6?  

If I only have my installed 5.2 stuff, and 11.6 from the eval, how do I get the v6 stuff to get these dumps?

Posted by Rob Fitzpatrick on 07-Apr-2016 19:34

The indexes are also in the .db.  The .df is not part of the database.  It is a flat file containing the data definitions, i.e. a dump of the schema at a point in time.  It isn't necessarily current.

I haven't used anything prior to v9 so I can't help you with which tools are or aren't in v5.  In v11, "pro aam" gets you into a 4GL editor connected to an aam database, if you're in the DB directory.  Try that command in v5.2.  It might work, if your environment variables are set correctly.

In later versions the syntax for compiling a .p to a .r (assuming you have a compiler license installed) is:

compile <procedurename.p> save into <directoryname>.

If 5.2 is like later versions, the editor will have a tools menu with a Datat Dictionary option.  In the data dictionary you can dump table contents to .d (ASCII text) files and dump the schema to a .df.  But as George pointed out you will have to massage that .df to use it with a later release.  Hope this helps.

Posted by George Potemkin on 08-Apr-2016 02:29

Just re-wording what Rob Fitzpatrick wrote:

In Unix: pro aam
Type "DICT" in editor and press F1
Admin -> Dump Data and Definitions
-> Data Definitions (.df file)...
-> Table Contents (.d file)...

> how do I get the v6 stuff to get these dumps?

V11.6 still has _dmp5cvt.p:

MESSAGE SEARCH("prodict/dump/_dmp5cvt.r") VIEW-AS ALERT-BOX INFO BUTTONS OK.

Extract it as it's described in the article above for V9

Or get _dmp5cvt.p from here:

ADE - OpenEdge 10.2B Development Tools Source Code
https://community.progress.com/community_groups/openedge_general/w/openedgegeneral/1163.ade-openedge-10-2b-development-tools-source-code

Posted by gus on 08-Apr-2016 08:38

the database files that you have are as follows:

aam.bi - before-image log, used for crash recovery and transaction rollback

aam.db - first data extent. contains schema tables and indexes, your tables and indexes. you don't have them, but there could also be aam.d1, aam.d2, and so forth.

aam.df - text file with data definitions. new one can be produced by following george's instructions.

aam.ds - no idea

aam.lg - text database event log

aam.lk - database in-use lock file. normally deleted when database is shut down. if present and database is not running, then it has crashed and crash recovery is advisable.

Posted by Matt Gilarde on 08-Apr-2016 08:44

I think the .ds file is a status file written by the dictionary during a load operation.

Posted by Dmitri Levin on 11-Apr-2016 12:45

Yes .ds file is basically a log. It is created when one does dictionary load of several files ( more than one .d )

And it looks like that

Table        Input File       # of Records Read # of Errors Error File

------------ -------------- ------------------- ----------- ----------------

feature      ./feature.d                    475           0 -

feature-deta ./featur-.d                   5583           0 -

It could be deleted.

This thread is closed