Customização de amostra da Instalação de Isolamento IMS Transaction

Aqui está um exemplo da customização do IMS Transaction Isolamento Facility em um local típico do cliente. Neste exemplo, o sistema tem os recursos a seguir:
  • O nome do sub-sistema do IMS é IMSA.
  • O qualificador de alto nível do produto IMS é PROD.IMSV14.
  • A Dynamic Resource Definition (DRD) está ativa.
  • O número máximo de transações que é definido pelo parâmetro MAXCLAS da macro de definição do sistema IMSCTRL é 200.
  • Regiões dependentes atualmente definidas nas classes de entrega do sistema na faixa de 21 a 100.
  • Os conjuntos de dados do Depurador do IBM® z/OS® são instalados sob o qualificador de alto nível ZDEBUG.
O administrador do IMS decide que 10 classes de região estão reservadas para usuários de Isolamento do IMS , o que significa que 10 usuários podem depurar em regiões de mensagens privadas simultaneamente.

Como o intervalo de classe 21-100 é usado para o desenvolvimento normal e atividade de teste, as classes de Isolamento do IMS devem estar na faixa de 1-20 e 101-200. O administrador do IMS escolhe as classes 131-140 para reservar para usuários do IMS Isolamento.

Em seguida, o administrador do IMS executa as seguintes etapas para preparar a região de controle do IMS para executar com o IMS Isolamento:
  1. Edite o membro ZDEBUG.SEQASAMP(EQAWTIVS) e envie-o (SUBMIT) para criar o conjunto de dados VSAM PROD.ZDEBUG.EQATITBL.
    
    //EQAWTIVS JOB
    //*********************************************************************
    //*        DELETE THE EXISTING FILE                                   *
    //*********************************************************************
    //DELETE    EXEC PGM=IDCAMS,REGION=1M
    //SYSPRINT DD SYSOUT=*
    //SYSIN    DD *
     DELETE PROD.ZDEBUG.EQATITBL
     SET MAXCC=0
    /*
    //*********************************************************************
    //*        DEFINE A NEW VSAM DEBUGGING PROFILE DATASET                *
    //*********************************************************************
    //DEFINE    EXEC PGM=IDCAMS,REGION=1M
    //SYSPRINT DD SYSOUT=*
    //SYSIN    DD *
    /*                         */
    /* DEFINE IMS ISOLATION    */
    /* TABLE INDEX AND PATH    */
    /* DATA SETS               */
    /*                         */
       DEFINE CLUSTER (RECORDS(999) -
        NAME (PROD.ZDEBUG.EQATITBL) -
        SHAREOPTIONS(2 3) -
        LOG(NONE) -
        INDEXED)         -
       DATA -
        (RECSZ(200,200) -
        NAME (PROD.ZDEBUG.EQATITBL.DATA) -
        KEYS(11 0) -
        FREESPACE(10 10) -
        BUFFERSPACE (20000)) -
      INDEX -
        (NAME(PROD.ZDEBUG.EQATITBL.INDX))
    /*
    
  2. Edite o membro ZDEBUG.SEQASAMP(EQAWTIMS) e envie-o para linkeditar as saídas de isolamento do IMS usando o nível atual do IMS. As saídas são colocadas em PROD.ZDEBUG.IMSISO.LOADLIB.
    
    //EQAWTIMS JOB
    // SET DTHLQ=ZDEBUG
    // SET IMSHLQ=PROD.IMSV14
    //*********************************************************************
    //* Link-edit the EQATIEDT user exit (transaction message edit)       *
    //*********************************************************************
    //LINK1  EXEC  PGM=IEWL,COND=(4,LE),REGION=17M,
    // PARM=('OPTIONS=OPTIONS')
    //SYSUT1   DD UNIT=SYSVIO,SPACE=(TRK,(10,80))
    //SYSPRINT DD SYSOUT=*
    //SYSLMOD  DD DSN=PROD.ZDEBUG.IMSISO.LOADLIB,DISP=SHR
    //SYSLIB   DD DSN=&DTHLQ..SEQAMOD,DISP=SHR 
    //         DD DSN=&IMSHLQ..SDFSRESL,DISP=SHR 
    //OPTIONS  DD * 
     LIST,XREF,LET,MAP 
    //SYSLIN   DD *
      MODE AMODE(31),RMODE(ANY)
      INCLUDE  SYSLIB(DFSCSI00) 
      REPLACE  DFSCSII0
      INCLUDE  SYSLIB(EQATIEDT) 
      ENTRY    EQATIEDT 
      NAME     EQATIEDT(R) 
    /* 
    //********************************************************************* 
    //* Link-edit the DFSMSCE0 user exit (transaction routing)            * 
    //********************************************************************* 
    //LINK2  EXEC  PGM=IEWL,COND=(4,LE),REGION=17M, 
    // PARM=('OPTIONS=OPTIONS') 
    //SYSUT1   DD  UNIT=SYSVIO,SPACE=(TRK,(10,80)) 
    //SYSPRINT DD  SYSOUT=* 
    //SYSLMOD  DD DSN=PROD.ZDEBUG.IMSISO.LOADLIB,DISP=SHR 
    //SYSLIB   DD DSN=&DTHLQ..SEQAMOD,DISP=SHR 
    //         DD DSN=&IMSHLQ..SDFSRESL,DISP=SHR 
    //OPTIONS  DD  *
     LIST,XREF,LET,MAP 
    //SYSLIN   DD  *
      MODE AMODE(31),RMODE(ANY)
      INCLUDE  SYSLIB(DFSCSI00)
      REPLACE  DFSCSIF0
      INCLUDE  SYSLIB(EQATIEXT)
      ENTRY    EQATIEXT 
      ALIAS    DFSMSCE0 
      NAME     EQATIEXT(R) 
    /*
  3. Edite o membro ZDEBUG.SEQASAMP(EQAOPTS) e envie-o para criar o módulo de carregamento EQAOPTS:
    1. Use Delay Debug nas regiões privadas de processamento de mensagens do IMS , com o padrão de nomenclatura ' USR.userid.DLAYDBG.EQAUOPTS'.
    2. Limite cada usuário do IMS Isolamento para registrar para quatro transações.
    
    //EQAOPTS JOB 5724-T07,MSGLEVEL=(1,1),MSGCLASS=A
    //*PROC JCLLIB ORDER=(ASM.SASMSAM1)
    // SET GPFMLIB=ZDEBUG.SEQASAMP
    // SET GPFLMOD=PROD.ZDEBUG.IMSISO.LOADLIB
    //*
    //ASMGL EXEC ASMACL,REGION=6M,PARM.L='MAP,LET,LIST,XREF,RENT'
    //C.SYSLIB  DD DSN=&GPFMLIB.,DISP=SHR 
    //          DD DSN=SYS1.MACLIB,DISP=SHR 
    //C.SYSIN   DD * 
    EQAOPTS  CSECT , 
    EQAOPTS  AMODE 31 
    EQAOPTS  RMODE ANY 
             EQAXOPT DLAYDBGDSN,'USR.&&USERID.DLAYDBG.EQAUOPTS'   a 
             EQAXOPT MAXTRANUSER,4                                c  
             EQAXOPT END 
             END , 
    //L.SYSLMOD DD DISP=SHR,DSN=&GPFLMOD.
    //L.SYSIN DD *
       NAME EQAOPTS(R)
    /*
    
  4. Coloque os novos conjuntos de dados na região de controle da região de controle do IMS . As customizações a seguir são necessárias:
    1. APF-autorizar a saída IMS customizada e a biblioteca de carregamento EQAOPTS (PROD.ZDEBUG.IMSISO.LOADLIB)..
    2. Inclua a biblioteca de carregamento EQAOPTS na concatenação da STEPLIB. Assegure-se de que a biblioteca esteja no caminho da procura antes do conjunto de dados ZDEBUG.SEQAMOD.
    3. Inclua um novo cartão DD denominado EQATIVSM para o conjunto de dados de VSAM criado na Etapa 1 (PROD.ZDEBUG.EQATITBL).
    //IMSACTAM PROC SOUT=A,DPTY='(14,15)',RGN=0M
    //IEFPROC EXEC PGM=DFSMVRC0,DPRTY=&DPTY,REGION=&RGN,
    // PARM='&CTL,&RGSUF,&PARM1,&PARM2'
    ...
    //STEPLIB  DD DISP=SHR,DSN=PROD.ZDEBUG.IMSISO.LOADLIB   b 
    //         DD DISP=SHR,DSN=PROD.ZDEBUG.SEQAMOD
    //         DD DISP=SHR,DSN=PROD.IMS.LOADLIB
    ...
    //EQATIVSM DD DISP=SHR,DSN=PROD.ZDEBUG.EQATITBL         c 
    ...
  5. Como o cliente usa a saída do DFSMSCE0 IMS no ambiente de desenvolvimento e teste, uma outra customização é necessária para garantir que o DFSMSCE0 do IBMz/OS Debugger leve em conta o processamento da saída do cliente. O DFSMSCE0 do cliente é PROD.IMSEXIT.LOADLIB.
    1. Certifique-se de que PROD.IMSEXIT.LOADLIB não apareça em STEPLIB ou JOBLIB ou que apareça no caminho de pesquisa após o conjunto de dados que contém a saída DFSMSCE0 do depurador IBM z/OS, por exemplo, PROD.ZDEBUG.IMSISO.LOADLIB.
    2. Adicione um novo cartão DD chamado EQAIMEXT para identificar a saída do cliente DFSMSCE0 para o depurador IBM z/OS.
    //IMSACTAM PROC SOUT=A,DPTY='(14,15)',RGN=0M
    //IEFPROC  EXEC PGM=DFSMVRC0,DPRTY=&DPTY,REGION=&RGN,
    // PARM='&CTL,&RGSUF,&PARM1,&PARM2'
    ...
    //EQATIVSM DD DISP=SHR,DSN=PROD.ZDEBUG.EQATITBL
    //EQAIMEXT DD DISP=SHR,DSN=PROD.IMSEXIT.LOADLIB         b 
    //*
  6. Inicie a região de controle do IMS usando o processo normal.
  7. Um administrador do RACF® usa os comandos a seguir para criar um novo recurso para administrar o IMS Isolation e fornece ao administrador do IMS , cujo ID é ADMINA, acesso READ:
    
    RDEFINE FACILITY EQADTOOL.IMSTRANISOADMIN UACC(NONE)
    PERMIT EQADTOOL.IMSTRANISOADMIN CLASS(FACILITY) ID(ADMINA) ACC(READ)
    SETROPTS RACLIST(FACILITY) REFRESH
    
    Em seguida, o administrador RACF usa os comandos a seguir para autorizar o EQANBSWT Batch Messaging Program (BMP) a executar os comandos ASSIGN, DISPLAY, START e STOP IMS :
    
    ADDUSER EQANBSWT NOPASSWORD DFLTGRP(SYS1)
    PERMIT ASS CLASS(CIMS) ID(EQANBSWT) ACC(UPDATE)
    PERMIT DIS CLASS(CIMS) ID(EQANBSWT) ACC(UPDATE)
    PERMIT STA CLASS(CIMS) ID(EQANBSWT) ACC(UPDATE)
    PERMIT STO CLASS(CIMS) ID(EQANBSWT) ACC(UPDATE)
    SETROPTS RACLIST(CIMS) REFRESH
    
  8. Quando a região de controle é iniciada, o administrador do IMS precisa acessar o painel ISPF EQAPMPDF usando a opção z/OS Debugger Utilities 4.6. Neste painel, o administrador do IMS seleciona as classes a serem reservadas para depuração, 131 a 140:
    
    +--------------------------------------------------------------------------------+
    | IMS debugging preferences                                Row 126 to 150 of 200 |
    | Command ===>                                   Scroll ===> PAGE                |
    |                                                                                |
    | IMS system . . . . . . IMSA                                                    |
    |                                                                                |
    |  Place a / next to the message classes that you would like to                  |
    |  reserve for the isolation of debug users in your IMS system.                  |
    |                                                                                |
    |  Data set name for stage-1 resource definitions:                               |
    |  ________________________________________________________                      |
    |  Data set name for type-2 commands:                                            |
    |  ________________________________________________________                      |
    |  Data set name for the IMS RESLIB:                                             |
    |  ________________________________________________________                      |
    |                                                                                |
    | Sel Class number                                                               |
    |  _  126                                                                        |
    |  _  127                                                                        |
    |  _  128                                                                        |
    |  _  129                                                                        |
    |  _  130                                                                        |
    |  /  131                                                                        |
    |  /  132                                                                        |
    |  /  133                                                                        |
    |  /  134                                                                        |
    |  /  135                                                                        |
    |  /  136                                                                        |
    |  /  137                                                                        |
    |  /  138                                                                        |
    |  /  139                                                                        |
    |  /  140                                                                        |
    |  _  141                                                                        |
    |  _  142                                                                        |
    |  _  143                                                                        |
    |  _  144                                                                        |
    |  _  145                                                                        |
    |  _  146                                                                        |
    |  _  147                                                                        |
    |  _  148                                                                        |
    |  _  149                                                                        |
    |  _  150                                                                        |
    |                                                                                |
    |  F1=Help    F3=Exit    F4=IMSIDLst   F7=Backward   F8=Forward   F12=Cancel     |
    +--------------------------------------------------------------------------------+
  9. Após selecionar as classes para depuração, o administrador do IMS customiza ZDEBUG.SEQASAMP(EQAWICRT) e o usa para gerar um conjunto de dados que contém comandos type-2 . Esses comandos podem ser usados para definir recursos para o Isolamento do IMS
    
    //EQAWICRT JOB
    //*
    // SET DTHLQ=ZDEBUG
    //DELETE    EXEC PGM=IDCAMS,REGION=1M
    //SYSPRINT DD SYSOUT=*
    //SYSIN    DD *
     DELETE ADMINA.IMSISO.TYPE2
     SET MAXCC=0
    /*
    //CREATE EXEC PGM=EQANICRT,REGION=0M,
    // PARM=('READMASK IMSA')
    //EQATY2DS DD DSN=ADMINA.IMSISO.TYPE2,
    //            DISP=(NEW,CATLG,DELETE),
    //            SPACE=(TRK,(20,20,0),RLSE),
    //            DCB=(RECFM=FB,LRECL=80,BLKSIZE=0)
    //EQATISPT DD SYSOUT=*
    
  10. Defina o seguinte programa de mensagens em lote do IMS :
    APPLCTN GPSB=EQANBSWT,LANG=ASSEM,PGMTYPE=(BATCH),               X
            SCHDTYP=PARALLEL
    TRANSACT CODE=(EQANBSWT),AOI=TRAN,                              X
            MSGTYPE=(SNGLSEG,NONRESPONSE)
  11. O administrador do IMS cria um deck de JCL para executar o utilitário SPOC do lote IMS (CSLUSPOC) para criar os recursos necessários pelo IMS Isolamento.
    
    //SPOCBCH  JOB
    //BATCH    EXEC PGM=CSLUSPOC,PARM='IMSPLEX=PLEX2,F=BYCOL'
    //STEPLIB  DD DSN=PROD.IMSV14.SDFSRESL,DISP=SHR
    //SYSPRINT DD SYSOUT=*
    //SYSIN DD DSN=ADMINA.IMSISO.TYPE2,DISP=SHR
    
  12. O administrador do IMS então faz as seguintes customizações do ISPF :
    • O cliente mantém todos os PROCs que são usados para criar regiões dependentes do IMS em uma biblioteca PROCEDURE denominada PROD.IMSV14.PROCLIB. Para permitir que o IMS Isolation Facility acesse essa biblioteca para gerar regiões de mensagens privadas, o administrador do IMS atualiza ZDEBUG.SEQATLIB(EQAZPROC) para incluir PROD.IMSV14.PROCLIB:
      
      PROD.IMSV14.PROCLIB
      SYS1.PROCLIB
      
    • O sistema de gerenciamento de tarefas ( MVS ) em que o IMSA opera possui certas regras para tarefas enviadas ao JES. Para garantir que as regiões de mensagens privadas iniciadas pelo Isolamento de IMS estejam em conformidade com essas regras, o administrador do IMS atualiza o PROD.ZDEBUG (EQAZDFLT) para especificar substituições para vários parâmetros JOB:
      
      File  Edit  Edit_Settings  Menu  Utilities Compilers  Test Help
      ------------------------------------------------------------------------------
      EDIT                         PROD.ZDEBUG(EQAZDFLT)      - 01.06    Columns 000
      Command ===>                                                          Scroll =
      000205 !us5adspc = ;                          ! Override for JOB parm ADDRSPC
      000206 !us5bytes = ;                          ! Override for JOB parm BYTES
      000207 !us5cards = ;                          ! Override for JOB parm CARDS
      000208 !us5ccsid = ;                          ! Override for JOB parm CCSID
      000209 !us5class = ;                          ! Override for JOB parm CLASS
      000210 !us5cond = ;                           ! Override for JOB parm COND
      000211 !us5group = ;                          ! Override for JOB parm GROUP
      000212 !us5jeslg = ;                          ! Override for JOB parm JESLOG
      000213 !us5lines = ;                          ! Override for JOB parm LINES
      000214 !us5melim = ;                          ! Override for JOB parm MEMLIMIT
      000215 us5msgcl = A ;                         ! Override for JOB parm MSGCLASS
      000216 !us5msglv = ;                          ! Override for JOB parm MSGLEVEL
      000217 us5notfy = &SYSUID. ;                  ! Override for JOB parm NOTIFY 
      000218 !us5pages = ;                          ! Override for JOB parm PAGES 
      000219 !us5paswd = ;                          ! Override for JOB parm PASSWORD 
      000220 !us5perf = ;                           ! Override for JOB parm PERFORM 
      000221 !us5prty = ;                           ! Override for JOB parm PRTY 
      000222 !us5rd = ;                             ! Override for JOB parm RD 
      000223 !us5regn = ;                           ! Override for JOB parm REGION 
      000224 !us5rstrt = ;                          ! Override for JOB parm RESTART 
      000225 !us5seclb = ;                          ! Override for JOB parm SECLABEL 
      000226 !us5schen = ;                          ! Override for JOB parm SCHENV
      000227 !us5sysaf = ;                          ! Override for JOB parm SYSAFF
      000228 !us5systm = ;                          ! Override for JOB parm SYSTEM 
      000229 us5time = 1440 ;                       ! Override for JOB parm TIME 
      000230 !us5typrn = ;                          ! Override for JOB parm TYPRUN 
      000231 !us5user = ;                           ! Override for JOB parm USER 
      000232 
      000233 
      **********************************************************************