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 Acquiring processes and activities .
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
- 111 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.
- 16 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.
- 17 IOERR
- RESP2
values:
- 29
- The repository file is unavailable.
- 30
- An input/output error has occurred on the repository file.
- 70 NOTAUTH
- RESP2
values:
- 101
- The user associated with the issuing task is not authorized to
run the process.
- 27 PGMIDERR
- RESP2
values:
- 1
- A program has no installed resource definition 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 or dynamic LIBRARY 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 to CICS, 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.
- 106 PROCESSBUSY
- RESP2
values:
- 13
- The request timed out. It may be that another task using this
process-record has been prevented from ending.
- 108 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.