@Rob Fitzpatrick - I could see articles that explains more from db migration perspective. Do we have any document that would outline the code issues that we might be facing during migration on any document; I couldn't find any. If we don't have any I will have to compile the code base against 11.6 and resolve issues by going through the error list.
Here are a few:
What are the required steps to migrate 4GL application between major versions
Knowledge Article
A number of ActiveX/OCX/COM controls that have been working correctly under OpenEdge 10.2B and earlier releases fail under OpenEdge 11.x.
Knowledge Article
Critical Alert – Issues migrating applications that use ActiveX/COM objects to OpenEdge 11.
Progress KB - Critical Alert – Issues migrating applications that use ActiveX/COM objects to OpenEdge 11.
The ComponentOne VSFlexGrid custom properties dialog fails to open in OpenEdge 11.6.
Progress KB - The ComponentOne VSFlexGrid custom properties dialog fails to open in OpenEdge 11.6.
Unable to add Crystal ActiveX Report Viewer Control to OpenEdge 11 ABL window on Windows 7 / 2008.
Progress KB - Unable to add Crystal ActiveX Report Viewer Control to OpenEdge 11 ABL window on Windows 7 / 2008
Cannot drop Imageman 8 ActiveX control on a container in 11.x using AppBuilder.
Progress KB - Cannot drop Imageman 8 ActiveX control on a container in 11.x using AppBuilder
When migrating Progress versions, is it possible to use
conmgr.properties and
ubroker.properties from the previous version with the new version of Progress OpenEdge?
Knowledge Article
How to upgrade a SmartObjects application to a later version?
Knowledge Article
ADM1 application recompiled in OpenEdge 10 runs but intermittently fails with error 5635.
Knowledge Article
In addition to the above, there are two ways to look at this. One is "what needs to change or might break given a large jump in Progress version (9.x to 11.6)". The other is "what needs to change or might break given an OS upgrade and (probably) a change in server hardware". I assume that with a jump this large you aren't staying on the same OS or hardware.
Re: OpenEdge change:
- Does your application have dependencies on code in old Progress frameworks (e.g. Dynamics, Smart Objects, FastTrack) that might no longer work or be supported?
- Does your application have dependencies on code in old third-party frameworks or utilities (e.g. PDFInclude, SMTPMail, etc.)?
- Does your code use identifiers that are now reserved ABL keywords?
- Does your code depend on ABL bugs or runtime/compiler quirks that some programmers regarded as features (e.g. "dot comments", ignored type mismatches in IF functions, statements coming after an unconditional return, etc.)?
- Does your application use image PLs that have to be rebuilt in the new compiler? People remember to rebuild their code PLs but sometimes forget to rebuild image containers.
- Does your application use any features that are now on the published list of deprecated features? If so they should still work but you should have a plan in place to redesign those parts of your application. E.g. RECID function, EDITING block, CHOOSE statement, the SQL-89 interface, worktables, etc.
- Does your application use any features that are now on the published list of de-supported features? If so, they won't work at all in 11.6. E.g. DB extents on raw partitions (phased out in 10.1A), etc.
- Does your application rely on product/platform combinations that are no longer available? E.g. OpenEdge on Linux for PowerPC (phased out in 11.3), DataServer for HP-UX 32-bit (phased out in 10.1C), DataServer for ODBC (phased out in 11.6), etc.
- Do you have application clients moving from a 32-bit Progress runtime to a 64-bit OE runtime, thus breaking some 32-bit specific features or integrations?
- Does your application depend on integration with third-party solutions (e.g. Microsoft Office, web browsers, BI tools, etc.) that may also be upgrading, where changes in that third-party code (interfaces, default values, deprecated features, etc.) could break your features?
- Does your application include modified versions of Progress code that may need to be updated, e.g. web-disp.p?
Re: OS change:
- Does your code take dependencies on functions in old versions of OS shared libraries/DLLs that have been removed, deprecated, had signatures changed, been superseded by more secure variants, etc?
- Do you have any OS-specific code (use of OS-COMMAND, SYSTEM-DIALOG PRINTER-SETUP) that could break or behave differently than before on the new OS? OS-COMMAND in particular can be a treasure trove of compatibility issues and undocumented dependencies.
- Does the more stringent security configuration in the new OS cause application issues or break assumptions made by your original developers? E.g. firewall on by default, file system more tightly locked down by sysadmin, insecure services like telnet or FTP deactivated or removed, etc.
- Does your new host have a very long hostname that might upset OpenEdge?
This is by no means a comprehensive list but you get the idea. If your code isn't "pure" ABL (i.e. it directly or indirectly interacts with something outside the AVM), you should evaluate the potential for it to break when running in a newer OS.