APPX 6.1 Upgrade Instructions
This page provides the information needed to upgrade an existing APPX 5.4.5 (or higher) installation to APPX 6.1
Overview
Release 6.1 has significant changes to the format & content of the System Administration files and Application Design files. As a result, these files must be migrated to the new format. A migration utility for the System Admin (6SA) and Application Design (6AD) is provided. This should be installed in your Release 5.4.x or 5.5.x installation.
This application requires Release 5.4.5 or higher, it will not run on earlier releases. Also note that Locked applications cannot be migrated, they must be unlocked, migrated and then re-locked in 6.1.
The Structure files are incompatible between 6.x and all previous releases. After installing 6.1 and migrating your applications, you will have to create new Struct files for all end user data files. This also means you cannot share the APPXIO files between Release 5 & 6. Files that are stored in an RDBMS can be shared if you choose, although this is not recommended.
The basic approach we will use for upgrading is:
- Install APPX 6.1 in a new folder as if it was a new installation
- Install the migration applications in your existing 5.4.x or 5.5.x installation
- Run the migration utility for your System Administration files
- Install the migrated System Admin files in your new 6.1 installation & confirm all is well
- Run the migration utility for your applications
- Install the migrated applications
- Copy the end user data to Release 6.1
- Make any required changes to your applications
This approach allows you to maintain your existing 5.x installation while migrating/installing Release 6.1. You can test Release 6.1 independently of your existing 5.x installation. When you are ready to switch you just need to refresh the end user data.
The entire process may take a few hours, depending on the amount of data involved. Users can continue to work with your Release 5.x applications and data while you are migrating, subject to the usual requirement of not copying files that others are actively updating. If you are comfortable with APPX in character mode, we recommend using character mode to run the migration utility for faster conversion.
It is assumed the reader is familiar with APPX System Administration concepts and knows how to define new applications, new databases, etc. It is also assumed the reader knows how to copy files, set/check permissions, etc.
1. Install APPX 6.1 in a new folder
Install a fresh copy of APPX in a new folder on your server. Refer to
APPX600LinuxNewInstallation for Linux/Unix servers and
APPX600WindowsNewInstallation for Windows servers.
If you are using APPX_MONITOR_KEY, this must be set to a different value than your 5.x installation.
2. Install the Migration Applications in Release 5.x
There are 2 migration applications: 6SA for the System Administration files, and 6AD for Application Design files. Download the Migration Utility and follow these steps:
- Add application 6SA/00 to your Applications file.
- Create the Design Files for 6SA/00.
- Add application 6AD/00 to your Application file.
- Create the Design Files for 6AD/00.
- Define Database 6SA, with a startup application of 6SA/00.
- Define Database 6AD, with a startup application of 6AD/00.
Now you are ready to install the applications from the downloaded file. The applications are supplied in a zip file format (Intel based systems) or tar format (RISC based systems). Save this file in your $APPXPATH/00/ folder, and extract from there. When prompted, replace all existing files. If you do not get this warning, you have extracted the file in the wrong location.
Once the applications are extracted, continue with:
- Change the FMS Type of Data Files in 6SA Application to Type 1.
- Create Data Files for Database 6SA, Application 6SA
- Change the FMS Type of Data Files in 6AD Application to Type 1.
- Create Data Files for Database 6AD, Application 6AD
You are now ready to migrate your System Administration files.
3. Run the migration utility for your System Administration files
Before migrating your System Admin files, you should verify the integrity of the files and correct any errors. The Verify step can be found in System Administration -> System Setup -> System Administration File Management -> Verify Files. Correct any errors before proceeding. Also, if you have any startup hooks (such as SESSION START), disable them temporarily. You can re-enable them after you migrated System Administration files.
Continue by running Database 6SA from the APPX Main Menu. You will see this menu:
Click the 'Convert' button to proceed. A report will be produced showing the files that were converted. If any errors are shown, fix them before continuing.
The conversion step creates a new set of System Administration files in Release 6.1 format. These are located in $APPXPATH/6SA/6SA/Data.
Enable any hook record (in your 5.x release) you disabled during this process.
4. Install the migrated System Admin files in your new 6.1 installation
You are now ready to install the new System Administration files in your Release 6.1 folder. Follow these steps:
- Make sure no Release 6.1 APPX sessions are running. In particular, make sure to terminate the License Server if it's running.
- Copy
{$APPX_5.x_DATA_PATH}/6SA/6SA/Data/*
folder to {$APPX_6.1_DATA_PATH}/0SA/Data
folder. Do NOT copy the Struct folder.
- Check permissions of {$APPX_6.1_DATA_PATH}/0SA/Data in your Release 6.1 installation to make sure APPX users have read/write access.
- Delete these specific .key files in
{$APPX_6.1_DATA_PATH}/0SA/Data
:
- EDITMSG.key
- SCJOB.key
- SCPROJ.key
- SCSTE.key
- SCTASK.key
- SECDEPT.key
- SECROLE.key
- SECWG.key
Log on to APPX 6.1, go to System Administration -> System Setup -> System Administration File Management and run 'Create Files'. This will create new .key files for the ones you just deleted. This is necessary because the keys in those files contain Unicode fields. Release 5.x cannot create a Unicode aware key file, so we must recreate it under 6.1
Finally, compare your Release 5.x 'appx.env' file to your Release 6.1 'appx.env' file, and add any necessary settings to the Release 6.1 version. Do not simply copy your Release 5.x file to 6.1, as you will lose some Release 6.1 settings. This is a good time to review these settings to see if they are still required. If you are not sure what a setting is used for, use the
Environment Variable Wizard to check it.
If you changed your 'appx.env' file, log off & on again. Check your System Administration files to make sure everything was migrated correctly, i.e., Users, Printers, Forms, Applications, Databases, etc.
Role Based Security: If you are using Role Based Security, you should copy it to your new 6.1 installation. Copy all the files in $APPXPATH/0SA/ACL to $APPXPATH/0SA/ACL in your Release 6.1 installation. Create the $APPXPATH/0SA/ACL folder if necessary.
Since the Structure files are different between 5 & 6, we must delete all the 'Struct' folders in $APPXPATH/0SA/ACL in the Release 6.1 folder after the copy is complete. They will get recreated when the applications are migrated.
If all is well, continue with migrating your Applications.
5. Run the migration utility for your applications
You are now ready to begin migrating your applications. This is a good time to review your applications and decide which ones need to be migrated. For example, it's possible you have old applications that are not used any longer.
Once you have decided which applications you will migrate, you should run 'Verify Files' on each application and address any errors.
When you are ready to proceed, run Database 6AD from the version 5.x main APPX menu:
The path shown will be different on your system. You can choose a different path by clicking 'Edit
ConversionResults Pathname'.
When you are satisfied with the location, click 'Select Applications and Convert':
On this screen you can enter individual Application/Versions, or you can use the 'Load All Apps for Specific Version' button to automatically load all the applications for the entered version.
When you are ready to proceed, click the 'Process' button.
The applications will be processed and a report produced showing the applications and files that were processed. Check the report for any error messages. Note that not every application uses all possible design files, so the 'FI_STRUCT_NOT_FOUND' message is not necessarily an error.
It is not necessary to convert all your applications at once. For example, if you have a test version and a test database, you may want to just migrate those initially.
When this step completes, you can proceed to installing the migrated applications in Release 6.1.
6. Install the migrated applications
To install the migrated applications, simply copy the folder(s) from the 'ConversionResults' path to $APPXPATH in Release 6.1.
For example, let's assume our conversion results path was R:\appx\data\ConversionResults. We converted 2 applications, both in version GA. The migrated applications will be in R:\appx\data\ConversionResults\GA. Our Release 6 version is installed in R:\appx600new\, so I would copy (or move) the 'GA' folder to 'R:\appx600new\data'. If I converted more than one version at a time, there would be multiple folders in the conversion results folder, and they would all be copied/moved to $APPXPATH in Release 6.1.
The migration tool does not create the structure files or process the Data Dictionary. This must be done in Release 6.1 for every application.
The easiest way to do this is to go to 'Applications' in System Administration and select the first migrated application. Then choose 'Design File Management', and from there, run 'Create Files', then 'Process Data Dictionary'. Repeat this for each migrated application.
7. Copy the end user data to Release 6.1
Next, we must copy the end user data to our Release 6.1 installation. As mentioned previously, the Structure files are completely different between Release 5.x and Release 6.1, so we must create new Structure files in Release 6.1.
FMS Type 9 files (APPX large file format) have changed on release 6.1. If you are using FMS Type 9 in your APPX 5.x version, you need to export them under release 5.x and then import them to APPX release 6.x.
If you are using an FMS group to redirect APPXIO files from their standard location, then you will have to change the Release 6.1 FMS group to point to a different location, otherwise Release 5.x & Release 6.1 will be accessing the same Structure files and that will not work.
If you are using an FMS group to point to an RDBMS it will technically work, since each release of APPX has its own Structure files but this is not recommended. Instead, change the FMS group in Release 6.1 so that its files are unique. For example, you could add a prefix to the table naming scheme and then use the RDBMS utilities to copy the existing data to the new naming scheme.
Do not copy the 'Struct' folders, or alternatively, delete them after copying. For example, to copy database '123', we would copy all the files in R:\appx\data\123 to R:\appx600\data\123. After the copy is complete, we would delete all the Struct folders in R:\appx600\data\123.
To create the new Structure files, we have to run 'Create Files' for each application in the database. The easiest way to do this is to go to 'Databases/Applications' in System Administration, choose the Database, then click 'Related Applications'. For each application in the list, click 'Database Management', then 'Create Files.
Recommended Step: We recommend changing all of your APPXIO FMS type 1 files to FMS type 9 to take advantage of large file length and new large record length (up to 4MB). Converting an alpha field to a Unicode field requires 4 times more space. Using FMS type 9 can accommodate the need for larger record length and file length easily. You can use "Change FMS" option under "File Management" Menu to do this.
Enable any hook record (in your 6.1 release) you disabled during System Admin file migration.
Once this step is complete, you should be able to run your applications under Release 6.1, subject to the application issues in the next section.
8. Make any required changes to your applications
There are some differences in Release 6 that may have an impact on your applications.
1. All --- TEMP fields are now Unicode fields. If you are using --- TEMP to interface with external programs or O/S level subroutines, this may have an impact if they not expecting to receive UTF-32 encoded data. Also, CNV BIN on a --- TEMP 2 or ---TEMP 4 no longer works since those fields are larger than 4 bytes in size (in this case APPX will give you compilation error during Em build). A number of --- WORK RAW xx fields have been added - you can use these in place of --- TEMP fields if you need a non Unicode field.
2. Older subroutines in 0LA have various issues:
- FIND STRING LENGTH - limited to strings of 32k
- INSERT STRING - limited to strings of 32k
- REMOVE STRING - limited to strings of 32k
You should use the newer .TEXT routines for string functions.
3. Any direct CALL statements to engine ,RT functions will have to be reviewed and possibly changed.
4. A group field containing a Unicode field can only be moved to or from another group field. A Unicode field cannot be moved to or from a Group. This is detected at compile time so you can batch compile your applications to find these errors.
5. APPX now uses a LF character (ASCII 10) instead of a ¶ (ASCII 182) as a line feed character in text fields. Existing text data will display the ¶ character instead of a new line. To correct this, you need to search any text fields for a ¶ and replace it with a LF character. If you were already using APPX_END_PARAGRAPH to set the line feed to 0x10, this is no longer necessary as your data is already using a LF.
6. Field Type of fields that are storing pointer values have been changed from Numeric (binary) to Alphanumeric. If you use appx-32bit, they are now ALPHA(4), and ALPHA(8) if you are using appx-64bit. Most of these fields are used internally and you shouldn't worry about them if you have not used them in your application. Here are the list of pointer fields in APPX:
- 0AD IMGEDIT INT ADDR
- 0AD SEGEN SE POINTER
- 0DB MIGRATE PORT STREAM
- 0LA ILF STACK DETACHED
- 0LA ILF STACK PRIVATE
- 0LA ILF STACK RELATED
- 0LA ILF STACK SUBPROCESS
- 0LA PRNTOPT CTL
- 0LA SCANCTX CFI
- 0LA SCANCTX CTL ARB
- 0LA SCANCTX MARB
- 0LA SCANCTX SARB
- 0LA SCANCTX TAG ARB
- 0LA SCANINFO NEXT REC
- 0LA SCANINFO PCB
- 0LA SCANINFO PREV REC
- 0LA SCANOPT CTL
- 0LA STACK PCB POINTER
- 0LA STREAM FILE POINTER
- 0LA STREAMS FILE POINTER
7. RETURN CODE is still 4 byte binary field. So, you cannot expect to receive an 8 byte pointer (in 64-bit release) in the return code field.
8. Regular Expression library has changed to support Unicode characters. The new library doesn't like blank or unescaped patterns. You will get a run-time error if it doesn't like the pattern.
9. As the result of the fix for bugs
#799,
#2498, and
#4792, the way APPX finds a subroutine called by a GOSUB statement has changed. If you received "Duplicate Label" or "Could Not Compile GOSUB" error during em creation, it is because you called a subroutine without specifying an application id or called an internal subroutine (a subroutine within another subroutine) with an application id. We recommend making changes to your application to fix these errors, however, you can set
APPX_USE_PRE_61_GOSUB
environment variable to revert back to old behavior.
Comments:
Read what other users have said about this page or add your own comments.
--
Jean Neron - 2018-02-15