JCL z/OS DFSMS - IEBCOPY Replace a Load Module Using COPYMOD



Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

JCL z/OS DFSMS - IEBCOPY Example 11: Replace a Load Module Using COPYMOD

In this example, a load module in an existing load library is replaced by another module.
The new module originally resides on a 3390 DASD device, whereas the load library to which it is copied resides on a 3380.
Because the module has a block size larger than the block size assigned to the output data set, the module must be reblocked before it is added to the load library.

Neste exemplo, um módulo de carregamento em uma biblioteca de carregamento existente é substituído por outro módulo.
O novo módulo reside originalmente em um dispositivo 3390 DASD, enquanto a biblioteca de carregamento para a qual é copiado reside em um 3380.
Como o módulo tem um tamanho de bloco maior do que o tamanho do bloco atribuído ao conjunto de dados de saída, o módulo deve ser bloqueado novamente antes ele é adicionado à biblioteca de carregamento.

This example illustrates how you can transfer load modules between devices of different sizes.
In this case, updated modules are created on a 3390 and tested before being added to the load library for general use.

Este exemplo ilustra como você pode transferir módulos de carga entre dispositivos de tamanhos diferentes.
Nesse caso, os módulos atualizados são criados em um 3390 e testados antes de serem adicionados à biblioteca de carregamento para uso geral.

  //STEP1    EXEC PGM=IEBCOPY
  //REPLACE  JOB  ...
  //SYSPRINT DD  SYSOUT=A
  //TESTLIB  DD  DSN=JOHNDOE.COBOL.TESTLOAD,DISP=SHR,UNIT=3390,
  //             VOL=SER=TEST01,DCB=(BLKSIZE=23470)
  //PRODLIB  DD  DSN=PAYROLL.MASTER.LOADLIB,DISP=(OLD,KEEP)
  //             UNIT=3380,VOL=SER=PROD01,DCB=(BLKSIZE=19069)
  //SYSIN    DD  *
             COPYMOD OUTDD=PRODLIB,INDD=TESTLIB
             SELECT MEMBER=((WAGETAX,,R))
  /*

The control statements are as follows:
As declarações de controle são as seguintes:

  • TESTLIB DD defines a load library on a 3390 direct access device.
    It has a block size of 23470.
  • PRODLIB DD defines a load library on a 3380 direct access device.
    It has a block size of 19069.
  • SYSIN DD defines the control data set, which follows in the input stream.
  • The COPYMOD statement identifies PAYROLL.MASTER.LOADLIB as the output data set and JOHNDOE.COBOL.TESTLOAD as the input data set.
    The SELECT statement indicates that the load module WAGETAX is to be copied from the input data set and is to replace any member with that name that is in the output data set.
    The member is also reblocked to 19069.

Note that, in this case, COPYMOD has to be used in order to copy the member WAGETAX into the PAYROLL.MASTER.LOADLIB.
Because the original block size of WAGETAX is larger than the largest block size that can reside in the output data set, attempting this operation with the COPY statement would be unsuccessful.
The problem would be attributed to a DCB validation error because of incorrect block size.


  • TESTLIB DD define uma biblioteca de carregamento em um 3390 dispositivo de acesso direto.
    Tem um tamanho de bloco de 23470.
  • PRODLIB DD define uma biblioteca de carregamento em um 3380 dispositivo de acesso direto. Ele tem um tamanho de bloco de 19069.
  • SYSIN DD define o conjunto de dados de controle, que segue no fluxo de entrada.
  • A instrução COPYMOD identifica PAYROLL.MASTER.LOADLIB como o conjunto de dados de saída e JOHNDOE.COBOL.TESTLOAD como o conjunto de dados de entrada.
    A instrução SELECT indica que o módulo de carregamento WAGETAX deve ser copiado do conjunto de dados de entrada e deve substituir qualquer membro com aquele nome que está no conjunto de dados de saída.
    O membro também é bloqueado para 19069.

Observe que, neste caso, COPYMOD deve ser usado para copiar o membro WAGETAX para PAYROLL.MASTER.LOADLIB.
Como o tamanho do bloco original de WAGETAX é maior do que o maior tamanho de bloco que pode residir no conjunto de dados de saída, a tentativa desta operação com a instrução COPY não terá êxito.
O problema seria atribuído a um erro de validação de DCB devido ao tamanho incorreto do bloco.

Parent topic: IEBCOPY Examples



© Copyright IBM Corp.