Retrieve Module Information (QBNRMODI) API


  Required Parameter Group:

1 Receiver variable Output Char(*)
2 Length of receiver variable Input Binary(4)
3 Format name Input Char(8)
4 Qualified module name Input Char(20)
5 Error Code I/O Char(*)

  Default Public Authority: *USE

  Threadsafe: No

The Retrieve Module Information (QBNRMODI) API lets you retrieve module information and place it into a single variable in the calling program. The amount of information returned is limited to the size of the variable. This information is similar to the information returned using the Display Module (DSPMOD) command.

You can use the QBNRMODI API to retrieve the following:


Authorities and Locks

Library Authority
*EXECUTE
Module Authority
*USE
Module Lock
*SHRRD

Required Parameter Group

Receiver variable
OUTPUT; CHAR(*)

The variable that is to receive the information requested. The minimum size for this area is 8 bytes. You can specify the size of this area to be smaller than the format requested if you specify the length of receiver variable parameter correctly. As a result, the API returns only the data that the area can hold.

Length of receiver variable
INPUT; BINARY(4)

The length of the receiver variable. If this value is larger than the actual size of the receiver variable, the results may not be predictable. The minimum value is 8.

Format name
INPUT; CHAR(8)

The content and format of the information returned for the module.

The possible format names are:

MODI0100 Basic module information.
MODI0200 Module size information.

Qualified module name
INPUT; CHAR(20)

The first 10 characters contain the module name. The second 10 characters contain the name of the library where the module is located.

You can use these special values for the library name:

*CURLIB The job's current library
*LIBL The library list

Error code
I/O; CHAR(*)

The structure in which to return error information. For the format of the structure, see Error Code Parameter.


MODI0100 Format

The following information is returned for the MODI0100 format. For detailed descriptions of the fields in the table, see Field Descriptions.

Offset Type Field
Dec Hex
0 0 BINARY(4) Bytes returned
4 4 BINARY(4) Bytes available
8 8 CHAR(10) Module name
18 12 CHAR(10) Module library name
28 1C CHAR(10) Module attribute
38 26 CHAR(13) Module creation date and time
51 33 CHAR(10) Source file name
61 3D CHAR(10) Source file library name
71 47 CHAR(10) Source member name
81 51 CHAR(13) Source file change date and time
94 5E CHAR(10) Reserved
104 68 CHAR(10) Module owner
114 72 CHAR(2) Reserved
116 74 BINARY(4) Module CCSID
120 78 CHAR(50) Text description
170 AA CHAR(1) Creation data
171 AB CHAR(10) Sort sequence table name
181 B5 CHAR(10) Sort sequence table library name
191 BF CHAR(10) Language identifier
201 C9 CHAR(3) Reserved
204 CC BINARY(4) Optimization level
208 D0 BINARY(4) Maximum optimization level
212 D4 CHAR(1) Debug data
213 D5 CHAR(1) Module compressed status
214 D6 CHAR(2) Reserved
216 D8 BINARY(4) Minimum number of parameters
220 DC BINARY(4) Maximum number of parameters
224 E0 CHAR(1) Module state
225 E1 CHAR(1) Module domain
226 E2 CHAR(2) Reserved
228 E4 BINARY(4) Number of exported defined symbols
232 E8 BINARY(4) Number of imported (unresolved) symbols
236 EC CHAR(6) Release module created on
242 F2 CHAR(6) Release module created for
248 F8 CHAR(6) Earliest release module can be restored to
254 FE CHAR(1) Enable performance collection
255 FF CHAR(1) Conversion required
256 100 BINARY(4) Offset to program entry procedure name
260 104 BINARY(4) Length of program entry procedure name
264 108 CHAR(1) Program entry procedure name indicator
265 109 CHAR(10) Profile data
275 113 CHAR(1) Intermediate language (IL) data
276 114 CHAR(1) Teraspace storage enabled
277 115 CHAR(1) Storage model
278 116 CHAR(2) Reserved
280 118 BINARY(4) Offset to Licensed Internal Code options
284 11C BINARY(4) Length of Licensed Internal Code options
288 128 CHAR(68) Reserved
356 164 BINARY(4) Number of SQL statements
360 168 CHAR(18) Relational database
378 17A CHAR(10) Commitment control
388 184 CHAR(10) Allow copy of data
398 18E CHAR(10) Close SQL cursor
408 198 CHAR(10) Naming convention
418 1A2 CHAR(10) Date format
428 1AC CHAR(1) Date separator
429 1AD CHAR(10) Time format
439 1B7 CHAR(1) Time separator
440 1B8 CHAR(10) Delay PREPARE
450 1C2 CHAR(10) Allow blocking
460 1CC CHAR(10) Default collection name
470 1D6 CHAR(10) SQL package name
480 1E0 CHAR(10) SQL package library name
490 1EA CHAR(10) Dynamic user profile
500 1F4 CHAR(10) SQL sort sequence table name
510 1FE CHAR(10) SQL sort sequence table library name
520 208 CHAR(10) SQL language identifier
530 212 CHAR(10) Connection method
540 21C BINARY(4) SQL path offset
544 220 BINARY(4) SQL path length
548 224 CHAR(*) Reserved
Module information through offsets
    CHAR(*) Program entry procedure name
    CHAR(*) SQL path
    CHAR(*) Licensed Internal Code options


