Multiple Concurrent IUI Sessions
It is possible to have one IUI session per ISPF logical screen. To start the first IUI session, you might use a script similar to the one below.
/* REXX */ ARG NETMAP APPL IF NETMAP = ‘’ THEN NETMAP = “CDA.NETMAP” IF APPL = ‘’ THEN APPL = “CDA” ADDRESS TSO “ALTLIB ACTIVATE DATASET('$CD.SDGAISPC') APPLICATION(CLIST)” ADDRESS ISPEXEC “LIBDEF DMMSGFIL DATASET ID(‘$CD.MSG') STACK” “LIBDEF DMPUBLIB DATASET ID(‘$CD.SDGAPROC') STACK” “LIBDEF DMNETMAP DATASET ID(‘”netmap”') STACK” “LIBDEF ISPLLIB DATASET ID(‘$CD.SDGALINK') STACK” “LIBDEF ISPMLIB DATASET ID(‘$CD.SDGAMENU') STACK” “LIBDEF ISPPLIB DATASET ID(‘$CD.SDGAPENU') STACK” “LIBDEF ISPSLIB DATASET ID(‘$CD.SDGASENU') STACK” “SELECT PGM(DGADISTR) NEWAPPL(“appl”) PASSLIB” ADDRESS TSO “ALTLIB DEACTIVATE APPLICATION(CLIST)” ADDRESS ISPEXEC “LIBDEF DMMSGFIL” “LIBDEF DMPUBLIB” “LIBDEF DMNETMAP” “LIBDEF ISPLLIB” “LIBDEF ISPMLIB” “LIBDEF ISPPLIB” “LIBDEF ISPSLIB” EXIT 0
Invoked with no arguments and no other IUI sessions active in the TSO LOGON, the IUI is started with the default netmap and applid, and when exited, cleanup is complete and leaves the TSO session in the same state as before the REXX EXEC was invoked. The LIBDEF and ALTLIB commands are limited in scope to the ISPF logical screen they are invoked on. There are no TSO ALLOCATE or FREE commands which could pull the rug out from underneath a split screen IUI session, or vice versa.
ISPF supports up to 32 logical screens. Your installation can reduce that number. Each IUI session requires a certain amount of storage (below and above the line). You may need to increase the TSO user’s region to run multiple IUI sessions. Any ISPF logical screen can be used for any IUI session. You are allowed only one IUI session per ISPF logical screen. If you invoke more than one IUI session on one ISPF logical screen, the results are unpredictable. IUI sessions started with the same ISPF APPLID share the same ISPF profile pool. Each IUI session can utilize multi-session signon.