How To Use The Same TSO USERID In a Shared Environment (last update 05/06/2014) GRS / MIM Considerations: If you are using GRS or MIM (you should be using one of them in a shared environment) you must not propagate the SYSIKJUA QNAME or you will see message IKJ56425I (which indicates you are already logged on) when you try and logon to a second system. Note that the TSO/E General Information manual says that propagation of this QNAME is required for TSO Generic Resource support in a parallel sysplex. In a shared environment, you should already be propagating the SPFEDIT QNAME which is used by ISPF to preserve data set and PDS member integrity. JES2 Considerations: For using a single TSO USERID in a JES2 MAS, a JES2 source update to HASPCNVT is required (this takes care of the duplicate logon check in JES2). Alternatively, JES2 exit 44 can be used. If only the DASD is shared and there is no JES2 MAS involved, then the JES2 source update or exit is not required. In z/OS 1.4 and above, the JES2 HASPCNVT modification is no longer required. Also note that when using NOTIFY=USERID in a JES2 MAS, the job completion message will be sent to the system that has the USERID with the lowest job number. In practice this will be the same as the first system you logon to. This issue is resolved in z/OS 1.13 when all participating MAS members are at that level (or above). SDSF Considerations (sysplex only): When using a single TSO USERID in a sysplex, no modifications to SDSF are required. However, if you use the ULOG command or issue MVS and JES2 commands, you will only see the responses on the first system that activates the EMCS console. This is because there can't be more than one console in a sysplex with the same name, and the default EMCS console name is your USERID. You can change your SDSF EMCS console name by using the "SET CONSOLE " command or from the "Options" pull down menu. I normally suffix my USERID with a unique single letter or number on each system. JES3 Considerations: For using a single TSO USERID in a JES3 complex a JES3 source update to IATGRJS is required (this takes care of the duplicate logon check in JES3). If only the DASD is shared and there is no JES3 complex involved, then the JES3 source update is not required. However, as of z/OS 2.1, the JES3 source usermod is no longer required for any JES3 configuration as there is no longer any duplicate logon check within JES3. ISPF Considerations: 1) Prior to z/OS 1.9, the LOGON clist must allocate a different ISPF profile for each system. I use: userid.SYSnnnn.ISPPROF (nnnn=SMFID). Starting at z/OS 1.9, profile sharing is possible. You must at least set PROFILE_SHARING=YES in the ISPF configuration table. In the ISPCCONF dialog, this can be found as "Multi-logon Profile Sharing" in the "ISPF Site-wide Defaults" section. If you are already using the setting for ISPF_TEMPORARY_DATA_SET_QUALIFIER, you may remove it and let it default to "ISP&SEQ" (see below for more on this for pre- z/OS 1.9 systems). If you don't remove the qualifier setting or specify the default of ISP&SEQ, you will get a warning, but you can ignore it as long as the setting will resolve to something that is unique for each system in the sysplex, for example SYS&SYSNAME. See the "Profile Sharing" section in the ISPF Planning and Customization manual for more information on this. ** Note that using the ISPF plugin of z/OS Management Facility (z/OSMF) for z/OS 1.13 and above requires the use of profile sharing to allow multiple ISPF sessions. The information below applies to ISPPROF sharing without the sharing support introduced in z/OS 1.9 enabled: There are some shops that share ISPPROF by not propagating the ENQ for SPFEDIT specifically for the profile data set name. Masking must be used with GRS / MIM for the ENQ RNAME in this case. I don't recommend this approach because it could lead to corruption of your profile data set. The other caveat with this approach is that because the same profile member (APPL) could be updated from multiple systems concurrently, the last update wins. For example, if you are logged on to SYSA and SYSB and update a PFK setting from SYSA and then logoff SYSA before SYSB, you will lose that update. This same issue can destroy edit recovery information in your profile. Assuming you are working under the same ISPF APPL on both SYSA and SYSB and are forced off of SYSA and logoff normally from SYSB, you will not be presented with the edit recovery dialog when you logon again to either system. There is a similar caveat for edit recovery even when not sharing the ISPF profile data set. Because some recovery information is stored in the ISPF profile, if you attempt to edit the same data set or same PDS member from a system that does not have recovery pending, you will be able to update the data set or PDS member without warning. If you then attempt to edit that same data set or PDS member from the system pending recovery and don't cancel out of the recovery, you will lose the updates done from the other system. However, if you are forced off a system and have edit recovery pending, then re-logon to the same system, edit recovery will work as expected. I tend to run with recovery off and thus avoid the issue altogether. 2) If your system is not at OS/390 R10 or higher, you need ISPF exit 16 to ensure unique names for the LOG,LIST and temporary data set names. This also requires updating the ISPXDT exit definition table in LMOD ISPEXITS and the ISPDFLTS module to let ISPF know you are using exits. If you are at OS/390 2.8 or above, the ISPDFLTS table is replaced by the new ISPF Configuration Utility - ISPCCONF. You must specify ENABLE_ISPF_EXITS = YES in the configuration table that is input to the utility. In the ISPCCONF dialog, this can be found in the "ISPDFLTS, CUA Colors, and Other DM Settings" section. My ISPF Exit 16 uses the convention of: userid.SYSnnnn.SPFLOGn.LIST userid.SYSnnnn.SPFTEMPn.CNTL userid.SYSnnnn.SPFn.LIST I link ISPEX16 right in with ISPXDT. If you are at OS/390 R10 or higher, you can use an option in the ISPF Configuration Utility as an alternative to using ISPF exit 16. Specify ISPF_TEMPORARY_DATA_SET_QUALIFIER = SYSnnnn (or whatever qualifier you desire). In the ISPCCONF dialog, this can be found as "Additional Temporary Data Set Qualifier" in the "ISPF Site-wide Defaults" section. The drawback to this method is that you will need a different configuration table for each system unless you are at the z/OS 1.5 level or above. In z/OS 1.5 and above, a Static System Symbol can be specified as part of the name and ISPF exit 16 is no longer required: ISPF_TEMPORARY_DATA_SET_QUALIFIER = SYS&SYSNAME For z/OS 1.9 and above, if you implement ISPF profile sharing via PROFILE_SHARING=YES, you don't have to specify anything here and may let it default to ISPF_TEMPORARY_DATA_SET_QUALIFIER = ISP&SEQ. 3) As long as you are using GRS or MIM you don't need to worry about recovery data set names because an ISPF ENQ (SPFEDIT) will be used to create unique names, otherwise there is another ISPF exit for that (the data set name change exit). I have provided the following samples to implement this: ISPDFLTS - ASM/LNK ISPDFLTS via SMP/E usermod ISPEX16 - ASM/LNK ISPF EXIT 16 and ISPXDT via SMP/E usermod UMJES01 - JES2 Source update via SMP/E usermod (OS/390 R10) UMJES012 - JES2 Source update via SMP/E usermod (z/OS R2 & >) UMJES01O - JES2 Source update via SMP/E usermod (OS/390 < R10) UMJES06 - JES3 Source update via SMP/E usermod (supplied by Edward E. Jaffe - Phoenix Software) ** Please verify the source line numbers in the JES USERMODs to make sure they match the line numbers of your JES version!! If you wish to use JES2 exit 44 instead of the JES2 source usermod I am providing, there is a sample available on CBT file 346. RMF ISPF Dialogs (optional) If you use want to use the RMF ISPF dialogs from multiple systems at the same time using the same TSO USERID, you will need to modify the SYS1.SERBCLS(ERBRMF3X) CLIST for the ISPTABLE data set name. For example, the CLIST as distributed: SET TABLSUF = &STR(ISPTABLE) can be changed to: SET TABLSUF = &STR(ISPTABLE).SYS&STR(&SYSSMFID) Other ISPF applications (optional) Other ISPF applications (IBM, ISV, and local) may also have issues with trying to use them concurrently from different systems using the same TSO USERID. For many ISPF applications, concurrent usage with the same TSO USERID may not be possible. Each application needs to be examined on an individual basis. Here are a few IBM product CLISTs that may be modified to support concurrent usage with the same TSO USERID from different systems: HCD - Modify SYS1.SCBDCLST(CBDCHCD) IPCS - Modify SYS1.SBLSCLI0(BLSCDDIR) RMF - Modify SYS1.SERBCLS(ERBRMF3X) (see above)