MODI0200 Format

The following information is returned for the MODI0200 format. For detailed descriptions of the fields in the table, see Field Descriptions.

Offset Type Field
Dec Hex
0 0 BINARY(4) Bytes returned
4 4 BINARY(4) Bytes available
8 8 CHAR(10) Module name
18 12 CHAR(10) Module library name
Module size and limit information
28 1C BINARY(4) Current total module size
32 20 BINARY(4) Maximum module size
36 24 BINARY(4) Current procedures and constants size
40 28 BINARY(4) Maximum procedures and constants size
44 2C BINARY(4) Current debug space size
48 30 BINARY(4) Maximum debug space size
52 34 BINARY(4) Current associated space size
56 38 BINARY(4) Maximum associated space size
60 3C BINARY(4) Current module constants size
64 40 BINARY(4) Maximum module constants size
68 44 BINARY(4) Current static storage size
72 48 BINARY(4) Maximum static storage size
76 4C BINARY(4) Current dictionary mapping table size
80 50 BINARY(4) Maximum dictionary mapping table size
84 54 BINARY(4) Current exception mapping table size
88 58 BINARY(4) Maximum exception mapping table size
92 5C BINARY(4) Current exception mapping table list area size
96 60 BINARY(4) Maximum exception mapping table list area size
100 64 BINARY(4) Current binding specifications component size
104 68 BINARY(4) Maximum binding specifications component size
108 6C BINARY(4) Current string directory component size
112 70 BINARY(4) Maximum string directory component size
116 74 BINARY(4) Current dictionary component size
120 78 BINARY(4) Maximum dictionary component size
124 7C BINARY(4) Current instructions component size
128 80 BINARY(4) Maximum instructions component size
132 84 BINARY(4) Current initialization component size
136 88 BINARY(4) Maximum initialization component size
140 8C BINARY(4) Current alias component size
144 90 BINARY(4) Maximum alias component size
148 94 BINARY(4) Current type information component size
152 98 BINARY(4) Maximum type information component size
156 9C BINARY(4) Current literal pool component size
160 A0 BINARY(4) Maximum literal pool component size
164 A4 BINARY(4) Current static storage work area size
168 A8 BINARY(4) Maximum static storage work area size
172 AC BINARY(4) Current binding work area size
176 B0 BINARY(4) Maximum binding work area size
180 B4 BINARY(4) Current number of auxiliary storage segments
184 B8 BINARY(4) Maximum number of auxiliary storage segments
188 BC BINARY(4) Current number of static storage allocations
192 C0 BINARY(4) Maximum number of static storage allocations
196 C4 BINARY(4) Current number of procedures
200 C8 BINARY(4) Maximum number of procedures
204 CC BINARY(4) Current number of copyrights
208 D0 BINARY(4) Maximum number of copyrights
212 D4 CHAR(4) Reserved
216 D8 BINARY(8) Current static storage size - long
224 E0 BINARY(8) Maximum static storage size - long
232 E8 CHAR(84) Reserved
Procedure size and limit information
316 13C BINARY(4) Current automatic storage allocation size
320 140 BINARY(4) Maximum automatic storage allocation size
324 144 BINARY(4) Offset to largest automatic storage allocation procedure
328 148 BINARY(4) Length of largest automatic storage allocation procedure
332 14C BINARY(4) Current Licensed Internal Code stack allocation size
336 150 BINARY(4) Maximum Licensed Internal Code stack allocation size
340 154 BINARY(4) Offset to largest Licensed Internal Code stack allocation procedure
344 158 BINARY(4) Length of largest Licensed Internal Code stack allocation procedure
348 15C BINARY(4) Current debug statement mapping table size
352 160 BINARY(4) Maximum debug statement mapping table size
356 164 BINARY(4) Offset to largest debug statement mapping table procedure
360 168 BINARY(4) Length of largest debug statement mapping table procedure
364 16C BINARY(4) Current exception statement mapping table size
368 170 BINARY(4) Maximum exception statement mapping table size
372 174 BINARY(4) Offset to largest exception statement mapping table procedure
376 178 BINARY(4) Length of largest exception statement mapping table procedure
380 17C BINARY(4) Current machine instruction range mapping size
384 180 BINARY(4) Maximum machine instruction range mapping size
388 184 BINARY(4) Offset to largest machine instruction range mapping procedure
392 188 BINARY(4) Length of largest machine instruction range mapping procedure
396 18C BINARY(4) Current largest procedure size
400 190 BINARY(4) Maximum largest procedure size
404 194 BINARY(4) Offset to largest procedure name
408 198 BINARY(4) Length of largest procedure name
412 19C CHAR(*) Reserved
Procedure information through offsets
    CHAR(*) Largest automatic storage allocation procedure name
    CHAR(*) Largest Licensed Internal Code stack allocation procedure name
    CHAR(*) Largest debug statement mapping table procedure name
    CHAR(*) Largest exception statement mapping table procedure name
    CHAR(*) Largest machine instruction range mapping procedure name
    CHAR(*) Largest procedure name


