Description of SCIF

Download count: 9 this month, 6288 altogether.
Downloads for SCIF :
  VMARC archive: v-33K

From Kris Buelens, IBM Belgium
The purpose of the SCIF package it to make using SCIF easier.

Introduction

(In case you don't know SCIF)
SCIF stands for Single Console Image Facility, some people refer to it as "secondary userid". It is the CP facility that allows to use CP SEND to send commands to a disconnected machine and to receive its console output on your console.

Versions

The package

SCIF EXEC
The meat of the package is the SCIF EXEC. Thanks to SCIF you don't need to type CP SEND user before each command to be sent to the SCIFfed machine. The SCIF EXEC does that for you, see below for a simple example.
Additionally, the SCIF EXEC makes it easier to execute .CMS commands in SFS servers, as it will dynamically update the appropriate byte in SFS's CVT area (see SFSDOT SAMPLIST document on MAINT 3B2) .

When ending a SCIF session, the SCIF EXEC restores the original secondary user (e.g. back to your operator machine).

The SCIF EXEC depends on WAKEUP MODULE and SEC EXEC.

SEC EXEC
The SEC EXEC can be used to dynamically change a secondary user for someone. When running on VM/ESA V1 R2 M0 or higher, SEC uses the CP SET SECUSER command, on VM/SP, VM/XA or older VM/ESA releases we use the CP STORE command to update real storage.

Why would you want the SEC EXEC ?

  • Users of old VM systems (without CP's SET SECUSER command) can now dynamically define a secondary user.
  • Users of modern VM systems can find the SEC EXEC useful as it can restore the previous secondary user.
AUTOSEC EXEC
XAUTOLOGs a user and calls SEC to set its secondary user to you.
AUTOSCIF EXEC
XAUTOLOGs a user and calls SCIF to start a command session with the autologged user.
SCIFSFS EXEC
Is a shorthand for SCIF (SFS) VMSERVx .CMS some cms command
To enable execution of .CMS commands in an SFS server, a byte in the DMSCVT area must be updated. The SCIF EXEC can do that for you. Note: when you leave SCIF, the byte in DMSCVT will not be restored; that is, execution of .CMS commands remains enabled.

Example

scif vtam
Old secuser for VTAM was: OPERATOR
SECUSER of VTAM initiated.
New secuser for VTAM is: BUELENSC
You can now enter command(s) for VTAM. Please note:
   CP some-CP-command         goes directly to CP in VTAM
   #a-command                 is executed in your VM i.e. BUELENSC
   AnyThingElse               is SENT (uppercase) to VTAM
   Press   PF3   to stop.
vtam d id=VMLU0902
 VTAM: Ready;
 VTAM: IST097I DISPLAY ACCEPTED
 VTAM: IST075I NAME = BEIBM000.VMLU0902, TYPE = LOGICAL UNIT
 VTAM: IST486I STATUS= ACT/S, DESIRED STATE= ACTIV
 VTAM: IST977I MDLTAB=***NA*** ASLTAB=***NA***
 VTAM: IST861I MODETAB=ISTINCL1 USSTAB=USSSNA LOGTAB=***NA***
 ......
 VTAM: IST314I END
cp ind user
 VTAM: USERID=VTAM     MACH=XA  STOR=0032M VIRT=V XSTORE=NONE
 VTAM: IPLSYS=GCS      DEVNUM=00015
 VTAM: PAGES: RES=000769 WS=000748 LOCK=000001 RESVD=000000
 VTAM: NPREF=000703 PREF=000000 READS=001407 WRITES=001303
 VTAM: CPU 00: CTIME=23:12 VTIME=044:30 TTIME=059:59 IO=267217
 VTAM:         RDR=000000 PRT=000000 PCH=000000
...press PF3
 $$exit$$
Old secuser for VTAM was: BUELENSC
VTAM    : Your SECUSER set to OPERATOR by BUELENSC.
SECUSER of VTAM terminated.
New secuser for VTAM is: OPERATOR
Ready;

Example of SCIFSFS

scifsfs VMSERVS .CMS q disk a
SFS .CMS Commands enabled
You can now enter command(s) for VMSERVS. Please note:
   CP some-CP-command         goes directly to CP in VMSERVS
   #a-command                 is executed in your VM i.e. KRIS
   AnyThingElse               is SENT (uppercase) to VMSERVS
   Press   PF3   to stop.
 VMSERVS: LABEL  VDEV M  STAT   CYL TYPE BLKSZ   FILES  BLKS USED-(%) BLKS LEFT BLK TOTAL
 VMSERVS: SFS191 191  A   R/W     1 3390 4096       12         19-11        161       180
 VMSERVS: DMS5BC3065I Operator command processing complete
The second line in the screenshot above tells you that SCIF enabled the execution of .CMS commands.

SCIF Version 1.1 highlights

The changes incorporated in SCIF 1.1 are:

  • Allow PF3 to stop seeing pending msgs. Before, this change, it was very hard to get out of SCIF when the SCIFfed user sent many msgs. We now see your PF3 request much sooner and stop the SCIF EXEC. (In case you mind: SCIF uses WAKEUP to intercept messages, and WAKEUP can often receive the IUCV messages faster than it can deliver them to your console. When you leave the SCIF EXEC, all messages queued in WAKEUP are lost.)
  • With this version, you can run SCIF in a disconnected service machine or as a PIPE subroutine. (Normally SCIF waits for commands from your side or messages, and only quits when you hit PF3.
    The new facilities make two things easy:
    • When you have more VM systems, and, at the remote site, a service machine (such as PROP) you can easily send one command to another server (such as SFS). Example:
      TELL PROP at remoteVM CMD SCIF VMSERVS STOP
    • In a PIPE, using the SCIF EXEC can make it easy to check servers, and maybe stop them, or ... Example:
      address command
      'PIPE REXX (SCIF EXEC) VTAM Q DISK ¨TOLABEL Ready¨STEM disk.'
      do i=2 to disk.0 ; ..do what you like ...; end
          
  • SCIF now detects when the primary user gets logged off, and then SCIF stops automatically.

SCIF Version 1.2 highlights 19 August 1999

The changes incorporated in SCIF 1.2 are:

  • 9 Apr 1999: Allow to use SCIF as PIPE subroutine
  • 13 Apr 1999: LINEEND option: allows sending > 1 command at once
  • 31 May 1999: improve performance by NUCXLOADing IMMCMD if it is not loaded and not in the CMS nucleus
  • 17 Aug 1999: Don't uppercase command(s) passed as parameter if the MIXEDON option is used.

SCIF Version 1.3 highlights 2 October 2003

The changes for SCIF 1.3 are:

  • Support enabling .CMS commands for SFS servers that run with TERM TIMESTMP ON.
  • Include the SCIFSFS exec.
  • New NOSECMSG option.
  • Try to co-exist better with other WAKEUP using programs, such as servers based on the RXSERVER package.

SCIF Version 1.4 highlights 11 August 2011

The change for SCIF 1.4 is the addition of a LINUXSUM option. It makes it easy to start a Linux in Single User Mode. It will respond 0 1 to this Linux' startup prompt

    zIPL v1.3.2 interactive boot menu
    0. default (linux)
    1. linux
    Note: VM users please use '#cp vi vmsg <input>'

The LINUXSUM prefix option is merely meant to be used by a front-end EXEC that calls the SCIF EXEC, such as:
    /* This exec starts LINUX00 in Single User Mode
       if LINUX00 is already logged on, we simply SCIF to it. */
    address command
    'CP XAUTOLOG LINUX00 SYNC'
    if rc<>0 then do
       if rc=54 then 'EXEC SCIF (MIXED) LINUX00' /* was logged on*/
       exit rc
    end
    'EXEC SCIF (LINUXSUM) LINUX00' /* Responds "0 1" to Linux' IPL prompt */
    exit rc