REXEC daemons: function in the DAL environment
REXEC is a standard daemon used in TCP/IP environments. Its primary function is to listen for incoming requests from remote hosts and respond appropriately. Specifically for Data Access Language, REXEC is used by the various DAL Servers to establish sessions with DAL Clients. In the A/UX, VAX/VMS, and VM/CMS host environments, REXEC will respond by logging in the USERID of the client on behalf of the client. For AS/400 and MVS, a sub task is spawned as part of a main server task.
Port numbers
Each DAL Server is configured to listen for connections on a specific REXEC port number. By default, DAL uses the de-facto standard of 512. Once the server is started, it waits to receive a connection request on the specified port number. Upon receiving a request, a validation is made against the user (client) making the request using the host's security facilities. If validated, a connection is then initiated back to the client on a different port number and the session begins. The port number that the server uses to respond back to the client varies from session to session; the REXEC daemon listener port is constant (unless changed in the DAL Server's configuration and a restart of the server is performed).
Timing issues
Since there can only be one client using the services of REXEC at any given time, a request to REXEC while it is in use will result in an error. The exact codes returned to the client will vary depending upon the server and client versions and platforms. The amount of time REXEC will be busy (and thus unavailable for any other client requests) will also vary based upon server platform due to size, implementation, load factors, and so on.
In all cases, REXEC is busy starting from the time it receives a connection request until (1) The request is satisfied via establishment of a session over a different port number or, (2) The request is rejected due to authorization failure. Once the session has been established or rejected, REXEC is then free to receive a new connection request.