Field Descriptions

For more detailed information than that provided in the following field descriptions, refer to the Control Language (CL) information in the iSeries Information Center for the Create XXX Module (CRTxxxMOD) commands.

Allow blocking. Indicates whether blocking is used to improve the performance of certain SQL statements.

Possible values are:

*NONE Blocking is not used.
*READ Blocking is used for read-only cursors when running COMMIT(*NONE) and there are no EXECUTE or EXECUTE IMMEDIATE statements.
*ALLREAD Blocking is used for all read-only cursors when running COMMIT(*NONE) or COMMIT(*CHG).

Allow copy of data. Indicates whether a copy of the data can be used in the implementation of an SQL query.

Possible values are:

*NO A copy of the data cannot be used.
*YES A copy of the data can be used when needed.
*OPTIMIZE The system determines whether a copy of the data is used for optimal performance.

Bytes available. The number of bytes of data available to be returned. All available data is returned if enough space is provided.

Bytes returned. The number of bytes of data returned.

Close SQL cursor. Specifies when SQL cursors are implicitly closed and SQL prepared statements are implicitly discarded.

Possible values are:

*ENDMOD When the module ends.
*ENDACTGRP When the activation group is deleted.

Commitment control. The level of commitment control that was specified on the SQL precompile.

Possible values are:

*NONE No commitment control was specified on the SQL precompile. Uncommitted changes in other jobs can be seen.
*CHG Objects referred to in SQL COMMENT ON, CREATE, DROP, GRANT, LABEL ON, and REVOKE statements, and updated, deleted, or inserted rows (records) are locked until the end of the unit of work (transaction). Uncommitted changes in other jobs can be seen.
*CS Objects referred to in SQL COMMENT ON, CREATE, DROP, GRANT, LABEL ON, and REVOKE statements, and updated, deleted, or inserted rows (records) are locked until the end of the unit of work (transaction). A row (record) that is selected but not updated is locked until the next row (record) is selected. Uncommitted changes in other jobs cannot be seen.
*ALL Objects referred to in SQL COMMENT ON, CREATE, DROP, GRANT, LABEL ON, and REVOKE statements, and all rows selected, updated, deleted, or inserted are locked until the end of the unit of work (transaction). Uncommitted changes in other jobs cannot be seen.

Connection method. Indicates whether connections are allowed to one or more relational databases.

The following special values can be returned:

*RUW Only one connection to a relational database is allowed. Consecutive CONNECT statements result in the previous connection being disconnected before a new connection is established.
*DUW Connections to several relational databases are allowed. Consecutive CONNECT statements to additional relational databases do not result in disconnection of previous connections. The SET CONNECTION statement can be used to switch between connections. Read-only connections may result.

Conversion required. Indicator as to whether the module has been converted to reduced instruction set computer (RISC) format or if conversion is still required.

0 Conversion is not required. It has already been converted.
1 Conversion is required.

Creation data. Whether the module has all creation data and if that data is observable or unobservable. All observable creation data is needed to re-create the module using the Change Module (CHGMOD) command. All creation data (either observable or unobservable) is needed to convert the module during restore.

0 *NO. Not all the creation data is present.
1 *YES. All the creation data is present and observable.
2 *UNOBS. All the creation data is present but not all of that data is observable.

Current alias component size. The size, in bytes, of the alias component. The size is the decompressed size, even if the module is compressed. The current size increases as more data objects, particularly arrays and structures, are added to the module.

Current associated space size. The size, in bytes, of the associated space. The number of SQL statements in the module may affect the current size.

Current automatic storage allocation size. The size, in bytes, of the largest automatic storage allocation associated with the procedure referenced by the offset to the largest automatic storage allocation procedure name for this module. The current size increases as more automatic variables and bound procedure calls are added.

Current binding specifications component size. The size, in bytes, of the binding specifications component. The size is the decompressed size, even if the module is compressed. The current size increases as imported and exported procedures and data items are added.

Current binding work area size. The size, in bytes, of the binding work area. The size is the decompressed size, even if the module is compressed. The current size increases as imports and exports are added to the module.

