Execute a CICS business transaction services process synchronously
without context-switching.

LINK ACQPROCESS
>>-LINK--ACQPROCESS--+------------------------+----------------><
'-INPUTEVENT(data-value)-'
Conditions: EVENTERR, INVREQ, IOERR, NOTAUTH, PGMIDERR, PROCESSBUSY,
PROCESSERR
Description
LINK ACQPROCESS executes the CICS business
transaction services process currently acquired by the requestor. The process
is executed synchronously with the requestor, with no context-switching.
The
only process that a program can link is the one that it has acquired in the
current unit of work. (Note, however, that if the program is running as the
activation of an activity, it must use a RUN, not a LINK, command to activate
the process it has acquired.) See the CICS® Business
Transaction Services manual.
To check the response from
the process, the CHECK ACQPROCESS command must be used. This is because the
response to the request to activate the process does not contain any information
about the success or failure of the process itself—only about the success
or failure of the request to activate it. Typically, the CHECK command is
issued immediately after the LINK command.
LINK ACQPROCESS causes BTS
to invoke the process's root activity and send it an input event. If the root
activity is in its initial state—that is, if this is the first time it is
to be run—CICS sends
it the DFHINITIAL system event. If the root activity is not in its initial
state, the input event must be specified on the INPUTEVENT option.
No context-switching
When
an process is activated by a LINK ACQPROCESS command, it is invoked synchronously
with the requestor and:
- In the same unit of work as the requestor
- With the transaction attributes (TRANSID and USERID) of the requesting
transaction.
In other words, there is no context-switch. To invoke a process
synchronously with context-switching—that is, in a separate UOW from
that of the requesting transaction and with the TRANSID and USERID attributes
specified on its DEFINE PROCESS command—use the RUN ACQPROCESS SYNCHRONOUS
command.
Note: A context-switch always occurs when a process is run asynchronously.
If
performance is more important than failure isolation, recoverability, and
security, use LINK ACQPROCESS rather than RUN ACQPROCESS SYNCHRONOUS.
Options
- ACQPROCESS
- specifies
that the process currently acquired by the requestor is to be run.
- INPUTEVENT(data-value)
- specifies
the name (1–16 characters) of the event that causes the process to be attached.
You must not specify this option if the process's root activity
is in its initial state; that is, if this is the first time the process is
to be run. In this case, CICS sends the root activity the DFHINITIAL system
event.
You must specify this option if the root activity is
not in its initial state; that is, if it has been activated before.
If
you specify INPUTEVENT, for the LINK command to be successful the root activity
must have defined the named event as an input event.
Conditions
- EVENTERR
- RESP2
values:
- 7
- The event named on the INPUTEVENT option has not been defined by the root
activity of the process to be run as an input event; or its fire status is
FIRED.
- INVREQ
- RESP2
values:
- 15
- The task that issued the LINK command has not defined or acquired a process.
- 23
- The process is suspended, and therefore cannot be run synchronously.
- 40
- The program that implements the process to be run is remote.
- 44
- A LINK has been attempted to a Java program, but the JVM pool is disabled.
- 45
- A LINK has been attempted to a Java program, but the JVM profile cannot
be found.
- 46
- A LINK has been attempted to a Java program, but the JVM profile is not
valid.
- 47
- A LINK has been attempted to a Java program, but the system properties
file cannot be found.
- 48
- A LINK has been attempted to a Java program, but the user class cannot
be found.
- 49
- The shared class cache is STOPPED and autostart is disabled, so a Java
program requesting use of the shared class cache cannot be executed.
- IOERR
- RESP2
values:
- 29
- The repository file is unavailable.
- 30
- An input/output error has occurred on the repository file.
- NOTAUTH
- RESP2
values:
- 101
- The user associated with the issuing task is not authorized to run the
process.
- PGMIDERR
- RESP2
values:
- 1
- A program has no entry in the PPT and either program autoinstall was switched
off, or the program autoinstall user program indicated that the program should
not be autoinstalled.
- 2
- A program is disabled.
- 3
- A program could not be loaded because:
- This was the first load of the program and the program load failed, usually
because the load module could not be found.
- This was a subsequent load of the program, but the first load failed.
In order to reset the load status the load module must be in the
DFHRPL concatenation, and a SET PROGRAM NEWCOPY will be required.
- 21
- The program autoinstall user program failed either because the program
autoinstall user program is incorrect, incorrectly defined, or as a result
of an abend in the program autoinstall user program. Program autoinstall is
disabled and message DFHPG0202 or DFHPG0203 written to the CSPL.
- 22
- The model returned by the program autoinstall user program was not defined
in the PPT table, or was not enabled.
- 23
- The program autoinstall user program returned invalid data.
- 24
- Define for the program failed due to autoinstall returning an invalid
program name or definition.
- PROCESSBUSY
- RESP2
values:
- 13
- The request timed out. It may be that another task using this process-record
has been prevented from ending.
- PROCESSERR
- RESP2
values:
- 6
- Another process is current. That is, the program that issued the LINK
command cannot link to the process it has acquired because it is itself running
as an activation of a process.
- 9
- The process-type could not be found.
- 14
- The root activity of the process to be run is not in INITIAL or DORMANT
mode.