R R S F: WWW - Rizzuto.it
R R S F: WWW - Rizzuto.it
www.rizzuto.it
16.03.2001
N. Rizzuto
SUMMARY
IMPLEMENTATION.........................................................................................................................................................3
OPERATION......................................................................................................................................................................6
RRSF SECURITY..............................................................................................................................................................8
RESOLVING PROBLEMS...............................................................................................................................................9
IMPLEMENTATION
After insuring that the prerequisites were met (MVS 4.3 or OS390, RACF 2.2, VTAM 3.4, APPC active), the
implementation started by determining the name to be given to the ACB's to be used by RACF for the
intersystem communication and having them defined in VTAM. All ACB's were called LU%%RRSF, where %
% is substituted with two characters representing the system to which the ACB relates. This is a normal
VTAM definition with APPC=YES, VERIFY=REQUIRED and SECACPT=CONV, which means respectively
that the various LU's must talk to each other exchanging a session key (password) and access security
information is supported. The system symbol &S1 is used to differentiate the various ACB's while using only
one definition, the APPL is always APPLRRSF.
The second step was to add these APPC LU's to the APPLRRSF VBUILD TYPE=APPL
APPC configuration of the various MVS images by * STATOPT='RRSF '
LU&S1.RRSF APPL APPC=YES,
specifying them in the parmlib member APPCPM00 and AUTH=(ACQ),
issuing the MVS command SET APPC=00 to activate DMINWNL=25,
them. This allows RRSF to use APPC/MVS as a vehicle DMINWNR=25,
to send and receive messages from one node to another. DSESLIM=50,
MODETAB=DLOGMOD,
This LU is not associated with a transaction scheduler VERIFY=REQUIRED,
and searches only for system-level profiles, in the data SECACPT=CONV,
set specified in TPDATA. VPACING=2
SETROPTS CLASSACT(APPCLU)
series of profiles were defined to indicated which primary
LU can converse with which partner-LU's . The
RRSFDATA class was activated and RACLIST'ed and it
is used by RRSF to verify whether a specific message
direction is allowed once automatic command or SETROPTS GENERIC(RRSFDATA)
SETROPTS RACLIST(RRSFDATA)
password direction is turned on. SETROPTS CLASSACT(RRSFDATA)
The profiles needed for the RRSFDATA class, having to
deal with message direction, are different for every PLEXWLB
database and include the from and to node names.
RDEF RRSFDATA (AUTODIRECT.TESTPLEX.*.*)
At this point, it was then necessary to determine the UACC(R)
names to be given to the nodes involved, which were
PRODPLEX for the SYSA, SYSB, SYSC and SYSD TESTPLEX
systems and TESTPLEX for SYSE, SYSF e SYSG, thus
RDEF RRSFDATA (AUTODIRECT.PRODPLEX.*.*)
reflecting the name already assigned to the sysplexes. UACC(R)
Once all RACF definitions were complete, the RRSF network definitions statements were added to the start-
up member IRROPT00 (default if in JCL if not otherwise specified). In view of the imminent sharing of one
RACF database in the PRODPLEX sysplex, the network has been already defined as made up of two so-
called multi-systems nodes: PRODPLEX which comprises all SYSA, SYSB, SYSC and SYSD MVS images
and TESTPLEX which includes SYSE, SYSF and SYSG. This reflects the final RACF database at the time
RRSF will be officially used for command synchronisation.
PLEXWLB
Special care must be given to the issue of LU security which, due to the various levels of security
available and its interdependence with VTAM definitions, can be at first quite difficult to come to terms
with.
In this implementation, as described earlier, only the APPCLU option was taken into consideration
Security has been established by setting the VTAM APPC LU parameter VERIFY to REQUIRED and
defining the relative RACF APPCLU profiles. A so-called session-key has also been defined and this
must be the same for each pair of LU's wishing to communicate with each other. Before
communication can take place, the session-keys are verified and, only if they match, can RRSF
communication between those two nodes begin.
A profile - only the partner side can be generic - has been RDEFINE APPCLU (netid.local_lu.partner_lu) ...
defined in the APPCLU class for every primary LU . The RDEFINE APPCLU(MYNET.LUSBRRSF.LU%%RRSF)
netid corresponds to the NETID option in the VTAM UACC(NONE) OWN(SYS1) SESSION(SESSKEY(SKEY)
CONVSEC(ALREADYV) NOINTERVAL)
ATCSTRxx member and this format is to be used only for
non-network-qualified LU's (the NQNAME option is not
specified on the ACB).
The class need not be RACLIST'ed as this is done
automatically by VTAM. If changes are made to the
profiles, these can be refreshed by issuing the VTAM
command F NET,ID=luname,PROFILES. RLIST APPCLU profile SESSION
SESSION KEY IS ….
The session key can be any alphanumeric password, SESSION KEY INTERVAL IS UNLIMITED
up to eight characters long. The parameter UNLOCKED
CONVSEC(ALREADYV) means that RACF assumes CONVSEC= ALREADYV
that the remote userid has already been verified on
the sending system, while NOINTERVAL specifies
that this password will not automatically expire.
OPERATION
As soon as RACF-STC is started, RACF reads the member IRROPT00 in the data set
SYS1.RACF.PARMLIB and executes all the commands which it contains.
S RACF,SUB=MSTR
IRRM002I ((RACF)) RACF SUBSYSTEM TARGET COMMAND HAS COMPLETED
SUCCESSFULLY. 566
IRRM035I ((RACF)) RACF SUBSYSTEM TARGET COMMAND CANNOT MAKE NODE
PRODPLEX SYSNAME SYSA OPERATIVE BECAUSE ONLY THE
DEFINED STATE IS ALLOWED.
IRRM002I ((RACF)) RACF SUBSYSTEM TARGET COMMAND HAS COMPLETED 568
SUCCESSFULLY. 569
IRRM035I ((RACF)) RACF SUBSYSTEM TARGET COMMAND CANNOT MAKE NODE
PRODPLEX SYSNAME SYSC OPERATIVE BECAUSE ONLY THE
DEFINED STATE IS ALLOWED.
...
The warning messages for all systems not defined as MAIN are to be considered normal because in this
case the OPERATIVE parameter is necessary only on the system to which it refers but cannot be carried out
on any other system. The advantage of this approach is that only one member is then used for all the
systems involved.
Stopping the started task RACF is also possible as this terminates only the synchronisation tasks and not
RACF itself. To do that, issue the command RACF STOP from the SDF console.
RACF STOP
IRRB069I ((RACF)) RACF SUBSYSTEM STARTING SHUTDOWN PROCESSING. 437
IRRC028I ((RACF)) RACF REMOTE SHARING SERVER HAS DE-REGISTERED FROM 4
APPC/MVS.
IRRJ001I ((RACF)) RACF RACF LOCAL NODE TRANSACTION PROGRAM COMPLETED
UNDER USER ID RACF GROUP STC.
Commands can in case be executed directly, by prefixing the command with the prefix RACF, or by putting
them in a temporary member in SYS1.RACF.PARMLIB and then issuing the command RACF SET
INCLUDE(xx) where xx are the last two digits of a member IRROPTxx.
To check the status of all network nodes and members, issue the command RACF TARGET LIST.
The following profiles are necessary to control RACF commands issued via console and the MVS commands necessary
to vary and display the status of the RRSF network.
It may be that, especially when configuring the RRSF network for the first time, not everything works as
expected. It might be because the work files cannot be allocated or there are inconsistencies in the way the
network has been defined on different nodes, a profile is missing or incorrect etc. Whatever the reason, it is
important to examine all possible reasons starting from the simple ones - the local node is not active or a
TARGET OPERATIVE command was not issued for a remote node, for example - and then work your way up to
the solution by a process of elimination. In most cases the problem appears in the form of an APPC return code,
but it is really much simpler than it looks. When you look up the APPC message you are often simply re-directed
to a VTAM open error code which can be found in the manual <VTAM Messages & Codes>. In fewer cases, the
return code comes actually from APPC and in this case it is important to note down the APPC verb and return
code combination. These codes can be found in the manual <MVS Writing TPs for APPC/MVS> although they
are unfortunately not very well organised: you usually need to look for the failing verb first and then look for an
indication of possible error codes. In 90 percent of all cases, this information together with patiently going over
all the parameters, VTAM definitions and RACF profiles, leads eventually to the solution. As a last resource, it is
possible to request an APPC trace to see what actually went on during the LU conversation. The commands
described here are based on the assumption that the library SYS1.SBLSCLI0 is not in the ISPF SYSPROC or
SYSEXEC concatenation and you do not want to add it. In every other case, you can call directly the ATBTRACE
exec and you do not obviously need to specify the library.
Start by allocating a data set for the trace, sequential and with minimum blocksize of 4096. Make sure the
primary space is big enough as APPC will not use the secondary space, all other parameters are not really
important as these will be overridden during the trace itself.
Start the trace by issuing the following command from the TSO command line.
Start the node with which the connection cannot be established and specify its LU as partner LU for your
trace.
At this point your trace data set should contain a detailed account of the LU-LU conversation.
In the following example an obscure return code 1 from ATBALC2 turned out to be an SSCP-SSCP session not
available.
RACF TARGET NODE(PLEXWLB) SYSNAME(OSN1) OPERATIVE
IRRC024I ((RACF)) RACF REMOTE SHARING CONNECTION TO NODE PRODPLEX 615
SYSNAME SYSD DID NOT COMPLETE SUCCESSFULLY. FAILURE
OCCURRED WHEN APPC VERB ATBALC2 WAS ISSUED. RETURN
CODE = 1.
VTAM codes
0036 No SSCP-SSCP session exists between the VRTG end
points.
In the following pages a number of real solved problems can be found for reference.
SYMPTOM
The connection is in PENDING VERIFY, everything seems to be ok, yet the connection will not go ACTIVE
and the following messages appear:
PROBABLE CAUSE
There is a problem in passing the work requests onto the task that routes the work within the subsystem
address space.
RESOLUTION
If this is a newly defined network, make sure all nodes are defined as OPERATIVE and all main and sub nodes
are defined to all nodes. Correct the definitions and retry.
If that is not the case, try restarting one by one all RACF internal subtask with the restart command. If that still
fails the only way out is to stop and restart the RACF started task.
SYMPTOM
The connection is in OPERATIVE PENDING and when trying to connect APPC issues an error code 2 or 19 on
the ATBALC2 verb. When issuing the command D APPC,LU,LIST the LU which RSF is supposed to use is in a
pending state.
IRRC024I CONNECTION DID NOT COMPLETE SUCCESSFULLY RETURN CODE = 19 (APPC TP code)
APPC : A parameter specified on the call is not valid.
ATB052E LOGICAL UNIT NOT ACTIVATED ... REASON CODE = 72 (VTAM OPEN MACRO HEX)
PROBABLE CAUSE
If it is the first time you are trying to activate RRSF on this system then probably the class APPCLU is not
active or the ACB definition is missing. Be warned that the message ATB052E is only used the first time
APPC tries to activate the LU. If you want to double check you need to issue a LU DEL ACBNAME() and
then the normal command again.
RESOLUTION
Simply activate the APPCLU class, but before doing so delete any existing profiles to avoid any possible trouble
with GENERIC/NON GENERIC profiles.
REFERENCE
The connection is in OPERATIVE PENDING and the following message appears when trying to activate it.
IRRC024I CONNECTION DID NOT COMPLETE SUCCESSFULLY RETURN CODE = 10 (APPC TP code)
APPC : The partner LU cannot start the TP.
PROBABLE CAUSE
RESOLUTION
Issue the TARGET NODE() OPERATIVE to put the partner RRSF in the correct state.
REFERENCE
The connection is in OPERATIVE PENDING CONNECTION and when trying to connect APPC issues an error
code 5 or 6 on the ATBALC2 verb. When issuing the command D APPC,LU,LIST the LU which RSF is supposed
to use is in the ACTIVE state.
IRRC024I CONNECTION DID NOT COMPLETE SUCCESSFULLY RETURN CODE = 5 (APPC TP code)
APPC : A parameter specified on the call is not valid.
PROBABLE CAUSE
There is something wrong with the security definition on the local node (RC=6) or the partner node (RC=5).
RESOLUTION
Check that the profiles for the two nodes exist, they have identical session keys and have not expired, through
the command „RLIST APPCLU profile SESSION“ .
Check also the security VTAM definitions, they should have VERIFY=REQUIRED.
If everything seems still ok, try refreshing the APPCLU class and the VTAM profiles with the command F
NET,ID=,PROFILES .
REFERENCE
The connection is in OPERATIVE PENDING CONNECTION and when trying to connect APPC issues an error
code 6 on the ATBSEND verb. When issuing the command D APPC,LU,LIST the LU which RSF is supposed to
use is in the ACTIVE state.
6 Security_not_valid
PROBABLE CAUSE
RESOLUTION
Make sure the profile and authorisation for the class APPL are also correct, try setting them temporarily to
WARNING then retry. Specify the option NOTIFY on the RALT command to determine who lacks the
authorisation to use the profiles
REFERENCE
The connection is in OPERATIVE PENDING CONNECTION and when trying to connect APPC issues an error
code 1 on the ATBALC2 verb. When issuing the command D APPC,LU,LIST the LU which RSF is supposed to
use is in the ACTIVE state.
PROBABLE CAUSE
The session key in the relative APPCLU profiles is missing or incorrect and the LU's are defined in VTAM as
VERIFY=REQUIRED.
RESOLUTION
Check that the profiles for the various nodes in the class APPCLU contain identical session keys and they have
not expired, through the command „RLIST APPCLU profile SESSION“ . Refresh VTAM with the command F
NET,ID=,PROFILES.
REFERENCE