./P command
Use the ./P command to define a patch to be applied to an application program. The patch is applied only one time, either at the next LOAD of the application program, or immediately if the application program is currently being run.
Usage notes
You can specify multiple ./P commands.
A patch can also be applied to the BTS Common Area by specifying MBR=BTSCOM00.
Some specifications can be made by both the ./P and the ./E command. In such cases, it is probably easier so is better to use the ./E command than ./P command.
Format
./P MBR= application_program_load_module_name
PA= patch_address
PC= character_patch_text
[CA= 000000 | CSECT_address]
[PX= 00 | hexadecimal_patch_text]
Keywords and operands
- CA=
- Specifies the offset of the CSECT within the load module where the patch is to be applied and can be obtained from a link-editing map. The CSECT address must be a positive six-digit hexadecimal number and leading zeros must be provided. The default value is CA=000000.
- MBR=
- Specifies the name of the application program load module to which the patch is to be applied. The load module name must be a name defined by the MBR= operand of a ./T command.
- PA=
- Specifies the offset within the CSECT where the patch is to be applied. The patch address must be a positive six-digit hexadecimal number and leading zeros must be provided.
- PC=
- Provides the patch text in character format. The text is delimited by a single blank.
- PX=
- Provides the patch text in hexadecimal format, two characters per byte. The text is delimited by a single blank. Default patch text is PX=00.
Examples
- Example 1 for ./P command
- To copy (zap) the constant DC C'12345', defined at offset X'0DAC' in your single CSECT
application program, to DC C'54321' for only the first transaction you process (the remaining
transactions use the original value), your input stream might contain:
./T TC=ZAPTEST MBR=MYPGM PLC=1 ./P MBR=MYPGM PA=000DAC PC=54321 ZAPTEST FIRST TRANSACTION $ ZAPTEST SUBSEQUENT TRANSACTION $IMS Batch Terminal Simulator puts the patch on a patch queue when the ./P command is processed. Then, as each application program is loaded, any patches on the queue are applied and dequeued. Because the patch is only applied once and PLC=1, a fresh copy of MYPGM is fetched for the second ZAPTEST transaction.
- Example 2 for ./P command
- To set a specified branch to no operation at offset X'010E' in the third CSECT of your application load module, when your link-editing
map shows that CSECT begins at X'2C80', your patch statement
might be: or
./P MBR=TESTPGM PA=00010E CA=002C80 PX=4700./P MBR=TESTPGM PA=002D8E PX=4700 - Example 3 for ./P command
- To change the constant
DC C'X Y Z', which is defined at offset X'011C' in your load
module to DC C'A B C', your patch statement
might be:
./P MBR=PATCHES PA=00011C PX=C140C240C3 - Example 4 for ./P command
- To support applications that require lowercase input, modify the translation table in the BTS
Common Area by specifying:
./P MBR=BTSCOM00 PA=000414 PX=40818283848586878889 ./P MBR=BTSCOM00 PA=000424 PX=40919293949596979899 ./P MBR=BTSCOM00 PA=000434 PX=40A1A2A3A4A5A6A7A8A9This specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the LCI= parameter, see ./E command.
- Example 5 for ./P command
- To set USERID01 in the I/O PCB USERID field, specify:
./P MBR=BTSCOM00 PA=0000D8 PC=USERID01This specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the USERID= parameter, see ./E command.
- Example 6 for ./P command
- To set the date in the I/O PCB, specify:
./P MBR=BTSCOM00 PA=0000C4 PX=0082365F ./P MBR=BTSCOM00 PA=0000E8 PX=1982365FThis specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the IODATE= and IOUDATE= parameters, see ./E command.
- Example 7 for ./P command
- To set the time in the I/O PCB, specify:
./P MBR=BTSCOM00 PA=0000C8 PX=1245090F ./P MBR=BTSCOM00 PA=0000EC PX=12450902040136CThis specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the IOTIME= and IOUTIME= parameters, see ./E command.
- Example 8 for ./P command
- The maximum number of lines per page for the BTSOUT data set defaults
to 60. To set a different value, such as 80 lines per page, specify:
./P MBR=BTSCOM00 PA=000236 PX=0050This specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the MAXL= and MLINE= parameters, see ./E command.
- Example 9 for ./P command
- When SCREEN=INOUT and ATR=NO is specified in the ./O command,
a blank line is written to BTSOUT where the field attribute characters
would otherwise be displayed in a screen image. To suppress the blank
line, specify:
./P MBR=BTSCOM00 PA=000228 PX=01This specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the SPACE= parameter, see ./E command.
- Example 10 for ./P command
- To activate BTS 3270 extended attribute support (if supported by your TSO terminal and your
application), specify:
./P MBR=BTSCOM00 PA=00018B PX=10PS/55 users can specify the following to activate BTS 3270 extended attribute support and to indicate that a PS/55 computer is being used:./P MBR=BTSCOM00 PA=00018B PX=11 - Example 11 for ./P command
- When a PSB is immediately rescheduled in DBB batch execution,
the same PCBs are passed to the application program unchanged from
the prior execution. To reattach the IMS region controller for each transaction, and thus get a fresh
copy of the PSB, specify:
./P MBR=BTSCOM00 PA=0004DE PX=01This specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the REATTCH= parameter, see ./E command.
This specification is required in the following cases:- When an application program that relies on cleared PCB fields on entry is to be iteratively scheduled.
- When a COBOL program is invoked (via LINK, XCTL, LOAD, or scheduled by BTS) immediately after the same program has been run under control of the COBOL interactive debug. (COBOL interactive debug is not invoked if the same program is subsequently invoked again.)
- When Db2® application programs run consecutively and issue XRST calls. If ./E REATTCH= option is not specified, IMS Batch Terminal Simulator is terminated with ABEND04E (rc=00D44054) when the second XRST call is issued.
- When one JOB executes multiple transactions that issue EXEC DLI commands.
- Example 12 for ./P command
- To run IMS Batch Terminal Simulator in batch IMS (that is, KW=DLI or DBB) with Db2
applications, the SSID must be specified as follows:
./P MBR=BTSCOM00 PA=000C14 PC=ssidwhere ssid is your 3- to 4-character Db2 subsystem ID.
This specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the SSID= parameter, see ./E command.
- Example 13 for ./P command
- To set RACFGPNM in the I/O PCB RACF® GROUP NAME field,
specify:
./P MBR=BTSCOM00 PA=0000E0 PC=RACFGPNMThis specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the RACFGPN= parameter, see ./E command.
- Example 14 for ./P command
- To support applications that require the input and output of Katakana
characters, modify the translation table in the BTS Common Area by
specifying the following commands:
./P MBR=BTSCOM00 PA=0003D4 PX=404142434445464748494A4B4C4D4E4F ./P MBR=BTSCOM00 PA=0003E4 PX=505152535455565758595A5B5C5D5E5F ./P MBR=BTSCOM00 PA=0003F4 PX=606162636465666768696A6B6C6D6E6F ./P MBR=BTSCOM00 PA=000404 PX=707172737475767778797A7B7C7D7E7F ./P MBR=BTSCOM00 PA=000414 PX=808182838485868788898A8B8C8D8E8F ./P MBR=BTSCOM00 PA=000424 PX=909192939495969798999A9B9C9D9E9F ./P MBR=BTSCOM00 PA=000434 PX=A0A1A2A3A4A5A6A7A8A9AAABACADAEAF ./P MBR=BTSCOM00 PA=000444 PX=B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFThis specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the KATAKANA= parameter, see ./E command.
- Example 15 for ./P command
- To activate TSO Disconnect and Reconnect support, specify:
./P MBR=BTSCOM00 PA=000D01 PC=SYSRQWith this specification, IMS Batch Terminal Simulator does nothing when PA2 is entered. To define the PA2 function (NEXTMSG) for the FSS session in PFK, specify:./P MBR=BTSCOM00 PA=000D13 PX=D7C1F24040 (PA2 → PF1 ) ./P MBR=BTSCOM00 PA=000D19 PX=D7C1F24040 (PA2 → PF2 ) ./P MBR=BTSCOM00 PA=000D1F PX=D7C1F24040 (PA2 → PF3 ) ./P MBR=BTSCOM00 PA=000D25 PX=D7C1F24040 (PA2 → PF4 ) ./P MBR=BTSCOM00 PA=000D2B PX=D7C1F24040 (PA2 → PF5 ) ./P MBR=BTSCOM00 PA=000D31 PX=D7C1F24040 (PA2 → PF6 ) ./P MBR=BTSCOM00 PA=000D37 PX=D7C1F24040 (PA2 → PF7 ) ./P MBR=BTSCOM00 PA=000D3D PX=D7C1F24040 (PA2 → PF8 ) ./P MBR=BTSCOM00 PA=000D43 PX=D7C1F24040 (PA2 → PF9 ) ./P MBR=BTSCOM00 PA=000D49 PX=D7C1F24040 (PA2 → PF10) ./P MBR=BTSCOM00 PA=000D4F PX=D7C1F24040 (PA2 → PF11) ./P MBR=BTSCOM00 PA=000D55 PX=D7C1F24040 (PA2 → PF12)This specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the SYSRQ= and PA2= parameters, see ./E command.
- Example 16 for ./P command
- To support MFS bypass without basic input-editing for the inbound D/T3270 data stream, specify
the following command:
./P MBR=BTSCOM00 PA=0004DF PX=01In this case, the message output descriptor (MOD) must be DFS.EDTN.
This specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the DT3270= parameter, see ./E command.
- Example 17 for ./P command
- When running IMS Batch Terminal Simulator in batch IMS (that is, KW=DLI or DBB) with the Db2
DL/I Batch Support, the unit group name for the work data set must be specified to IMS Batch Terminal Simulator. The default unit group name is SYSDA. If you want to
override the default, specify:
./P MBR=BTSCOM00 PA=000C18 PC=unit-group-namewhere unit-group-name is your 1- to 5-character unit group name for the work data set.
This specification can be made by use of the ./E command, which is better to use than the ./P command. For details about the UGN= parameter, see ./E command.
- Example 18 for ./P command
- When an INQY call is issued with the NULL subfunction, the
application
program obtains information related to the PCB. The default location
and default status are as follows:
- Terminal location:
'LOCAL '- Queue status:
'STARTED '- Session status:
'ACTIVE '- Transaction location:
'LOCAL '- Transaction status:
'STARTED '- Destination status:
'STARTED '
If you want to override the defaults, specify:./P MBR=BTSCOM00 PA=000BD0 PC=terminal-location ./P MBR=BTSCOM00 PA=000BD8 PC=queue-status ./P MBR=BTSCOM00 PA=000BE0 PC=session-status ./P MBR=BTSCOM00 PA=000BE8 PC=transaction-location ./P MBR=BTSCOM00 PA=000BF0 PC=transaction-status ./P MBR=BTSCOM00 PA=000BF8 PC=destination-status