Current debug space size. The size, in bytes, of the debug space. The size is the decompressed size, even if the module is compressed. See the debug view (DBGVIEW) parameter of the Create xxx Module (CRTxxxMOD) command for more information on the different debug view levels you can specify at create time. You can completely remove the debug view data from the module by using the remove observability (RMVOBS) parameter of the Change Module (CHGMOD) command.

Current debug statement mapping table size. The size, in bytes, of the debug statement mapping table associated with the procedure referenced by the offset to the largest debug statement mapping table procedure name for this module. The current size increases as statements are added or increase in complexity.

Current dictionary component size. The size, in bytes, of the dictionary component. The size is the decompressed size, even if the module is compressed. The current size increases as more data objects, exception handlers, constants, and procedures are added.

Current dictionary mapping table size. The amount of space, in bytes, for the dictionary mapping table. The size is the decompressed size, even if the module is compressed. The dictionary mapping table does not exist if the DBGVIEW(*NONE) option is used when the module is created. If it does exist, its current size depends on the number of different variables that are declared in the module.

Current exception mapping table list area size. The amount of space, in bytes, for the exception mapping table list area. The size is the decompressed size, even if the module is compressed. The current size depends on the number of exception handlers that are enabled in the code. The handlers could be either defined by the user or defined by the compiler to handle exceptions in the generated code.

Current exception mapping table size. The amount of space, in bytes, for the exception mapping table. The size is the decompressed size, even if the module is compressed. The current size depends on the number of exception handlers that are either declared by the user or defined by the compiler to handle exceptions in the generated code.

Current exception statement mapping table size. The size, in bytes, of the exception statement mapping table associated with the procedure referenced by the offset to the largest exception statement mapping table procedure name for this module. This table is used to map high-level language statements to Licensed Internal Code instructions. The current size increases as statements are added or increase in complexity.

Current initialization component size. The size, in bytes, of the initialization component. The size is the decompressed size, even if the module is compressed. The current size increases as more statements to statically initialize data objects are added.

Current instructions component size. The size, in bytes, of the instructions component. The size is the decompressed size, even if the module is compressed.

Current largest procedure size. The size, in bytes, of the largest procedure in the module.

Current Licensed Internal Code stack allocation size. The size, in bytes, of the Licensed Internal Code stack allocation associated with the procedure referenced by the offset to the largest Licensed Internal Code stack allocation procedure name for this module. The current size increases at higher levels of optimization.

Current literal pool component size. The size, in bytes, of the literal pool component. The size is the decompressed size, even if the module is compressed. The current size increases as more literals or initializations are added to the module.

Current machine instruction range mapping size. The size, in bytes, of the machine instruction range mapping associated with the procedure referenced by the offset to the largest machine instruction range mapping procedure name for this module. The number of times exception handlers are enabled and disabled affects the current size. Also, some instructions, like packed decimal arithmetic, affect this size.

Current module constants size. The amount of space, in bytes, for module constants. The size is the decompressed size, even if the module is compressed. Changing the number of large aggregate constants or the number of smaller constants may affect the current size.

Current number auxiliary storage segments. The number of auxiliary storage segments used by this module.

Current number of copyrights. The number of copyrights defined in this module.

Current number of procedures. The number of procedures declared in this module.

Current number of static storage allocations. The number of static storage allocations used by this module. The current number increases as static data items (particularly imported data items) are added to the module.

Current procedures and constants size. The current amount of space, in kilobytes, for procedures and constants. The size is the decompressed size, even if the module is compressed. The current size increases as more instructions are added. The number of literals and the size of the literal values may have an effect on the current size. This number could be zero in which case it means the size is less than 1 kilobyte.

Current static storage size. The amount of static storage, in bytes, required for the module. The size is the decompressed size, even if the module is compressed. As more and larger static and exported variables are declared, the current size increases. A value of 4294967295 will be given if 4 gigabytes (4294967296) or greater is needed. In this case, the current static storage size - long field should be used instead.

Current static storage size - long. The current amount of static storage, in bytes, required for the module.

Current static storage work area size. The size, in bytes, of the static storage work area. The size is the decompressed size, even if the module is compressed. The current size increases as static data items or initializations are added to the module.

Current string directory component size. The size, in bytes, of the string directory component. The size is the decompressed size, even if the module is compressed. The current size increases as imported and exported procedures and data items are added.

Current total module size. The size of the module, in kilobytes. The size is the decompressed size, even if the module is compressed.

Current type information component size. The size, in bytes, of the type information component. The size is the decompressed size, even if the module is compressed. The current size increases as more procedures are added to the module.

Date format. Specifies the format used when accessing date result columns through SQL. All output date fields are returned in this format. For input date strings, the value you specify is used to determine whether the date is a valid format.

Possible values are:

*USA USA format
*ISO International Standards Organization format
*EUR European format
*JIS Japanese Industrial Standard Christian Era
*MDY Month/day/year format
*DMY Day/month/year format
*YMD Year/month/day format
*JUL Julian format

