CARMA and TCP/IP ports
CARMA (Common Access Repository Manager) is used to access a host-based Software Configuration Manager (SCM), for example CA Endevor® SCM. In most cases, like for RSE daemon, a server binds to a port and listens for connection requests. CARMA however uses a different approach, as the CARMA server is not active yet when the client initiates the connection request.
When the client sends a connection request, the CARMA
miner, which is active as a user thread in an RSE thread pool, will
request an ephemeral port or find a free port in the range specified
in the CRASRV.properties
configuration file and binds
to it. The miner then starts the CARMA server and passes the port
number, so that the server knows to which port to connect. When the
server is connected, the client can send requests to the server and
receive the results.
From a TCP/IP perspective, RSE (by way of the CARMA miner) is the server that binds to the port, and the CARMA server is the client connecting to it.
If you use the PORT
or PORTRANGE
statement
in PROFILE.TCPIP
to reserve the port range used by
CARMA, note that the CARMA miner is active in an RSE thread pool.
The jobname of the RSE thread pool is RSEDx
, where RSED
is
the name of the RSE started task and x
is a random
single digit number, so wildcards are required in the definition.
PORTRange 5227 100 RSED* ; z/OS Explorer Extensions-CARMA
felfivpc
, will fail
if you reserve the CARMA ports for usage by the RSE address spaces. This is to be expected because the IVP runs in the
address space of the person executing the IVP, not in RSE’s
address space, and TCP/IP will fail the bind request.