Sign in

docs ILE Concepts

Stored data in modules and programs

Stored data in modules and programs

Stored data in modules and programs

When a module is created, it contains useful data in addition to the compiled code. Depending on the compiler that was used, modules might contain the following types of data:

  • Creation Data (*CRTDTA)

    This is required to re-create or convert the module (for example, to change its optimization level). Newly created modules always contain creation data.

  • Debug Data (*DBGDTA)

    This is required to debug the program that the module is bound into. See Debugging Considerations and Interprocedural analysis (IPA) for more information about debugging.

  • Intermediate Language Data (*ILDTA)

    This is required for the advanced optimization technique of interprocedural analysis (IPA). See Advanced Optimization Techniques for more information.

Use the Display Module (DSPMOD) command to find out what kinds of data are stored in a module. The process of binding copies module data into the program or service program that is created. Intermediate Language Data (*ILDTA) is not copied into programs or service programs.

Use the Display Program (DSPPGM) or Display Service Program (DSPSRVPGM) commands with the DETAIL(*MODULE) parameter to see the details. Programs can contain the following kinds of data in addition to the module data:

  • Creation Data (*CRTDTA)

    This is required for re-creating the program or service program. Newly created programs always contain this creation data.

  • Block Order Profiling Data (*BLKORD)

    This is generated for application profiling. See Advanced Optimization Techniques for more information.

  • Procedure Order Profiling Data (*PRCORD)

    This is generated for application profiling. See Advanced Optimization Techniques for more information.

Creation Data (*CRTDTA) can exist for the program itself and for each bound module. When the data is created and stored with the module or program, it is observable. The operating system can use the data for operations, such as running the Change Module (CHGMOD) and Change Program (CHGPGM) commands, debugging your program, and using IPA.

You can remove observability with the Remove observable information (RMVOBS) parameter on the Change Module (CHGMOD), Change Program (CHGPGM), and Change Service Program (CHGSRVPGM) commands. If you remove observability, MI programs can no longer access the data.

Note: You cannot undo removing observability.

For most kinds of data, removing observability removes that data from the object. If you no longer need the corresponding function and want to make your object smaller, you can remove the data. However, Creation Data (*CRTDTA) is not removed from the object; it is transformed into an unobservable form. The operating system cannot use the data, but the machine can use unobservable creation data to convert the object.