Date separator. Specifies the separator used when accessing date result columns. A blank value indicates either that there are no SQL statements or that the separator character is a blank. Assume the latter if the number of SQL statements parameter is not zero.

Debug data. Indicates whether debug data exists for this module. If debug data exists, the module may be debugged using the source debugger.

0 The module does not contain debug data.
1 The module does contain debug data.

Default collection name. Specifies the collection name used for the unqualified names of tables, views, indexes, and SQL packages. *NONE indicates there is no default collection.

Delay PREPARE. Indicates whether SQL prepare processing can be delayed until the statement is actually used.

Possible values are:

*YES Prepare processing can be delayed.
*NO Prepare processing cannot be delayed.

Dynamic user profile. Specifies the user profile used for dynamic SQL statements.

The following special values can be returned:

*USER Local dynamic SQL statements are run under the profile of the module's user. Distributed dynamic SQL statements are run under the profile of the SQL package's user.
*OWNER Local dynamic SQL statements are run under the profile of the module's owner. Distributed dynamic SQL statements are run under the profile of the SQL package's owner.

Earliest release module can be restored to. The earliest version, release, and modification level of the operating system to which the module may be restored.

The field has a VvRrMm format, where:

Vv The character V is followed by a 1-character version number.
Rr The character R is followed by a 1-character release level.
Mm The character M is followed by a 1-character modification level.

Enable performance collection. The level of performance collection enabled for this module.

The following values can be returned:

'00'X *NONE or '10'X *PEP This gives the entry/exit information for the PEP only. No entry/exit hooks in the module's internal procedures and no precall or postcall hooks around calls to other procedures are included. Note: If *NONE is shown and the module was created or re-created on an iSeries server running Version 3 Release 6 Modification 0 prior to the installation of PTF MF11968, the module will not have any performance collection enabled. To enable performance collection, use one of the following commands and specify ENBFPRCOL(*PEP):
  • Change Module (CHGMOD)
  • Change Program (CHGPGM)
  • Change Service Program (CHGSRVPGM)
'50'X *ENTRYEXIT *NONLEAF This gives the entry/exit information on all of the non-leaf procedures in the module. This includes the PEP routine. This is useful to capture information on most routines but not at the expense of destroying the 'leaf-ness' of the leaf procedures.
'70'X *ENTRYEXIT *ALLPRC This gives the entry/exit information on all the procedures of the module (including those that were leaf procedures). This includes the PEP routine. This is useful to capture information on all procedures.
'D0'X *FULL *NONLEAF This gives the entry/exit information on all the procedures of the module that are not leaf procedures. This includes the PEP routine. Precall and postcall hooks around calls to external procedures are included.
'F0'X *FULL *ALLPRC This gives the entry/exit information on all procedures of the module (including those that were leaf procedures). This includes the PEP routine. Precall and postcall hooks around calls to external procedures are also included. This is useful to capture information on all procedures.

Intermediate language (IL) data. Whether the module has intermediate language (IL) data.

1 The module contains IL data.
0 The module does not contain IL data.

Language identifier. The language identifier used when the module was compiled. A

possible special value is:

*JOBRUN The language identifier associated with the job at the time the program (in which the module is bound) runs.

Note: This language identifier does not apply to DB2 for iSeries statements that may be contained in this module.

Largest automatic storage allocation procedure name. The name of the largest automatic storage allocation procedure in the module.

Largest debug statement mapping table procedure name. The name of the largest debug statement mapping table procedure in the module.

Largest exception statement mapping table procedure name. The name of the largest exception statement mapping table procedure in the module.

Largest Licensed Internal Code stack allocation procedure name. The name of the largest Licensed Internal Code stack allocation procedure in the module.

Largest machine instruction range mapping procedure name. The name of the largest machine instruction range mapping procedure in the module.

Largest procedure name. The name of the largest procedure in the module.

Length of largest automatic storage allocation procedure name. The size, in bytes, of the name of the largest automatic storage allocation procedure in this module.

Length of largest debug statement mapping table procedure name. The size, in bytes, of the name of the largest debug statement mapping table procedure.

Length of largest exception statement mapping table procedure name. The size, in bytes, of the name of the largest exception statement mapping table procedure.

Length of largest Licensed Internal Code stack allocation procedure name. The size, in bytes, of the name of the largest Licensed Internal Code stack allocation procedure.

Length of largest machine instruction range mapping procedure name. The size, in bytes, of the name of the largest machine instruction range mapping procedure.

Length of largest procedure name. The size, in bytes, of the name of the largest procedure.

Length of Licensed Internal Code options. The size, in two-byte characters, of the Licensed Internal Code options string. This is 0 if no Licensed Internal Code options were used for this module.

Length of program entry procedure name. The size, in bytes, of the program entry procedure name.

Licensed Internal Code options. The Licensed Internal Code options being used by the module. This field is specified in UCS-2 (CCSID 13488).

