Legacy Application Modernization: Key Steps, Benefits & Best Practices
This blog post was co-authored with Riaz Merchant, President and CEO at Mertech. In the fast-paced software world, 'legacy' often signals a warning.
Before getting started with BTR2SQL, here's what you need to know about DDFs and the role they play in converting Btrieve/Pervasive files to SQL tables.
Btrieve/Pervasive applications often make use of a Data Dictionary File (DDF) during the development process to precisely describe the layout of a data record. This DDF is not used in deployment, it is part of the source code of an application. Magic-based applications normally don’t have DDFs, but they do have a similar means of describing the Btrieve record layout using uniPaaS XML-based source.
BTR2SQL requires valid DDFs to convert Btrieve/Pervasive files to SQL tables and migrate the data. It is absolutely essential the DDFs describe the entire layout of the data, or schema, within the Btrieve files. Without the DDFs or uniPaas XML to describe the layout of the data, BTR2SQL has no way to tell where one piece of data begins and ends.
Below are several options you can use to create DDFs when they are not available or use a very old format:
Once you have DDFs, Mertech's DDF Validator can be used to verify your DDFs adhere to a compatible layout. The goal of DDF Validator is to alert you to possible problems and to make suggestions on how to fix them BEFORE migration.
When an error is detected, a message displays providing the error code, severity from 1 (the most severe) to 3 (least severe) and a suggestion to help you fix the problem. In some cases the suggestion indicates the action that will be taken during migration if the problem is not resolved.
Sample output from DDF Validator
Error: Btrieve file 'filename' found in database location but is not defined in the table list.
Suggestion: Should this file have a table definition?
Error: No primary index and no Identity column defined for this table.
Suggestion: Performance is better when a primary index is properly defined. 'MDS_RECNUM' will be added as the primary index column.
Error: Field has binary data. '1' found at offset 4 in the field. (error will be suppressed in subsequent records).
Suggestion: This may mean adjacent fields are misaligned or mis-sized. Or, the field should be defined as Binary instead of Text.
Error: Column defined beyond Btrieve record size.
Suggestion: Columns must fit within defined record length.
Note: If the file is variable length, the field will be dropped/ignored when the migration is run.
Use the suggestions to update the DDFs and then rerun DDF Validator. Once you are happy with the output from DDF Validator, perform the migration using the BTR2SQL GUI Migration Utility.
Detailed instructions for running DDF Validator and the BTR2SQL GUI Migration Utility are given in the BTR2SQL User's Guide, which is included with the BTR2SQL installation.
If you're not the application developer, using BTR2SQL without the support of the developer and without the source code from the application is not something we advise. If you are an end user of an application that has been abandoned or the application vendor is no longer in business, please contact our consulting team for a consultation on available options.
Originally published Feb 14, 2017, updated Oct 30, 2018
This blog post was co-authored with Riaz Merchant, President and CEO at Mertech. In the fast-paced software world, 'legacy' often signals a warning.
This post was co-authored with Riaz Merchant, President/CEO at Mertech Data Systems, Inc.
Shifting from your traditional legacy systems to the Cloud can be a game changer, as the benefits of cloud migration are numerous. Cloud computing...