Question & Answer
Question
Programs compiled at R610 or beyond, may require conversion if they are moved to a another system with a different hardware level.
Answer
Users may notice when moving programs between systems, that some programs require conversion even though it was created after release 6.1.
This reason for this is, is that the program was created on a hardware level that allowed for Adaptive Code Generation. When the programs are moved to a system that is not at the same hardware level, it can require a conversion to ensure the object is not Adaptive Code Generation.
You can confirm the type of conversion required by doing a DSPPGM to see what state the object compatibility is in, if conversion is required for Adaptive Code Generation use, it will show *FEATURE:
------------------------------------------
Object compatibility
Use the Display Program (DSPPGM), Display Service Program (DSPSRVPGM), or Display Module (DSPMOD) command with DETAIL(*BASIC) to determine whether your module or program object is able to run correctly without first being converted. The value of the Conversion required field is either *YES or *NO. If the value of Conversion required is *YES for a program object, the program is converted the first time it is activated. Alternately, you can use CHGPGM FRCCRT(*YES) or Start Object Conversion (STROBJCVN) to force conversion to occur at a more convenient time. See Optimizing Compatible Programs for more information about when these two commands can be used.
If the value of the Conversion required field is *YES for a module object, and the module object is not in an older format (see *FORMAT in the following table), binding this module object into a program or service program results in a program object that also requires conversion. This outcome is useful when you are building programs for deployment to a system that has more features than the build system. If the value of the Conversion required field is *NO, then your program or module object is ready for immediate use.
The reason that a module or program object requires conversion can be determined by viewing the Conversion details field. This field has one of the following values.
Value | Meaning |
*FORMAT | The object is not compatible with the current machine. The object is in an older format. (For example, objects created for releases earlier than 6.1 are in a different format from objects created for 6.1.) Binding a module object in an older format causes the bound module to be converted. |
*FEATURE | The object is not compatible with the current machine. The object format is compatible with the current machine, but the object uses at least one feature that is not supported by the current machine. |
*COMPAT | The object is compatible with the current machine. The object format is compatible with the current machine, and all features that the object uses are implemented by the current machine. However, the object uses at least one feature that is not supported by the common level of hardware supported by version, release, and modification level that the object was created for. |
*COMMON | The object is compatible with the current machine. The object format is compatible, and all features that the object uses are implemented by the common level of hardware supported by the version, release, and modification level that the object was created for. |
More information on this can be found type of conversion can be found in sections 2.3.2 and 3.6.3 of the conversion redpaper:
http://www.redbooks.ibm.com/redpapers/pdfs/redp4293.pdf
Also see:
See the System i ILE Concepts Version 6 Release 1, SC41-5606, manual for more
information about the new create-time options and adaptive code generation ability:
http://pic.dhe.ibm.com/infocenter/iseries/v6r1m0/topic/books/sc415606.pdf
Was this topic helpful?
Document Information
Modified date:
18 December 2019
UID
nas8N1019997