Consultor Eletrônico



Kbase P6156: How to determine the version compatibility of your database
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   9/10/2009
Status: Verified

GOAL:

How to determine the version compatibility of your database

GOAL:

How to determine which version your database is.

FACT(s) (Environment):

All Supported Operating Systems
Progress/OpenEdge Product Family

FIX:

There are two ways to determine the version of the database that you have. The 2 options are as follows:

1. Issue the following command (UNIX only)

dd if=<dbname.db> bs=16 count=2 > <output file name>
od -x <output file name> +0x0

Typical output (from a v5 database on a Sun)
address data
------- -------------------------------------------------
0000000 0000 0020 017f 0001 0000 0000 0000 003f
0000010 043d 0002 0000 0000 0000 0030 0000 0100
^^^^
If the first data byte of the second row of output is:
08 -- the database has a 2K blocksize
04 -- the database has a 1K blocksize
02 -- the database has a 512K blocksize

The second data byte of the second row is the version number of the
database in hexadecimal. In this case it is 3d HEX which is 61
DECIMAL, which in turn means that this is a version 5 database.
(Internal TSE's - To determine what version numbers are allowable
connect to a development machine and look in $RDL/rh/dbvers.h if the
version of Progress you are running is < verion 9.0 of Progress.
If the version is > or = 9.0 then look in:
$RDL/src/rocket/dbmgr/incl/dbvers.h).

The versions currently in use and any downward
compatabilities are as follows:

version 11 PROGRESS 2.1
version 12 PROGRESS 2.2 and 2.3
version 13 PROGRESS 2.4
version 30 PROGRESS 3.0
version 31 PROGRESS 3.0 after 12/18/85
version 32 PROGRESS 3.0 after 12/19/85
version 40 PROGRESS 4.0 after 1/7/87
version 41 PROGRESS 4.0 after 1/19/87
version 42 PROGRESS 4.0 after 2/28/87 (after-image)
version 50 Reserved for PROGRESS with foreign dbs
version 51 PROGRESS with foreign dbs after 1/13/88
version 60 Resrved for PRGRS with foreign dbs & SQL
version 61 PROGRESS Release 5.0 and 6.0 from 4/12/88
version 62 PROGRESS Release 6.0 after 8/01/89
version 63 PROGRESS Release 6.0A after 8/14/89
version 64 PROGRESS Release 6.3A1B after 10/31/91

version 70 PROGRESS Release 7.0A after 3/15/91
version 71 PROGRESS Release 7.0A after 4/30/91
version 72 PROGRESS Release 7.0B after 8/28/91
version 73 PROGRESS Release 7.0B after 3/04/92
version 74 PROGRESS Release 7.0E after 8/05/92
version 75 PROGRESS Release 7.1A after 10/30/92
version 76 PROGRESS Release 7.1A after 11/23/92
version 77 PROGRESS Release 7.1B after 2/25/93
version 78 PROGRESS Release 7.1C after 7/2/93
version 80 PROGRESS Release 8.0A after 8/8/95

Release 3.0 may only access files created by itself.
After 12/18/85, Release 3.0 only works with version 31 databases
Release 4.0 may only access files created by itself.

Release 6.0 clients may access files from a 5.0 server


2. Another way to get the Master Block information is as follows:

UNIX: proutil <database name> -C truncate bi
proutil <database name> -C dbrpr

VMS: prog/util/truncate <database name>
prog/util=dbrpr <database name>

Once in dbrpr:
Choose option 4 (Dump Block)
dbkey: 32 (this is the Master Block)
Quit

The output file from dbrpr is 32.DMP. Type out or edit this file.

addr data
---- ---------------------------------------
0000 2000 0000 017F 0100 0000 0000 3203 0000
0010 3F04 0200 0B00 0000 5301 0000 A503 0000
^^^^

As we did above, look at the second data byte of the second row.
For UNIX, do as listed above.

For VMS and DOS, you have to byte swap and convert HEX to DECIMAL.
In this example,

04 - as listed above, tells us that the database has a 1 K blocksize
043F - converts to 1087 (Decimal) (This is 3F04 byte swapped to 043F)

Next, subtract the block size from the converted 043F

1087 (Decimal of 043F) - 1024 (blocksize) = 63

(Internal TSE's - To determine which versions it's compatible with
on the VAX:
RDL 7
SET. DEFAULT RDL
SET DEFAULT [.RH]
and look in the file dbvers.h. This has the same information
included above.)

This example tells us that 63 - the database is compatible with
databases created between 6.0A and 6.3. To run this database
under 6.3 the database would have to be converted using the
convert utility.

NOTE: We recommend backing up the database before doing the convert.

UNIX: proutil <database name> -C cn6263
VMS: prog/util=cn6263 <database name>

To convert a database from V6 to V7 use conv67 after truncating the
.bi file

proutil <database name> -C conv67

NOTE: If converting from Version 6 to 7.2 -- make sure all the dump
files have unique names, otherwise the conversion will fail
(this will be fixed in Version 7.3A)..