IBM Support

II13354: MOVING ICF CATALOGS - STEP BY STEP SCENARIOS, INCLUDING SHARED CATALOGS

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • INTRAN

Error description

  • This informational apar provides step by step procedures for
    moving catalogs from one volume to another. This apar further
    expands on the examples provided in the DFSMS manual "Managing
    Catalogs" including considerations for shared catalogs.
    These are also the same steps that should be used when reorging
    a catalog. The only difference between a reorg and a move is the
    volume the catalog is on at the end of the process.
    .
      When moving a catalog there are slightly different processes
    depending on whether the catalog is on a single system, or is
    shared across systems. This will cover three common system
    configurations. The first configuration is a single system, the
    second is multiple systems with each system having it's own
    master catalog and the third is multiple systems with a single
    shared master catalog.
    .
      Before moving any catalog always:
      1. Ensure you have a good backup of a valid catalog. Use of
         IDCAMS DIAGNOSE and EXAMINE on the catalog and correcting
         any errors before taking the backup will ensure you can
         fall back to a valid backup if there are problems. Having
         more than one copy is always a good idea in case one copy
         becomes damaged or lost. This backup can be a full volume
         dump of the volume the catalog is on, a DFDSS backup or
         IDCAMS EXPORT. Having all three gives you more options if
         you need to back out of the catalog move.
      2. Ensure through the use of IDCAMS DIAGNOSE and EXAMINE that
         the catalog does not have errors.
      3. An IDCAMS LISTCAT ALL of the catalog to be moved is always
         a good idea in case there are problems. Since this may
         produce a large volume of output you may wish to consider
         redirecting the output to a dataset either by pointing the
         SYSPRINT DD statement to a dataset, or by use of the OFILE
         keyword on the LISTCAT command.
      4. If you are moving a catalog that is shared across systems,
         a LISTCAT of the master catalog with ALL keyword is needed
         to enable a redefine of any aliases that point to the user
         catalog that is being moved, unless you already have a job
         setup to define the aliases. If you already have a job
         verify that it is current by comparing the LISTCAT output
         to the job.
         Note: EXPORT DISCONNECT is recommended in several of the
         examples but it does delete the alias entries in the ucat
         connector record making a redefine of them necessary.
         Instead, you can use IMPORT CONNECT w/ALIAS on the systems
         other than the one you are working with the catalog on.
    
      5. Quiesce all activity against the catalog that is to be
         moved.
    .
     The scenarios here assume that the following four steps are
     are run as the FIRST part of the move process and if there are
     errors, these are corrected before proceeding with moving the
     catalog.
     //DIAGNOSE EXEC PGM=IDCAMS
     //SYSPRINT DD   SYSOUT=*
     //DIAGDD   DD   DISP=SHR,DSN=your.user.catalog
     //SYSIN    DD   *
        DIAGNOSE ICFCATALOG INFILE(DIAGDD)
     //EXAMINE1 EXEC PGM=IDCAMS
     //SYSPRINT DD   SYSOUT=*
     //SYSIN    DD   *
       EXAMINE NAME(your.user.catalog) -
         INDEXTEST NODATATEST ERRORLIMIT(1000)
     //EXAMINE2 EXEC PGM=IDCAMS
     //SYSPRINT DD   SYSOUT=*
     //SYSIN    DD   *
       EXAMINE NAME(your.user.catalog) -
          NOINDEXTEST DATATEST ERRORLIMIT(1000)
      //LISTCAT  EXEC PGM=IDCAMS
      //SYSPRINT DD   SYSOUT=*
      //SYSIN    DD   *
        LISTCAT CAT(your.user.catalog) ALL
    .
     The scenarios here assume that the following four steps are
     are run as the LAST part of the move process and if there are
     errors, these are corrected before unlocking the catalog.
     //DIAGNOSE EXEC PGM=IDCAMS
     //SYSPRINT DD   SYSOUT=*
     //DIAGDD   DD   DISP=SHR,DSN=your.user.catalog
     //SYSIN    DD   *
        DIAGNOSE ICFCATALOG INFILE(DIAGDD)
     //EXAMINE1 EXEC PGM=IDCAMS
     //SYSPRINT DD   SYSOUT=*
     //SYSIN    DD   *
       EXAMINE NAME(your.user.catalog) -
         INDEXTEST NODATATEST ERRORLIMIT(1000)
     //EXAMINE2 EXEC PGM=IDCAMS
     //SYSPRINT DD   SYSOUT=*
     //SYSIN    DD   *
       EXAMINE NAME(your.user.catalog) -
         NOINDEXTEST DATATEST ERRORLIMIT(1000)
     //LISTCAT  EXEC PGM=IDCAMS
     //SYSPRINT DD   SYSOUT=*
     //SYSIN    DD   *
       LISTCAT CAT(your.user.catalog) ALL
    .
     Single system move of catalog OR move of catalog shared across
     systems with single shared master catalog.
    .
    1. Lock the catalog (must have IGG.CATLOCK authority)
     //LOCKCAT  EXEC PGM=IDCAMS
     //SYSPRINT DD SYSOUT=*
     //SYSIN    DD *
       ALTER your.user.catalog LOCK
    2. Issue the following command on each system that uses the
       catalog that you are moving if you use VLF for catalogs:
       F CATALOG,NOVLF(your.user.catalog)
       NOTE: The next command is optional and only relevant if you
       using ECS (Enhanced Catalog Sharing)
       F CATALOG,ECSHR(REMOVE,your.user.catalog)
    3. Export the catalog (considering doing this twice to have a
       second copy). See info apar II10752 item 16 for alternative
       JCL for EXPORT that improves the performance of EXPORT.
     //EXPRTTMP EXEC PGM=IDCAMS
     //SYSPRINT DD SYSOUT=*
     //EXPDD    DD DSN=CATBACK.your.user.catalog,UNIT=SYSDA,
     //  DISP=(NEW,CATLG,DELETE) ... other JCL parameters as needed
     //SYSIN    DD *
       EXPORT your.user.catalog -
         OUTFILE(EXPDD) TEMPORARY
    4. If you are happy with current catalog attributes such as
       cisize, then you can use the following else skip to step 5
     //NEWVOL   EXEC PGM=IDCAMS
     //SYSPRINT DD SYSOUT=*
     //SYSIN    DD *
       IMPORT INDATASET(CATBACK.your.user.catalog) -
       OUTDATASET(your.user.catalog) -
       OBJECTS((your.user.catalog -
                VOLUMES(NEWVOL))) -
                ALIAS -               /* Include the aliases     */
                LOCK                  /* Be sure to include this */
    .
       If you ran the above step, then skip to step 8
    
    5. If you are taking advantage of the move to update catalog
       attributes then delete the catalog with the recovery option
     //DELCAT   EXEC PGM=IDCAMS
     //SYSPRINT DD SYSOUT=*
     //SYSIN    DD *
        DELETE your.user.catalog -
          RECOVERY -                 /* Be sure this is specified */
          USERCATALOG
    6. Now define the catalog with the updated attributes on the new
       volume.
     //DEFCAT   EXEC PGM=IDCAMS
     //SYSPRINT DD SYSOUT=*
     //SYSIN    DD *
        DEFINE USERCATALOG -
           (NAME(your.user.catalog) -
            VOLUME(newvol)  -      /* New volume */
            CYL(20,5) -            /* Allow catalog to extend */
            ICFCATALOG -
            SHAREOPTIONS(3,4) -    /* Required if sharing catalog */
            STRNO(7)  -            /* Minimum is 3 */
            NOIMBED -              /* Only if OS/390 2.9 or below */
            NOREPLICATE -          /* Only if OS/390 2.9 or below */
            LOCK -                /* Be sure and define as locked */
            ) -
        DATA(CONTROLINTERVALSIZE(4096)) -
        INDEX(CONTROLINTERVALSIZE(4096))   /* recommended size */
    .
    7. Now import the export copy into the newly defined catalog
     //NEWVOL2  EXEC PGM=IDCAMS
     //SYSPRINT DD SYSOUT=*
     //SYSIN    DD *
       IMPORT INDATASET(CATBACK.your.user.catalog) -
              OUTDATASET(your.user.catalog) -
                INTOEMPTY -
                ALIAS -               /* Include the aliases     */
                LOCK                  /* Leave catalog locked    */
    .
    8. At this point run the four steps listed above to ensure there
       are not problems with the moved catalog. After those four
       have run and the output verified, unlock the catalog
     //UNLOCK   EXEC PGM=IDCAMS
     //SYSPRINT DD SYSOUT=*
     //SYSIN    DD *
       ALTER your.user.catalog UNLOCK
    .
     Move of catalog shared across systems with unique master
     catalogs for each system.
    .
    A. Lock the catalog
     //LOCKCAT  EXEC PGM=IDCAMS
     //SYSPRINT DD SYSOUT=*
     //SYSIN    DD *
       ALTER your.user.catalog LOCK(must have IGG.CATLOCK authority)
    .
    B. Issue the following command on each system that uses the
       catalog that you are moving:
       F CATALOG,NOVLF(your.catalog.name)
       NOTE: The next command is optional and only relevant if you
       using ECS (Enhanced Catalog Sharing)
       F CATALOG,ECSHR(REMOVE,your.user.catalog)
    C. Export disconnect the catalog from all systems OTHER than the
       one you are running the catalog move on. The syntax used here
       assumes that this will be run as a job on each system sharing
       the catalog OTHER than the one you are running the catalog
       move on.
     //EXPDISC  EXEC PGM=IDCAMS
     //SYSPRINT DD SYSOUT=*
     //SYSIN    DD *
       EXPORT your.user.catalog DISCONNECT
    .
    Note: you can skip this step if you are using IMPORT CONNECT
    w/ the ALIAS parameter on the other sharing LPARs in step J.
    .
    D. Export the catalog (considering doing this twice to have a
       second copy). See info apar II10752 item 16 for alternative
       JCL for EXPORT that improves the performance of EXPORT.
     //EXPRTTMP EXEC PGM=IDCAMS
     //SYSPRINT DD SYSOUT=*
     //EXPDD    DD DSN=CATBACK.your.user.catalog,UNIT=SYSDA,
     //  DISP=(NEW,CATLG,DELETE) ... other JCL parameters as needed
     //SYSIN    DD *
       EXPORT your.user.catalog -
         OUTFILE(EXPDD) TEMPORARY
    .
    E. If you are happy with current catalog attributes such as
       cisize, then you can use the following else skip to step F
     //NEWVOL   EXEC PGM=IDCAMS
     //SYSPRINT DD SYSOUT=*
     //SYSIN    DD *
       IMPORT INDATASET(CATBACK.your.user.catalog) -
       OUTDATASET(your.user.catalog) -
       OBJECTS((your.user.catalog -
                VOLUMES(newvol))) -
                ALIAS -               /* Include the aliases     */
                LOCK                  /* Be sure to include this */
    .
       If you ran the above step, then skip to step I
    
    F. If you are taking advantage of the move to update catalog
       attributes then delete the catalog with the recovery option
     //DELCAT   EXEC PGM=IDCAMS
     //SYSPRINT DD SYSOUT=*
     //SYSIN    DD *
        DELETE your.user.catalog -
          RECOVERY -                 /* Be sure this is specified */
          USERCATALOG
    .
    G. Now define the catalog with the updated attributes on the new
       volume.
     //DEFCAT   EXEC PGM=IDCAMS
     //SYSPRINT DD SYSOUT=*
     //SYSIN    DD *
        DEFINE USERCATALOG -
           (NAME(your.user.catalog) -
            VOLUME(newvol)  -         /* New volume */
            CYL(20,5) -               /* Allow catalog to extend */
            ICFCATALOG -
            SHAREOPTIONS(3,4) -    /* Required if sharing catalog */
            STRNO(7)  -               /* Minimum is 3 */
            NOIMBED -              /* Only if OS/390 2.9 or below */
            NOREPLICATE -          /* Only if OS/390 2.9 or below */
            LOCK -                /* Be sure and define as locked */
            ) -
        DATA(CONTROLINTERVALSIZE(4096)) -
        INDEX(CONTROLINTERVALSIZE(4096))   /* recommended size */
    .
    H. Now import the export copy into the newly defined catalog
     //NEWVOL2  EXEC PGM=IDCAMS
     //SYSPRINT DD SYSOUT=*
     //SYSIN    DD *
       IMPORT INDATASET(CATBACK.your.user.catalog) -
              OUTDATASET(your.user.catalog) -
                INTOEMPTY -
                ALIAS -               /* Include the aliases     */
                LOCK                  /* Leave catalog locked    */
    .
    I. At this point the catalog on the system you have run this on
       is ready to be used (other than still being locked), but the
       aliases that point to this catalog on the other systems have
       been deleted and need to be redefined. Before doing that on
       the other systems, this is a good time to run the four steps
       listed above to ensure that there are not problems with the
       moved catalog. After doing you will need to IMPORT CONNECT
       on the OTHER systems.
     //IMPRTCON EXEC PGM=IDCAMS
     //SYSPRINT DD  SYSOUT=*
     //SYSIN    DD  *
       IMPORT CONNECT -
         OBJECTS((your.user.catalog) -
         DEVICETYPE(3390) -
         VOLUMES(newvol)))
    .
    J. Define the aliases for the catalog on the other systems
    or use IDCAMS IMPORT CONNECT w/ALIAS to update the volser
    in the ucat connector record on all other sharing systems.
    K. Now you can unlock the catalog
     //UNLOCK   EXEC PGM=IDCAMS
     //SYSPRINT DD  SYSOUT=*
     //SYSIN    DD  *
       ALTER your.user.catalog UNLOCK
    

Local fix

Problem summary

Problem conclusion

Temporary fix

Comments

APAR Information

  • APAR number

    II13354

  • Reported component name

    V2 LIB INFO ITE

  • Reported component ID

    INFOV2LIB

  • Reported release

    001

  • Status

    INTRAN

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2002-07-16

  • Closed date

  • Last modified date

    2010-07-06

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

Applicable component levels

[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19N","label":"APARs - OS\/390 environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"001","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"001","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":null,"label":null},"Product":{"code":"SG19O","label":"APARs - MVS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"001","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSSN3L","label":"z\/OS Communications Server"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"001","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
06 July 2010