Maximum alias component size. The maximum possible size, in bytes, of the alias component.

Maximum associated space size. The maximum possible size, in bytes, of the associated space.

Maximum automatic storage allocation size. The maximum possible size, in bytes, of the largest automatic storage allocation associated with a procedure for a module.

Maximum binding specifications component size. The maximum possible size, in bytes, of the binding specifications component.

Maximum binding work area size. The maximum possible size, in bytes, of the binding work area.

Maximum debug space size. The maximum possible size, in bytes, of the debug space.

Maximum debug statement mapping table size. The maximum possible size, in bytes, of the debug statement mapping table associated with a procedure for a module.

Maximum dictionary component size. The maximum possible size, in bytes, of the dictionary component.

Maximum dictionary mapping table size. The maximum possible amount of space, in bytes, for the dictionary mapping table.

Maximum exception mapping table list area size. The maximum possible amount of space, in bytes, for the exception mapping table list area.

Maximum exception mapping table size. The maximum possible amount of space, in bytes, for the exception mapping table.

Maximum exception statement mapping table size. The maximum possible size, in bytes, of the exception statement mapping table associated with a procedure for a module.

Maximum initialization component size. The maximum possible size, in bytes, of the initialization component.

Maximum instructions component size. The maximum possible size, in bytes, of the instructions component.

Maximum largest procedure size. The maximum possible size, in bytes, of a procedure in a module.

Maximum Licensed Internal Code stack allocation size. The maximum possible size, in bytes, of the Licensed Internal Code stack allocation associated with a procedure for a module.

Maximum literal pool component size. The maximum possible size, in bytes, of the literal pool component.

Maximum machine instruction range mapping size. The maximum possible size, in bytes, of the machine instruction range mapping associated with a procedure for a module.

Maximum module constants size. The maximum possible amount of space, in bytes, for module constants.

Maximum module size. The largest size, in kilobytes, allowed for a module.

Maximum number auxiliary storage segments. The maximum possible number of auxiliary storage segments used by a module.

Maximum number of copyrights. The maximum possible number of copyrights defined in a module.

Maximum number of parameters. The maximum number of parameters that are to be received by the program entry procedure if one is present in the module.

Maximum number of procedures. The maximum possible number of procedures declared in a module.

Maximum number of static storage allocations. The maximum possible number of static storage allocations used by a module.

Maximum optimization level. The highest level of optimization you may request. If observability has been removed from the module, this maximum optimization level value might not be the same as the one specified when the module was created.

The following values can be returned:

65535 The module is not restricted to a maximum optimization level. It can be retranslated to any of the supported optimization levels. 65535 is also known as *NOMAX.
40 Maximum level of optimization. This level includes all the optimizations performed at optimization level 30. In addition, it includes optimization that disables call and instruction tracing. Thus, tracing of modules created at this optimization level cannot be done.
30 More optimization is performed in addition to those performed at optimization level 20. Variables cannot be changed but can be displayed while the program is being debugged. However, the displayed value of the variable during debugging may not be its actual value. 30 is also known as *FULL.
20 Some optimization is performed on the generated code. When the module optimized at this level is being debugged, the variables can be displayed but not changed. This level improves the performance of the module slightly over level 10. 20 is also known as *BASIC.
10 No additional optimization is performed on the generated code. Variables can be displayed and changed when the program is being debugged. With no optimization of the code, this value provides the lowest level of module performance. 10 is also known as *NONE.

Maximum procedures and constants size. The maximum possible amount of space, in kilobytes, for procedures and constants. This number could be zero, in which case it means the size is less than 1 kilobyte.

Maximum static storage size. The maximum possible amount of static storage, in kilobytes, required for a module.

Maximum static storage size - long. The maximum possible amount of static storage, in bytes, required for a module.

Maximum static storage work area size. The maximum possible size, in bytes, of the static storage work area.

Maximum string directory component size. The maximum possible size, in bytes, of the string directory component.

Maximum type information component size. The maximum possible size, in bytes, of the type information component.

Minimum number of parameters. The minimum number of parameters that are to be received by the program entry procedure if one is present in the module.

Module attribute. The programming language in which the module is written or the product that produced the module.

Module CCSID (Coded Character Set ID). The coded character set identifier (CCSID) for this module.

Module compressed status. Indicates whether the module is in compressed format.

The following values can be returned:

0 The module is not in a compressed status.
1 The module is in a compressed status.

Module creation date and time. The date and time when the module was created. The creation date and time field is in the CYYMMDDHHMMSS format as follows:

C Century, where 0 indicates years 19xx and 1 indicates years 20xx.
YY Year
MM Month
DD Day
HH Hour
MM Minute
SS Second

Module domain. The domain of the module.

The possible value is:

S The module is system domain.

Module library name. The library that contains the module.

Module name. The name of the module whose information is being given.

Module owner. The name of the user profile of the user who owns this module.

