Exit xpcftch – IBM SC34-6814-04 User Manual

Page 208

Advertising
background image

1. Scan the global work area (GWA) to locate a suitable CICS region - for

example, the region currently processing the least number of LINK requests.

2. Having decided which system to route the request to, increment the use count

for this system.

3. Obtain a 4-byte area in which to store the SYSID for this request (this can be

allocated from the GWA to avoid issuing a GETMAIN). If the area is obtained by
issuing a GETMAIN, set UEPPCTOK to the address of the storage obtained.

4. Set PC_ADDR7 to the address of the 4-byte area.

5. If setting PC_ADDR7 now makes it the last address, set the high-order bit in the

address, and unset the high-order bit in what was previously the last address.

6. Set the X'02' existence bit on in PC_BITS1 to indicate that a SYSID is specified.

7. Return to CICS.

In XPCREQC:

1. Scan the global work area (GWA) and locate the entry for the CICS region

specified in the SYSID parameter.

2. Decrement the use count for this system.

3. If a GETMAIN was issued in XPCREQ to obtain an area to hold the SYSID,

issue a FREEMAIN for the address held in UEPPCTOK.

4. Return to CICS.

Exit XPCFTCH

XPCFTCH is invoked before a PPT-defined program (including internal CICS
modules) receives control, which could be because it is the first program in a
transaction, or as a result of a LINK, XCTL, or HANDLE ABEND PROGRAM
request. You can use this exit to modify the entry address used when linking to the
program. If the exit sets a return code of zero, or a modified address of zero, the
entry address of the original application program is used.

When XPCFTCH is invoked for a C or C++ program which was compiled with the
XPLINK option, a flag is set to indicate that any modification of the entry point
address that might be made by the user exit, is ignored.

The exit is intended to allow you to pass control to an assembler application
program or routine before the original program is invoked. This assembler program,
after it has finished its processing, should pass control back to the entry point of the
original program using a branch instruction. You should not use the exit to cause a
program to be invoked instead of the original program. If you do so, the results are
unpredictable.

If a modified entry address is supplied, the program that is invoked receives control
in the execution key that the original application program would have received
control in—that is, as specified on the EXECKEY option of the original program’s
resource definition.

When invoked

Before an application program receives control.

Exit-specific parameters

UEPPCDS

Address of a storage area that contains program- and

186

Customization Guide

Advertising