The DEFLMOD statement defines the programs that should be analyzed by DYNAMOD. One or more statements can be used to define the programs used by DYNAMOD.
The DYNAMOD option allows SIMULATE 2000 to interface with the operating system facility responsible for loading programs into memory. During the load process, SIMULATE 2000 scans selected programs for instructions that access the CVT, or issue the STCK instruction. The product can then patch the program in memory to allow the use of alternate clocks.
This facility is also used to intercept IMS DC transactions that access the system clock via the IO-PCB-DATE and IO-PCB-TIME fields. If SCANFOR(IMS) has been specified for an IMS DC transaction, the option enables the IMS DC extensions so the IOPCB clock fields are initialized when the transaction obtains the IOPCB with a GET UNIQUE or GET NEXT.
To use the DEFLMOD statements, the DYNAMOD option must be activated. Please issue the following DIF CONSOLE command, or place a start card in the START00 member in the PARMLIB dataset allocated to the DIF started task.
F DIF,START PTLFETCH
The PTLTRACE DD DUMMY statement should be added for initial testing on programs that use the DYNAMOD option. With the trace facility enabled, messages are produced for each program loaded by program fetch. Since the DYNAMOD option also uses the an SVC 11 call to determine whether the program will be using an alternate date, the trace messages can be very helpful in troubleshooting.
Limiting the DYNAMOD
option
The DYNAMOD option can be limited to limited to specific jobs, load modules, CSECTS and displacements within a program. The DEFLMOD statement requires one or more program names to be specified. If you wish to further limit the scan process, the JOBNAME parameter can limit scanning to only the jobs specified by the parameter.
When the DYNAMOD option modifies a program, trace messages about the change are sent to the JES message log. If the modifications made by the program fetch facility adversely affect program performance, the EXCLUDE parameter can be used to disable specific changes made to the program. To disable a modification, specify the offset(s) of the changes to be bypassed by the program fetch facility. Conversely, if you want to limit testing to only specific locations in a load module, the INCLUDE parameter can be used to limit modifications to specific locations in the program.
If your applicaiton is a load module made up of multiple programs, the CSECT parameter can be used to limit the scan facility to only specified modules.
DEFLMOD ( pgmname1,pgmname2,... )
CHECKFORALTDATE
CSECT( name COUNT( num ) ) EXCLUDE( offset1,offset2,... ) INCLUDE( offset1,offset2,... ) JOBNAME( jobname1,jobname2,... ) SCANFOR( options )
WRITEMSG( msg1,msg2,... )
WRITESMF( smf1,smf2,... )
( pgmnames )
Function: This is a required parameter. The pgmnames parameter
defines the program name(s) that are candidates for DYNAMOD processing. After the transaction has been loaded into memory, SIMULATE 2000 will examine the related CHECKFORALTDATE and
SCANFOR parameters.
If you want to limit scanning to specific programs within a load module, examine the CSECT parameter. You can also limit the scanning process to specific jobs with the JOBNAME parameter.
Note: The program names can contain wildcard characters to perform pattern matching: asterisks (*) and question marks (?).
Default: None
Format:The program names must be placed within parentheses, even if only one
program name is listed, and should be separated by commas or blanks. If continuation is required, omit the right parenthesis, and continue the list on the following line. The right parenthesis will terminate the program name list. For example,
( pgmname1, pgmname2,... )
Function:This is an optional parameter. By default, SIMULATE 2000 will
issue an SVC 11 during program fetch to determine whether an alternate date has been requested. If the program is not using an alternate date, the DYNAMOD option will terminate the scan process. The NOCHECKFORALTDATE
parameter can be used to bypass the test for an alternate date.
Default:CHECKFORALTDATE Format:CHECKFORALTDATE or NOCHECKFORALTDATE
CSECT ( csectname )
Function: This is an optional parameter. The CSECTS parameter defines
a program name within the load module which is a candidate for DYNAMOD processing. After the load module has been fetched into memory, SIMULATE 2000 reads the load module text records to obtain the list of CSECT names. The product will then compare the list of names with the module specified on the CSECT parameter. Only matching entries will be scanned.
Note: The CSECT name can contain wildcard characters to perform pattern matching: asterisks (*) and question marks (?).
Default: None
Format:The CSECT name must be placed within parentheses. For example, CSECT( csectname )
CSECT ( ... COUNT (num) )
Function: This is an optional parameter. The CSECT parameter define
the program name within the load module which is a candidate for DYNAMOD processing. After the program has been fetched into memory and selected for scanning by csectname parameter on the DEFLMOD statement, SIMULATE 2000 reads the load module text records to obtain the list of CSECT names. The COUNT parameter defines the size of the table used to buffer the CSECT names.
Default: COUNT(100)
Format: CSECT( csectname COUNT( num ) )
EXCLUDE( offset1,offset2,... )
Function:This is an optional parameter. When the DYNAMOD option
modifies a program, trace messages about the change are sent to the JES message log. If the modifications made by the program fetch facility adversely affect program performance, the EXCLUDE parameter can be used to disable specific changes made to the program. To disable a modification, specify the offset(s) of the changes to be bypassed by the program fetch facility.
Default:None
Format:The offsets can be specified as either decimal or hexadecimal values.
Any numeric value is considered decimal. To specify hexidecimal values, use the same x’offset’ value displayed by the trace messages documenting the change. For example,
EXCLUDE(x’2BC’, x’52A’)
The offsets must be placed within parentheses, and should be separated by commas or blanks. If continuation is required, omit the right parenthesis, and continue the list on the following line. The right parenthesis will terminate the token list.
EXCLUDE( offset1,offset2,... )
INCLUDE( offset1,offset2,... )
Function:This is an optional parameter. When the DYNAMOD option
modifies a program, trace messages about the change are sent to the JES message log. If the modifications made by the program fetch facility adversely affect program performance, the INCLUDE parameter can be used to select specific offsets that can be changed in the program. To enable a modification, specify the offset(s) of the changes that can be made by the program fetch facility.
Default:None
Format:The offsets can be specified as either decimal or hexadecimal values.
Any numeric value is considered decimal. To specify hexidecimal values, use the same x’offset’ value displayed by the trace messages documenting the change. For example,
INCLUDE(x’2BC’, x’52A’)
The offsets must be placed within parentheses, and should be separated by commas or blanks. If continuation is required, omit the right parenthesis, and continue the list on the following line. The right parenthesis will terminate the token list.
INCLUDE( offset1,offset2,... )
JOBNAME( jobnames )
Function: This is an optional parameter. The jobnames parameter defines
the jobnames that are candidates for DYNAMOD processing. After the program has been loaded into memory and selected for scanning by pgmnames list on the DEFLMOD statement, SIMULATE 2000 will examine the JOBNAME parameter. If a JOBNAME parameter has been specified, the product will only continue the scan process when the current jobname
matches an entry in the list.
Note: The jobnames specified on this parameter can also represent started task and TSO userids.
Note: The program names can contain wildcard characters to perform pattern matching: asterisks (*) and question marks (?).
Default: None
Format:The jobnames must be placed within parentheses, and should be
separated by commas or blanks. If continuation is required, omit the right parenthesis, and continue the list on the following line. The right parenthesis will terminate the jobname list. For example,
JOBNAME( jobname1, jobname2,... )
SCANFOR( options )
Function:This is an optional parameter. The SCANFOR parameter controls
the DYNAMOD scan process. If SCANFOR(STCK) has been specified, all STCK instructions in the program are modified to pass control to SIMULATE 2000. For programs that access the CVT, the SCANFOR(CVTDATE)
modification allows SIMULATE 2000 to intercept the request. Lastly, the SCANFOR(IMS) parameter can be used to intercept IMS DC programs that access the system clock with the IOPCB date and time fields.
Default:SCANFOR( CVTDATE, STCK, NOIMS)
Format:CVTDATE or NOCVTDATE
IMS or NOIMS STCK or NOSTCK
WRITEMSG( msg1,msg2,... )
Function: When the DYNAMOD option intercepts a program, the
WRITEMSG parameter can be used to issue a message. The name of one or more DEFMSG statements can be specified by the WRITEMSG parameter. The DEFMSG statement(s) are responsible for building and writing the message.
Default: None
Format: WRITEMSG ( name ) or WRITEMSG( name1,name2,... )
names are 1 to 20 characters long
WRITESMF( smf1,smf2,... )
Function: When the DYNAMOD option intercepts a program, the
WRITESMF parameter can be used to produce SMF record(s). The name of one or more DEFSMF statements can be specified by the WRITESMF parameter. The DEFSMF statement(s) are responsible for building and writing the SMF record.
Default: None
Format:WRITESMF ( name ) or WRITESMF( name1,name2,... )
names are 1 to 20 characters long