Module state. The state of the module.

The Possible values are:

I The module is inherit state and can be bound together with either system state modules or user state modules.
S The module is system state and must be bound with other system state modules or inherit state modules.
U The module is user state and must be bound with other user state modules or inherit state modules.

Naming convention. The naming convention used for naming objects in SQL statements.

Possible values are:

*SQL The SQL naming convention is used.
*SYS The system naming convention is used.

Number of exported defined symbols. The number of exported procedures and variables in this module.

Number of imported (unresolved) symbols. The number of imported procedures and variables in this module.

Number of SQL statements. The number of DB2 UDB for iSeries statements contained in the module.

Offset to largest automatic storage allocation procedure name. The offset from the beginning of the receiver variable where the largest automatic storage allocation procedure begins.

Offset to largest debug statement mapping table procedure name. The offset from the beginning of the receiver variable where the largest debug statement mapping table procedure name begins.

Offset to largest exception statement mapping table procedure name. The offset from the beginning of the receiver variable where the largest exception statement mapping table procedure name begins.

Offset to largest Licensed Internal Code stack allocation procedure name. The offset from the beginning of the receiver variable where the largest Licensed Internal Code stack allocation procedure name begins.

Offset to largest machine instruction range mapping procedure name. The offset from the beginning of the receiver variable where the largest machine instruction range mapping procedure name begins.

Offset to largest procedure name. The offset from the beginning of the receiver variable where the largest procedure name begins.

Offset to Licensed Internal Code options. The offset from the beginning of the receiver variable where the Licensed Internal Code options begin.

Offset to program entry procedure name. The offset from the beginning of the receiver variable where the program entry procedure name begins.

Optimization level. Optimization levels cause the translator to produce machine code that reduces the amount of system resources necessary to run the program. The more optimization, the more efficiently the module runs on the system. Also, with more optimization you may not be able to change or view variables that have been optimized.

The Possible values are:

65535 The module is not restricted to a maximum optimization level. It can be retranslated to any of the supported optimization levels. 65535 is also known as *NOMAX.
40 Maximum level of optimization. This level includes all the optimizations performed at optimization level 30. In addition, it includes optimization that disables call and instruction tracing. Thus, tracing of modules created at this optimization level cannot be done.
30 More optimization is performed in addition to those performed at optimization level 20. Variables cannot be changed but can be displayed while the program is being debugged. However, the displayed value of the variable during debugging may not be its actual value. 30 is also known as *FULL.
20 Some optimization is performed on the generated code. When the module optimized at this level is being debugged, the variables can be displayed but not changed. This level improves the performance of the module slightly over level 10. 20 is also known as *BASIC.
10 No additional optimization is performed on the generated code. Variables can be displayed and changed when the program is being debugged. With no optimization of the code, this value provides the lowest level of module performance. 10 is also known as *NONE.

Profile data. The profile data attribute for the module.

*NOCOL The collection of profile data is not enabled. The module will not collect profile data when it is included in a program or service program object.
*COL The collection of profile data is enabled. The module will collect profile data when it is included in a program or service program object.

Program entry procedure name. The name of the program entry procedure if one is present in the module.

Program entry procedure name indicator. Indicates if a program entry procedure is present in the module.

0 The module does not have a program entry procedure.
1 The module does have a program entry procedure.

Relational database. The default relational database that was specified on the SQL precompile.

Possible values are:

*LOCAL The module can access data only on the local system.
Non-blank value other than *LOCAL The name associated with this module in the relational database index.

Release module created for. The version, release, and modification level of the operating system for which the module was created.

The field has a VvRrMm format, where:

Vv The character V is followed by a 1-character version number.
Rr The character R is followed by a 1-character release level.
Mm The character M is followed by a 1-character modification level.

Release module created on. The version, release, and modification level of the operating system that was running on the system when the module was created. The field has a VvRrMm format, where:

Vv The character V is followed by a 1-character version number.
Rr The character R is followed by a 1-character release level.
Mm The character M is followed by a 1-character modification level.

Reserved. An ignored field.

Sort sequence table library name. The name of the library that is used to locate the sort sequence table.

Possible special values are:

*LIBL The library list is searched when the program (in which the module is bound) runs.
*CURLIB The current library is searched when the program (in which the module is bound) runs.

Sort sequence table name. The name of the sort sequence table used when the module was compiled.

Possible special values are:

*HEX No sort sequence is used.
*JOBRUN The SRTSEQ value associated with the job at the time the program (in which the module is bound) runs.
*LANGIDSHR The shared sort sequence for the language identifier (LANGID).
*LANGIDUNQ The unique sort sequence for the language identifier.
Note: This sort sequence table does not apply to DB2 UDB for iSeries statements that may be contained in this module.

Source file change date and time. The date and time when the source member that was used to create this module was last changed. The source file change date and time field is in the CYYMMDDHHMMSS format as follows:

