Previous Topic: CALC()

Next Topic: CASE()

CALLX()

Use the CALLX() function to execute an IMOD as a subroutine at another GoalNet node.

Syntax

The CALLX() function has this syntax:

result = CALLX([node],[ssid],imod,{NONE|PASS},[args])

Arguments

The CALLX() function takes these arguments:

result

Value specified by the last-executed REXX RETURN or EXIT instruction in the called routine (or error text).

node

Name of the GoalNet node where the IMOD is to be executed. The current node is assumed as the default.

ssid

Subsystem ID that identifies the ISERVE that is to execute the IMOD.

If ssid is specified without node, the request is routed to the appropriate ISERVE on the same z/OS system. If node is also specified, the request is first routed to the requested GoalNet node and then sent to the appropriate ISERVE on that z/OS system.

imod

Name of the IMOD that is to be executed as an external routine. This argument is required.

NONE

Indicates that no stack information is to be passed to the called routine. This is the default. Any returned stack data is appended to the current stack contents. Select this option whenever records exist on the current stack and the called IMOD is not going to process them.

PASS

Passes the contents of the current stack (up to the NEWSTACK marker) to the called routine. When the information is passed, it is deleted from the caller's stack. Upon return, any records left on the stack by the called IMOD are returned to the caller. These records become the new stack contents.

args

String passed to the called routine as an argument string.

Usage Notes

Return Codes

The CALLX() function produces these return codes:

101 - 105

ARG n MISSING OR INVALID

121

REQUESTED NODE NOT DEFINED

122

REQUESTED NODE NOT ACTIVE

123

REQUESTED NODE IS DOWN

124

REQUESTED NODE IS STOPPED

125

STATUS OF REQUESTED NODE IS INDETERMINATE

128

UNABLE TO ESTABLISH CONVERSATION WITH NODE

129

NODE LOST BEFORE REMOTE IMOD SCHEDULED

131

NODE LOST AFTER REMOTE IMOD SCHEDULED

133

HALT/FAILURE/ERROR/SYNTAX AT line

134

IMOD NOT FOUND

135

IMOD NOT AVAILABLE

136

IMOD NOT CALLABLE

138

NO CONNECTION AVAILABLE

150

One of these messages is returned:

GSS COMMUNICATION FAILURE return reason

IMOD was canceled during execution

IMOD was not found

IMOD was found but was deactivated

IMOD cannot be called from current GSS environment

IMOD could not be executed

ISERVE address space ABENDED during IMOD processing

IMOD Recovery has failed

Syntax error in IMOD recovery request

Invalid plist, args not in valid storage

Requested GSS service not available

Invalid GSS Plist, invalid storage subpool

JESCT has invalid format

SSCVT has invalid format

Requested GSS service is invalid

Requested ISERVE address space not valid

ISERVE SUBCOM area not found

GSS SSCVT not initialized

GSS Address Space is not active

Requested ISERVE address space not running

GSS SSCVT not found

GSS PC table not found

Insufficient storage for GSS X-MEM plist

Insufficient storage for XQAREA

PC table entry not found

PC routine not found

Requested GSS service is invalid

Insufficient storage, service dynamic area

Insufficient storage, external XQAREA

Insufficient storage, PC2 dynamic area

Invalid ASCB address, PC2

Value invalid

Input STACK format is invalid

Invalid PLIST, "GSST" is missing

GSSCVT missing from PLIST

GSSTAB1 has invalid format

PLIST not accessible

Example

callx('node2',,'status',,args)  /* Run "status" IMOD at node2 */