C Century, where 0 indicates years 19xx and 1 indicates years 20xx.
YY Year
MM Month
DD Day
HH Hour
MM Minute
SS Second

Source file library name. The library that contained the source file that was used to create this module.

Source file name. The source file that contained the source member that was used to create this module. If this field is blank, the module was created from an inline source file

Source member name. The source file member from which this module was created.

SQL language identifier. Returns the language identifier used when the module was compiled. This information is blank if the module does not contain any language identification information.

The special value that can be returned is:

*JOBRUN The language identifier is the LANGID associated with the job at the time the program (in which the module is bound) runs.

SQL package library name. Specifies the name of the library containing the SQL package. A blank indicates the module is not to be distributed.

The following possible special values can be returned:

*LIBL The SQL package is found by looking for it in the library list when the program (in which the module is bound) runs.
*CURLIB The SQL package is found in the current library when the program (in which the module is bound) runs.

SQL package name. Specifies the name of the SQL package created on the relational database specified on the RDB parameter of the command that created this module. *NONE indicates that this is not a distributed module.

SQL path. The list of libraries used during resolution of functions and data types within SQL statements. The list is in the form of repeating library names, each surrounded by double quotes and separated by commas.

SQL path length. The length, in bytes, of the SQL path.

SQL path offset. The offset, in bytes, from the beginning of this format definition to the beginning of the SQL path.

SQL sort sequence table library name. Returns the name of the library that is used to locate the SQL sort sequence table. This information is blank either if the module does not contain any SQL sort sequence information, or if a special value was returned for the SQL sort sequence table name.

The following possible special values that can be returned for the library are:

*LIBL The SQL sort sequence table is found by looking for it in the library list when the program (in which the module is bound) runs.
*CURLIB The SQL sort sequence table is found in the current library when the program (in which the module is bound) runs.

SQL sort sequence table name. Returns the SQL statement sort sequence table name used when the module was created. This information is blank if the module does not contain any SQL sort sequence information.

The following possible special values can also be returned:

*HEX No SQL sort sequence is used for the SQL statements.
*JOBRUN The SQL sort sequence is the SRTSEQ value associated with the job at the time the SQL statements within the module are run.
*LANGIDSHR The shared SQL sort sequence for the language identifier (LANGID) is used for the SQL statements.
*LANGIDUNQ The unique SQL sort sequence for the language identifier (LANGID) is used for the SQL statements.
Note: This sort sequence table does not apply to DB2 UDB for iSeries statements that may be contained in this module.

Storage model. Where the automatic and static storage for this bound module is allocated at run time.

The following values can be returned:

0 *SNGLVL Automatic and static storage are allocated from single-level storage.
1 *TERASPACE Automatic and static storage are allocated from teraspace.
2 *INHERIT Automatic and static storage are allocated from either single-level storage or teraspace, depending on the activation.

Teraspace storage enabled. The teraspace storage capability for this module.

Possible values are:

'00'X *NO The module is not teraspace storage enabled.
'80'X *YES The module is teraspace storage enabled.

Text description. The text description that was provided for this module.

Time format. Specifies the format used when accessing time -result columns through SQL. All output time fields are returned in this format. For input time strings, the value you specify is used to determine whether the time is a valid format.

Possible values are:

*USA USA format
*ISO International Standards Organization format
*EUR European format
*JIS Japanese Industrial Standard Christian Era
*HMS Hours/minutes/seconds format

Time separator. Specifies the separator used when accessing time result columns. A blank value indicates that there are no SQL statements or that the separator character is a blank. Assume the latter if the number of SQL statements parameter is not zero.


Error Messages

Message ID Error Message Text
CPF24B4 E Severe error while addressing parameter list.
CPF3CF1 E Error code parameter not valid.
CPF3C19 E Error occurred with receiver variable specified.
CPF3C21 E Format name &1 is not valid.
CPF3C24 E Length of the receiver variable is not valid.
CPF3C90 E Literal value cannot be changed.
CPF5CE7 E Error occurred while retrieving *MODULE data.
CPF8122 E &8 damage on library &4.
CPF8123 E Damage on object information for library &4.
CPF813D E Service program &4 in &9 damaged.
CPF9801 E Object &2 in library &3 not found.
CPF9802 E Not authorized to object &2 in &3.
CPF9803 E Cannot allocate object &2 in library &3.
CPF9804 E Object &2 in library &3 damaged.
CPF9806 E Cannot perform function for object &2 in library &3.
CPF9807 E One or more libraries in library list deleted.
CPF9808 E Cannot allocate one or more libraries on library list.
CPF9810 E Library &1 not found.
CPF9811 E Program &1 in library &2 not found.
CPF9820 E Not authorized to use library &1.
CPF9821 E Not authorized to program &1 in library &2.
CPF9830 E Cannot assign library &1.

API introduced: V3R6
Top | Program and CL Command APIs | APIs by category