CMVC FREQUENTLY ASKED QUESTIONS:
                                                      MIGRATION OF FAMILIES
                                                       EDITION: 01-DEC-1999
 
 
                                                 Document Number TR 29.3114
 
 
                                  Angel Rivera, Lee Perlov, Clifford Meyers
 
 
                                  VisualAge TeamConnection/CMVC Development
                                                     IBM Software Solutions
                                     Research Triangle Park, North Carolina
                                                Copyright (C) 1997,1999 IBM
                                                       All rights reserved.
 
 
          ii  CMVC FAQ: Migration
 
 
                                                                   ABSTRACT
 
 
          This technical report provides a collection of hints and tips for
          CMVC family administrators that want to migrate CMVC families.
          Some of the scenarios are:
 
          o   Changing the name of an existing CMVC family.
          o   Migrating a CMVC family from one host to another.
          o   Migrating a CMVC family from one DB2 instance to another.
          o   Migration to CMVC 2.3.1 which is Year 2000 ready.
          o   Preparing to migrate to VisualAge TeamConnection.
          o   Migrating data from library systems other than SCCS into
              CMVC.
          o   Miscellaneous migration issues.
 
 
          ITIRC KEYWORDS
 
          o   CMVC
          o   VisualAge TeamConnection
          o   Migration
 
 
                                                              ABSTRACT  iii
 
 
          iv  CMVC FAQ: Migration
 
 
                                                          ABOUT THE AUTHORS
 
 
          ANGEL RIVERA
 
          Mr. Rivera is an Advisory Software Engineer and team lead for the
          CMVC development.  He joined IBM in 1989 and since then has
          worked in the development and support of library systems.
 
          Mr. Rivera has an M.S. in Electrical Engineering from The Univer-
          sity of Texas at Austin, and B.S. in Electronic Systems Engi-
          neering from the Instituto Tecnologico y de Estudios Superiores
          de Monterrey, Mexico.
 
 
          LEE R. PERLOV
 
          Mr. Perlov is an Advisory Software Engineer in the
          TeamConnection/CMVC development group.  He started working for
          IBM in 1985 in Gaithersburg, Md, working in the Federal Systems
          Division on various projects for the United States intelligence
          community.  He then moved to RTP to work on library development
          and support.
 
          Mr. Perlov received a B.S.Acc degree in Accounting from the Uni-
          versity of Florida in 1983.  He also completed two years of grad-
          uate work in the Department of Computer Science at the University
          of Florida.
 
 
          CLIFFORD J. MEYERS
 
          Mr. Meyers is an Advisory Software Engineer and the technical
          team leader of the TeamConnection packaging and test team.  He
          joined IBM in 1985 and worked in the AIX/ESA development organ-
          ization before joining the TeamConnection team.
 
 
                                                       ABOUT THE AUTHORS  v
 
 
          vi  CMVC FAQ: Migration
 
 
                                                                   CONTENTS
 
 
          ABSTRACT   . . . . . . . . . . . . . . . . . . . . . . . . .  III
            ITIRC KEYWORDS   . . . . . . . . . . . . . . . . . . . . .  iii
 
          ABOUT THE AUTHORS  . . . . . . . . . . . . . . . . . . . . . .  V
            Angel Rivera   . . . . . . . . . . . . . . . . . . . . . . .  v
            Lee R. Perlov  . . . . . . . . . . . . . . . . . . . . . . .  v
            Clifford J. Meyers   . . . . . . . . . . . . . . . . . . . .  v
 
          FIGURES  . . . . . . . . . . . . . . . . . . . . . . . . . . .  X
 
          1.0  INTRODUCTION  . . . . . . . . . . . . . . . . . . . . . .  1
            1.1  Acknowledgements  . . . . . . . . . . . . . . . . . . .  2
            1.2  How to get the most up to date version of this
            technical report.  . . . . . . . . . . . . . . . . . . . . .  3
            1.3  CMVC 2.3.1 provides support for the Year 2000   . . . .  3
 
          2.0  GENERAL INFORMATION   . . . . . . . . . . . . . . . . . .  5
            2.1  Overall recommendations   . . . . . . . . . . . . . . .  5
            2.2  Documentation from CMVC Version 2 Release 3 about
            migration  . . . . . . . . . . . . . . . . . . . . . . . . .  6
             2.2.1  Other related technical reports  . . . . . . . . . .  7
            2.3  How to find out the version of CMVC installed in your
            system   . . . . . . . . . . . . . . . . . . . . . . . . . .  7
             2.3.1  Example of version information from the CMVC server   8
             2.3.2  Example of version information from the executable
             CMVC GUI for Unix   . . . . . . . . . . . . . . . . . . . .  9
             2.3.3  Version information from Help -> On Version in CMVC
             GUI for Unix  . . . . . . . . . . . . . . . . . . . . . . .  9
            2.4  Which tool to use to access the database  . . . . . . .  9
            2.5  How to make a complete backup of your CMVC family   .   10
             2.5.1  Overall considerations for backup  . . . . . . . .   10
             2.5.2  Procedure for performing the backup  . . . . . . .   10
            2.6  How to restore a CMVC family from a complete backup     15
 
          3.0  MIGRATING TO CMVC 2.3.1 (WHICH SUPPORTS THE YEAR 2000)    21
            3.1  Prerequisites for Year 2000 readiness   . . . . . . .   21
             3.1.1  Prerequisites for running CMVC 2.3.1   . . . . . .   21
             3.1.2  Summary of main URLs with Year 2000 ready
             information   . . . . . . . . . . . . . . . . . . . . . .   22
            3.2  Migration steps to upgrade to CMVC 2.3.1  . . . . . .   23
            3.3  Details on how CMVC 2.3.1 was tested for the Year 2000  25
 
          4.0  CLONING/MIGRATION OF A CMVC FAMILY FROM ONE HOST TO
             ANOTHER   . . . . . . . . . . . . . . . . . . . . . . . .   27
            4.1  General procedure   . . . . . . . . . . . . . . . . .   27
            4.2  Pre-migration steps to be done in source Host A   . .   28
            4.3  Migration steps to be done in target Host B   . . . .   29
            4.4  Post-migration steps to be done in target Host B  . .   30
 
 
                                                              Contents  vii
 
 
          5.0  MIGRATION TIPS WHEN MOVING FROM ONE VERSION OF CMVC TO
             ANOTHER   . . . . . . . . . . . . . . . . . . . . . . . .   33
            5.1  How to have two different CMVC versions at once   . .   33
            5.2  AIX 4: necessary links if using the en_US locale  . .   34
            5.3  Migrating a CMVC family from DB2 V1 to DB2 UDB V5   .   34
            5.4  Migrating a CMVC family from DB2 V2 to DB2 UDB V5   .   35
            5.5  Migration from Informix 5 to DB2 V2 in AIX 3 to DB2
            UDB V5 in AIX 4  . . . . . . . . . . . . . . . . . . . . .   36
            5.6  Migration from Informix 5 in AIX 3 to DB2 UDB V5 in
            AIX 4  . . . . . . . . . . . . . . . . . . . . . . . . . .   37
            5.7  Migration from Informix 7 to DB2 UDB V5 in AIX 4  . .   37
             5.7.1  Step 1: Pre-migration tasks  . . . . . . . . . . .   38
             5.7.2  Step 2: Process most of the tables (except Versions
             and Notes)  . . . . . . . . . . . . . . . . . . . . . . .   40
             5.7.3  Step 3: Process Versions and Notes   . . . . . . .   42
             5.7.4  Step 4: Post-migration steps in target Host B  . .   43
            5.8  Migration from CMVC 2.3.0 Sybase to CMVC 2.3.1 DB2 UDB
            V5   . . . . . . . . . . . . . . . . . . . . . . . . . . .   44
             5.8.1  Step 1: Pre-migration tasks  . . . . . . . . . . .   44
             5.8.2  Step 2: Process most of the tables (except Versions
             and Notes)  . . . . . . . . . . . . . . . . . . . . . . .   46
             5.8.3  Step 3: Process Versions and Notes   . . . . . . .   48
             5.8.4  Step 4: Post-migration steps in target Host B  . .   50
            5.9  Migration from CMVC 2.3.0 Sybase 4.9 to CMVC 2.3.1
            Sybase 11  . . . . . . . . . . . . . . . . . . . . . . . .   50
             5.9.1  Step 1: Pre-migration tasks  . . . . . . . . . . .   50
             5.9.2  Step 2: Process most of the tables (except Versions
             and Notes)  . . . . . . . . . . . . . . . . . . . . . . .   52
             5.9.3  Step 3: Process Versions and Notes   . . . . . . .   54
             5.9.4  Step 4: Post-migration steps in target Host B  . .   56
             5.9.5  Step 5: Migrate the family in target Host B to CMVC
             2.3.1   . . . . . . . . . . . . . . . . . . . . . . . . .   56
            5.10  Migration from CMVC 2.3.0 Oracle 7 to CMVC 2.3.1 DB2
            UDB V5   . . . . . . . . . . . . . . . . . . . . . . . . .   56
             5.10.1  Step 1: Pre-migration tasks   . . . . . . . . . .   56
             5.10.2  Step 2: Process most of the tables (except
             Versions and Notes)   . . . . . . . . . . . . . . . . . .   59
             5.10.3  Step 3: Process Versions and Notes  . . . . . . .   61
             5.10.4  Step 4: Post-migration steps in target Host B   .   63
            5.11  Warning when migrating a DB2 family from AIX 3 to AIX
            4  . . . . . . . . . . . . . . . . . . . . . . . . . . . .   63
             5.11.1  Changing the locale of a DB2 database (using only
             English characters)   . . . . . . . . . . . . . . . . . .   63
             5.11.2  New DB2_CODESET and DB2_TERRITORY variables   . .   64
            5.12  CMVC Oracle 7.1 code cannot work with Oracle 7.3 (nor
            vice versa)  . . . . . . . . . . . . . . . . . . . . . . .   65
            5.13  Migration from CMVC 2.2 using Oracle 6 to CMVC 2.3
            using DB2  . . . . . . . . . . . . . . . . . . . . . . . .   65
            5.14  Migrating from Oracle 6 in AIX 3.2.5 to Oracle 7.1 in
            AIX 4.1  . . . . . . . . . . . . . . . . . . . . . . . . .   66
 
          6.0  PREPARING TO MIGRATE TO VISUALAGE TEAMCONNECTION VERSION
             3   . . . . . . . . . . . . . . . . . . . . . . . . . . .   67
            6.1  Why VisualAge TeamConnection?   . . . . . . . . . . .   67
 
 
          viii  CMVC FAQ: Migration
 
 
            6.2  Migration from CMVC to VisualAge TeamConnection   . .   68
 
          7.0  DEALING WITH COMMON MIGRATION PROBLEMS  . . . . . . . .   69
            7.1  How to deal with messages 0011-110 and 0011-111   . .   69
            7.2  How to create a host list entry directly into the
            database   . . . . . . . . . . . . . . . . . . . . . . . .   70
            7.3  After migration I cannot do Level -complete or Defect
            -assign  . . . . . . . . . . . . . . . . . . . . . . . . .   71
            7.4  After migration I do not see the history when doing
            File -view -long   . . . . . . . . . . . . . . . . . . . .   72
            7.5  After migration I cannot list files with uncommitted
            changes  . . . . . . . . . . . . . . . . . . . . . . . . .   73
            7.6  After upgrade to 2.3.1, the date fields are truncated   74
            7.7  0010-256 error messages after migrating from CMVC V1.1
            to V2.x  . . . . . . . . . . . . . . . . . . . . . . . . .   75
             7.7.1  Fixing CMVC V1.1 to V2.x migration problems with
             "chcfg"   . . . . . . . . . . . . . . . . . . . . . . . .   75
 
          8.0  RENAMING AND MOVING A CMVC FAMILY   . . . . . . . . . .   77
            8.1  Renaming a CMVC family  . . . . . . . . . . . . . . .   77
            8.2  Moving a CMVC database from a DB2 instance to a new
            one  . . . . . . . . . . . . . . . . . . . . . . . . . . .   81
 
          9.0  MIGRATING DATA FROM LIBRARY SYSTEMS INTO CMVC   . . . .   83
            9.1  Brief explanation of SCCS   . . . . . . . . . . . . .   83
             9.1.1  Explanation of migration from SCCS to CMVC   . . .   83
            9.2   What problems can be encountered with the Import and
            Migration tools?   . . . . . . . . . . . . . . . . . . . .   85
            9.3  Changes to the error handling of file.migrate and
            file.import  . . . . . . . . . . . . . . . . . . . . . . .   85
            9.4  How SCCS archives relate to CMVC releases   . . . . .   86
            9.5  Migrating from another library to SCCS  . . . . . . .   86
             9.5.1  Migrating from RCS to SCCS   . . . . . . . . . . .   87
             9.5.2  Bringing PVCS files under CMVC control   . . . . .   87
 
          APPENDIX A.  OBTAINING THE MIGRATION SHELL SCRIPTS AND LATEST
             CMVC CODE   . . . . . . . . . . . . . . . . . . . . . . .   89
             A.1.1  IBM Intranet   . . . . . . . . . . . . . . . . . .   89
             A.1.2  Internet   . . . . . . . . . . . . . . . . . . . .   89
 
          APPENDIX B.  MIGRATION SHELL SCRIPTS   . . . . . . . . . . .   91
            B.1  Shell scripts to prepare the migration from CMVC to
            TeamConnection   . . . . . . . . . . . . . . . . . . . . .   91
             B.1.1  Redefine ChangeView to facilitate the migration to
             TeamConnection  . . . . . . . . . . . . . . . . . . . . .   91
             B.1.2  Complete a release prior to migration  . . . . . .   91
             B.1.3  Reassign user's work and delete users  . . . . . .   91
             B.1.4  Delete a release from a family   . . . . . . . . .   92
             B.1.5  Converting SCCS keywords to TeamConnection Keywords  92
            B.2  Miscellaneous shell scripts   . . . . . . . . . . . .   92
             B.2.1  Import a release from directory structure  . . . .   93
 
          APPENDIX C.  COPYRIGHTS, TRADEMARKS AND SERVICE MARKS  . . .   95
 
 
                                                               Contents  ix
 
 
                                                                    FIGURES
 
 
           1.  Script to create and run SQL instructions to drop
               indexes   . . . . . . . . . . . . . . . . . . . . . . .   80
 
 
          x  CMVC FAQ: Migration
 
 
                                                          1.0  INTRODUCTION
 
 
          This technical report provides a collection of hints and tips for
          CMVC family administrators that want to migrate CMVC families.
          This TR focuses on the latest modification of CMVC, version
          2.3.1.4 which is Year 2000 ready.  However, in the case of
          further refreshes to CMVC 2.3.1, it is recommended that you check
          periodically the CMVC external ftp site:
 
            ftp://ftp.software.ibm.com/ps/products/cmvc/README.supported.combinations.txt
 
          Also, the most current version of the non Year 2000 ready version
          of CMVC is 2.3.0.25.
 
          This TR is organized as follows:
 
          o   Chapter 2.0, "General information" on page 5 provides some
              overall recommendations when performing migration activities
              for the CMVC family.
 
              It also describes how to find out the version of the CMVC
              family server (cmvcd) and how to access the database manage-
              ment system (DBMS).
 
          o   Chapter 3.0, "Migrating to CMVC 2.3.1 (which supports the
              Year 2000)" on page 21 describes how to migrate an existing
              CMVC 2.1, 2.2 or 2.3.0 to the new 2.3.1 which is Year 2000
              ready.  It also describes the Year 2000 readiness of CMVC
              2.3.1: prerequisites and how it was tested.
 
          o   Chapter 4.0, "Cloning/migration of a CMVC family from one
              host to another" on page 27 describes how to migrate (clone)
              a CMVC family from one host to another when the source host
              has the same operating system and DBMS as the target host.
 
          o   Chapter 5.0, "Migration tips when moving from one version of
              CMVC to another" on page 33 provides procedures for per-
              forming specific migration tasks when moving a CMVC from one
              version of the operating system or DBMS or CMVC, to another
              version.
 
          o   Chapter 6.0, "Preparing to migrate to VisualAge
              TeamConnection Version 3" on page 67 provides a brief
              description of VisualAge TeamConnection Enterprise Server
              Version 3, the successor of CMVC, and provides some recommen-
              dations for the migration of a CMVC family into
              TeamConnection.
 
          o   Chapter 7.0, "Dealing with common migration problems" on
              page 69 provides guidelines on how to deal with common
              migration problems.
 
 
                                                            Introduction  1
 
 
          o   Chapter 8.0, "Renaming and moving a CMVC family" on page 77
              describes a procedure that can be used to rename an existing
              CMVC family in the same host.
 
              This procedure can also be used for migration of CMVC fami-
              lies when it is desired to change operating systems, versions
              of CMVC, and/or versions of a database in one step.  However,
              it takes longer than following the procedures documented in
              the CMVC Server manual.
 
              This procedure is particularly useful when you wish to move
              data from the system (default) database in Oracle to separate
              database files.
 
          o   Chapter 9.0, "Migrating data from library systems into CMVC"
              on page 83 describes how to migrate data from SCCS into CMVC.
              It provides a general overview of the tasks to be done when
              migrating from other library systems.
 
          o   Appendix Appendix A, "Obtaining the migration shell scripts
              and latest CMVC code" on page 89 describes how to get the
              tools mentioned in this TR and the latest CMVC code.
 
          o   Appendix Appendix B, "Migration shell scripts" on page 91
              describes the tools mentioned in this technical report, and
              provides instructions on how to get them.
 
          This technical report covers new information that has been gath-
          ered by the CMVC development and service support team since the
          publishing of the CMVC 2.3 manuals.
 
 
          1.1  ACKNOWLEDGEMENTS
 
          Many of the questions and answers that are compiled in this tech-
          nical report were obtained from the TEAMC and CMVC forums in the
          IBMPC conferencing disk and from the CMVC6000 forum in the
          IBMUNIX conferencing disk.  We want to thank the main partic-
          ipants in these electronic forums for their support!
 
          We want to thank in particular the following co-workers:
 
          o   Kevin Postreich, TeamConnection team, IBM RTP, North
              Carolina.
          o   Keith Purcell, OEM Lab in IBM RTP, North Carolina.
          o   Jim Austin, AIX Lab in IBM RTP, North Carolina.
          o   Gary Greig, CMVC support team, IBM Austin, Texas.
          o   Gary Warner, CMVC support team, IBM Austin, Texas.
          o   Brian Johnston, IGS CMVC support team, IBM RTP, North
              Carolina.
          o   Tom Bing, Bell South, Atlanta, Georgia.
          o   Dan Fricker, American Express, Phoenix, Arizona.
 
 
          2  CMVC FAQ: Migration
 
 
          We want to thank Dodde Stark for editing this technical report.
 
 
          1.2  HOW TO GET THE MOST UP TO DATE VERSION OF THIS TECHNICAL
          REPORT.
 
          The most up to date version of this technical report can be
          obtained from the IBM CMVC ftp site at URL:
 
            ftp://ftp.software.ibm.com/ps/products/cmvc/doc/tr
 
          For the list of available technical reports, see the file
          README.index.txt.
 
 
          1.3  CMVC 2.3.1 PROVIDES SUPPORT FOR THE YEAR 2000
 
          CMVC 2.3.1 is a new version-release-modification of CMVC
          (branched from CMVC 2.3.0.24) which uses 4 digits to represent
          the years instead of the 2 digits used in 2.3.0 and previous ver-
          sions.  Thus, CMVC 2.3.1 provides support for the Year 2000.  For
          more details see 3.0, "Migrating to CMVC 2.3.1 (which supports
          the Year 2000)" on page 21.
 
 
                                                            Introduction  3
 
 
          4  CMVC FAQ: Migration
 
 
                                                   2.0  GENERAL INFORMATION
 
 
          This chapter provides some overall recommendations when per-
          forming migration activities for the CMVC family.
 
 
          2.1  OVERALL RECOMMENDATIONS
 
          It is strongly recommended that you follow these suggestions:
 
          o   Make a complete backup of your CMVC family (both the file
              system of $HOME and the database) BEFORE starting the
              migration process.  This will be your baseline backup.  For
              more details see 2.5, "How to make a complete backup of your
              CMVC family" on page 10.
 
              In case the migration process does not complete successfully,
              you can restore the family from the baseline backup.
 
          o   Try to break the migration process into manageable steps, in
              that way you can reduce the number of variables.
 
              For example, do not try to migrate in one single step a CMVC
              family from one CMVC version in one operating system version
              and database version, to another CMVC version in another
              operating system version and database version (too many vari-
              ables at once!).
 
              That is, in order to make the target Host B as similar as
              possible to the source Host A, take smaller steps and ensure
              that CMVC is operational after each step.
 
          o   Make a complete backup of your CMVC family database AFTER
              each important step in the migration process.
 
              If the migration process involves several major steps, by
              making a backup of the CMVC family database after each major
              step, you could restore the CMVC family database from the
              previous step, if the current step did not complete success-
              fully.
 
              If you do not make these intermediate backups, you may need
              to go back all the way to the first step in the sequence and
              restore from the original baseline backup.
 
              If you have obtained already a complete backup of the CMVC
              family database and of the $HOME file system, you only need
              to make a backup of the CMVC family database if you have not
              change the contents of files.  In that way the backup process
              is expedited.
 
 
                                                     General information  5
 
 
          o   Use separate user IDs and directories for the different
              "players".  That is, install the CMVC code in one place (such
              as /usr/lpp/cmvc), the database code in another place, the
              DB2 instance in another place, and the CMVC family in another
              place.
 
              To avoid severe maintenance problems, it is strongly sug-
              gested to NOT add a CMVC family inside the directory of the
              CMVC code or the database code.  The problem is that if you
              store a CMVC family inside /usr/lpp/cmvc and then you decide
              to remove the CMVC code, accidentally you may be deleting
              also the complete CMVC family!
 
              By the same token, it is recommended to not use the same user
              ID for both the DB2 instance and the CMVC family.
 
          o   It is highly recommended that you use the same name for the
              CMVC family user ID and the value for CMVC_FAMILY.  This will
              help avoid the problem with DB2 when trying to restore a
              backup file.  For more details see 2.6, "How to restore a
              CMVC family from a complete backup" on page 15.
 
 
          2.2  DOCUMENTATION FROM CMVC VERSION 2 RELEASE 3 ABOUT MIGRATION
 
          The primary source for CMVC documentation on migration issues is
          in the "CMVC Server Administration and Installation: Version 2
          Release 3" manual (IBM publication number SC09-1631-02).  In this
          technical report we refer to this manual as the "CMVC Server
          manual".
 
          The Version 2.3 of the CMVC Server manual contains many cor-
          rections to earlier releases; thus, use only the 2.3 version of
          this manual and do not use earlier releases.
 
          This technical report does not cover the following migration
          issues which are covered by the CMVC Server manual:
 
          1.  Chapter 16, "Bringing SCCS Files under CMVC Control"
              describes how can migrate into the CMVC environment the text
              files that are already being developed with SCCS commands.
 
          2.  Appendix B, "Migrating to CMVC Version 2.3" covers the task
              on how to migrate from older versions of CMVC to the version
              2.3.0.
 
              Notice that this appendix only covers up to version 2.3.0 and
              does not cover version 2.3.1.
 
          3.  Appendix C, "Converting Existing CMVC Server from ORACLE 6 to
              ORACLE 7" describes how to migrate from ORACLE 6 (which is
              not longer supported in CMVC 2.3) to ORACLE 7.
 
 
          6  CMVC FAQ: Migration
 
 
          4.  Appendix D, "Migrating to CMVC Server V.2.3.0 for DB2" covers
              the task on how to migrate from an existing CMVC family that
              is not using DB2 to a CMVC family that uses DB2.
 
              However, specific scenarios for migrating to DB2 Universal
              Database Version 5 (DB2 UDB V5) on AIX 4.2 are covered in
              this technical report.
 
 
          2.2.1  Other related technical reports
          ______________________________________
 
          o   For details on how to configure DB2 UDB V5, see the TR
              29.3076, "Configuration and Administration of DB2 Universal
              Database V5 by users of VisualAge TeamConnection V3".  The
              main concepts discussed in the TR also apply to how CMVC uses
              DB2 UDB V5.
 
              It is available from:
 
                ftp://ftp.software.ibm.com/ps/products/teamconnection/papers/trtc3db2.pdf
 
          o   For details on how to use DB2 export and DB2 import to move a
              database from one place to another, see the TR 29.3088
              "Moving a VisualAge TeamConnection Version 3 Family".  The
              main concepts discussed in the TR also apply to a CMVC
              family.
 
              It is available from:
 
                ftp://ftp.software.ibm.com/ps/products/teamconnection/papers/trmovedb.pdf
 
          o   This technical report supersedes the TR 29.2232 "How to do
              migration tasks with CMVC".
 
 
          2.3  HOW TO FIND OUT THE VERSION OF CMVC INSTALLED IN YOUR SYSTEM
 
          Because of changes in functionality between CMVC 2.1, 2.2, 2.3.0
          and 2.3.1, it is important to know exactly which version of CMVC
          you are using.
 
          Starting with CMVC version 2.3, the appropriate version informa-
          tion is imbedded in the executable code and it allows you to
          determine what version of CMVC you are running.
 
          The syntax for determining the version of the CMVC "cmvcd" exe-
          cutable file is shown below.  The CMVC server, cmvcd, is used as
          an example because it contains also the information about the
          DBMS being used.  Perform one of the following options:
 
          o   If you installed the product in the default directory:
 
 
                                                     General information  7
 
 
                what /usr/lpp/cmvc/bin/cmvcd | grep cmvc
 
          o   If you are using the Korn shell:
 
                what $(whence cmvcd) | grep cmvc
 
          o   For AIX, SunOS and Solaris, use the following:
 
                what 'which cmvcd' | grep cmvc
 
              NOTE:  The ' symbol is the "accent grave", located in the
              upper left corner in the English keyboard.
 
          o   For HP-UX use the following:
 
                what 'whence cmvcd' | grep cmvc
 
              NOTE:  The ' symbol is the "accent grave", located in the
              upper left corner in the English keyboard.
 
              See the following sections for examples of the output.
 
          NOTES:
 
          1.  If the above procedure does not return a string, then you are
              running CMVC Version 1.x, or CMVC 2.1 or CMVC 2.2.  Only by
              looking at the date stamps of the files might be possible to
              determine the version.  For example, if the date is November
              1993, then you have the last CMVC 2.2 version.
 
          2.  The CMVC server, CMVC client, and CMVC GUI are numbered inde-
              pendently.  In this technical report we focus on the version
              of the executable for the CMVC server cmvcd.
 
 
          2.3.1  Example of version information from the CMVC server
          __________________________________________________________
 
          An example of the version information that can be obtained from
          the CMVC server is shown below:
 
                  cmvc     CMVC Version 2.3.1.4, (C) Copyright IBM Corp.,1993,1998
                  cmvc     5765-207, 5765-202, 5765-397, 5622-063
                  cmvc     98/09/10 SID=1.26.1.52
                  cmvc     Platform: AIX 4
                  cmvc     Database: DB2 UDB V5
 
          Notice the version of the platform and of the database.
 
 
          8  CMVC FAQ: Migration
 
 
          2.3.2  Example of version information from the executable CMVC
          ______________________________________________________________
          GUI for Unix
          ____________
 
          An example of the version information that can be obtained from
          the executable CMVC GUI for Unix is shown below:
 
                  cmvc     CMVC Version 2.3.1.4, (C) Copyright IBM Corp.,1993,1998
                  cmvc     5765-207, 5765-202, 5765-397, 5622-063
                  cmvc     98/10/22 SID=1.1.5.4
                  cmvc     X11 R5
                  cmvc     Motif 1.2
                  cmvc     Platform: AIX
 
          Notice the version of the Motif and X11 toolkits that were used
          to build the executable file.
 
 
          2.3.3  Version information from Help -> On Version in CMVC GUI
          ______________________________________________________________
          for Unix
          ________
 
          An example of the version information that can be obtained from
          doing Help -> On Version in the CMVC GUI is shown below:
 
            IBM Configuration Management Version Control
            Client Feature for Motif
            Version 2 Release 3 Modification 1 Level 4
 
 
          2.4  WHICH TOOL TO USE TO ACCESS THE DATABASE
 
          In this technical report we use concrete examples that use the
          database access tool (the SQL prompt) for a specific database.
          The tool to connect to a specific DBMS is:
 
          DB2           db2 connect to $CMVC_FAMILY
          ORACLE        sqlplus $CMVC_FAMILY/$ORACLE_PASS
          SYBASE        isql -P $SYBASE_PASS
          INFORMIX      There are 2 options:
                        o   isql $CMVC_FAMILY
                        o   dbaccess $CMVC_FAMILY
 
          NOTES:
 
          1.  Where $CMVC_FAMILY represents the short name of the CMVC
              family, which is also the name of the actual database associ-
              ated with the family.
 
          2.  Where "$ORACLE_PASS" and "$SYBASE_PASS" represent the pass-
              word for the CMVC family and not the password for the DBMS
              user ID.
 
 
                                                     General information  9
 
 
          2.5  HOW TO MAKE A COMPLETE BACKUP OF YOUR CMVC FAMILY
 
 
          2.5.1  Overall considerations for backup
          ________________________________________
 
          The procedure described in this section is the recommended
          sequence for making a complete backup of your CMVC family.  This
          backup could be the normal daily backup or the backup that is
          done before migrating the CMVC family.  The following guidelines
          are used in this TR:
 
          o   Keep the process simple.
          o   Perform a full database backup; that is, no incremental
              backups.
          o   Perform an off-line backup; that is, the CMVC family should
              not be active. The advantage is that you do not have to deal
              with the transaction logs.
 
          A very important point to keep in mind is that a CMVC family con-
          sists of the following two parts that need to be synchronized at
          all times and therefore they need to be backed up at the same
          time:
 
          o   The database where the CMVC objects are kept.
          o   The $HOME of the CMVC family user ID that has the vc tree
              (where the file changes are kept), the user exits, the
              configurable fields, and the configuration items (the *.ld
              files).
 
          A common mistake is to only take the backup of the database or of
          the $HOME directory but not both.  The problem arises when trying
          to restore from the backup files because the database will be out
          of sync with respect to vc tree.
 
          The counterpart for the backup operation is the restore, which is
          described in 2.6, "How to restore a CMVC family from a complete
          backup" on page 15.
 
 
          2.5.2  Procedure for performing the backup
          __________________________________________
 
          The recommended backup procedure is shown below:
 
          1.  Login to the family and stop the family servers.  This backup
              procedure is an off-line backup and therefore, the database
              to be backed up must not be in use.
 
          2.  When doing the backup for the first time, create a directory
              such as $HOME/backup, where the backup file of the database
              will be kept.
 
 
          10  CMVC FAQ: Migration
 
 
                mkdir backup
                chmod 777 backup
 
          3.  Using the database utilities, make a backup of the CMVC
              family database and specify that the backup file should be
              kept in $HOME/backup.
 
              A summary of the backup procedures for the different DBMSs is
              shown in:
 
              DB2           See 2.5.2.1, "Backup of DB2 databases."
              ORACLE        See 2.5.2.4, "Backup of Oracle databases" on
                            page 14.
              INFORMIX      See 2.5.2.2, "Backup of Informix databases" on
                            page 12.
              SYBASE        See 2.5.2.3, "Backup of Sybase databases" on
                            page 12.
 
              Your database manual will provide the details on how to do
              this.
 
          4.  Place the backup file of the database in the HOME directory
              of the CMVC family, such as in $HOME/backup.
 
          5.  Use the utility "tar" (the utility "backup" is also available
              on AIX) to make a tar of the entire CMVC family account,
              which now includes the backup of the CMVC database.
 
              For example, to tar the family user ID file system into a
              file named /tmp/family.tar do:
 
                $ cd
                $ tar -cvf /tmp/family.tar *
 
              For large families, you may want to combine this step with
              the next by specifying a tape device instead of
              /tmp/family.tar.
 
          6.  If you created a tar file, copy it into tape or another
              archival media.
 
          NOTE:  CMVC provides a sample backup utility for DB2 in
          "/usr/lpp/cmvc/samples/backupCMVC".
 
 
          2.5.2.1  Backup of DB2 databases
 
          For DB2 the sequence is:
 
          1.  Invoke the DB2 command line processor:
 
 
                                                    General information  11
 
 
                $ db2 connect to $CMVC_FAMILY
 
          2.  Enter:
 
                $ db2 backup database $CMVC_FAMILY to $HOME/backup
 
          3.  Wait for the backup to complete.  You will see the message:
 
                Backup successful. The timestamp for this backup image is: 19981124023858
 
              Now you have a backup copy of your database in the directory
              $HOME/backup.
 
          4.  Terminate the DB2 session:
 
                $ db2 terminate
 
 
          2.5.2.2  Backup of Informix databases
 
          1.  Login as the CMVC family administrator ($LOGNAME):
 
          2.  Stop the CMVC family:
 
                stopCMVC $CMVC_FAMILY
 
          3.  Create a directory where to store the backup files:
 
                $ mkdir $HOME/backup
                $ chmod 777 $HOME/backup
 
          4.  Use the DBEXPORT command to export the database for the CMVC
              family (in a directory $HOME/backup/$CMVC_FAMILY.exp):
 
                $INFORMIXDIR/bin/dbexport -o $HOME/backup $CMVC_FAMILY
 
          5.  Wait for the backup to be completed:
 
                dbexport completed
 
 
          2.5.2.3  Backup of Sybase databases
 
          This section describes how to create a dump device by using the
          SP_ADDUMPDEVICE.  and how to use the DUMP DATABASE command to
          dump the database to the device recently created.
 
          For more details see the Sybase documentation, section "Dumping
          and Loading: SQL Server Scheme".
 
          1.  Login as the CMVC family administrator ($LOGNAME):
 
 
          12  CMVC FAQ: Migration
 
 
          2.  Stop the CMVC family:
 
                stopCMVC $LOGNAME
 
          3.  Create a directory where to store the backup files:
 
                $ $HOME/backup
                $ chmod 777 $HOME/backup
 
          4.  If using Sybase 11 you must start the Backup Server:
 
              a.  login as the Sybase user id
              b.  cd install
              c.  RUN_SYB_BACKUP &
 
          5.  As the CMVC family user id, invoke isql:
 
                $ isql -Usa -P$SYBASE_SA_PASS
 
          6.  Run the following command to back up the family database.
              You need to replace FAMILY with the name of your family and
              specify the actual directory where you want the backup file
              to be saved.
 
              o   For Sybase 4.9 or 10
 
                    sp_addumpdevice "disk", dobackup,
                    "/export/home/family/backup/family.bak", 2
                    go
                    dump database family to dobackup
                    go
 
                  Where the number 2 in sp_addumpdevice is the control
                  type.
 
              o   For Sybase 11
 
                    sp_addumpdevice "disk", dobackup,
                    "/export/home/family/backup/family.bak"
                    go
                    dump database family to dobackup
                    go
 
                  Wait until you get the following message that indicates
                  that the backup procedure is done:
 
                    Backup Server: 3.42.1.1: DUMP is complete (database familyName).
 
              Now you have a backup copy of your database in the file
              /export/home/family/backup/family.bak.
 
 
                                                    General information  13
 
 
          NOTES:
 
          1.  You can also dump the database to a tape device by changing
              "disk" to "tape", "/home/family/backup/family.bak" to the
              device name of the tape and the controller number parameter 2
              to another number which must be between 3 and 8 (tape volume)
              in the above command.
 
          2.  Use SP_DROPDEVICE DEVICENAME to drop dump devices.
 
          3.  To stop the Backup Server, as the Sybase user id, do the fol-
              lowing:
 
              a.  cd install
 
              b.  ./showserver
 
              c.  Identify the process id of the RUN_SYB_BACKUP process,
                  such as 1234.
 
              d.  Use "kill 1234" to terminate the Backup Server.
 
 
          2.5.2.4  Backup of Oracle databases
 
          1.  Login as the CMVC family administrator ($LOGNAME):
 
          2.  Stop the CMVC family:
 
                stopCMVC $LOGNAME
 
          3.  Create a directory where to store the backup files:
 
                $ $HOME/backup
                $ chmod 777 $HOME/backup
 
          4.  Use the EXP command to export the database to a file prior to
              backing up the HOME directory for the CMVC family.  For
              example (in one single line)
 
                $ORACLE_HOME/bin/exp $ORACLE_DBA buffer=40000 \
                file=$HOME/backup/oracle.dmp grants=n indexes=y rows=y constraints=n \
                compress=y full=n record=n owner=$LOGNAME
 
          5.  Wait for the backup to be completed:
 
                Export terminated successfully without warnings
 
 
          14  CMVC FAQ: Migration
 
 
          2.6  HOW TO RESTORE A CMVC FAMILY FROM A COMPLETE BACKUP
 
          Once you have made a complete backup of the CMVC family (which
          includes both the $HOME of the family and the database used by
          the family) as explained in 2.5, "How to make a complete backup
          of your CMVC family" on page 10, you need to follow this proce-
          dure to restore the CMVC family:
 
          1.  Login to the family and stop the family servers (if any).
              This restore procedure is an off-line procedure and there-
              fore, the database to be restored must not be in use.
 
          2.  Use the utility "tar" (or "restore" if you used the "backup"
              utility on AIX) to unpackage or untar the tar file that con-
              tains the entire CMVC family account and the backup of the
              CMVC database.
 
              If the $HOME directory had other files or subdirectories,
              then you may see some messages indicating that the file per-
              missions of the existing files did not allow for them to be
              replaced by the files from the tar file.
 
              To avoid these messages, it is suggested to perform the fol-
              lowing command in a clean $HOME file system:
 
                $ cd
                $ tar -xvf /tmp/family.tar
 
          3.  If using DB2, ensure that the user ID and the database name
              in the target host is the same as in the source host.
 
              If they are not the same, then you will get a DB2 SQL0969
              error when doing a restore due to the different authori-
              zation.  This error message is extremely confusing!
 
              To find out the authorization in the target host do:
 
              a.  db2 connect to $CMVC_FAMILY
 
              b.  Look at the last 2 lines such as:
 
                     SQL authorization ID   = BUILD
                     Local database alias   = BUILD
 
                  The first statement indicates the name of the user ID.
 
                  The second statement indicates the name of the database.
 
                  NOTE:  It is highly recommended that you use the same
                  name for the CMVC family user ID and the value for
                  CMVC_FAMILY.
 
 
                                                    General information  15
 
 
          4.  Using the database utilities, restore the CMVC family data-
              base and specify that the backup file is located in
              $HOME/backup.
 
              A summary of the restore procedures for the different DBMSs
              is shown in:
 
              DB2           See 2.6.1.1, "Restore of DB2 databases."
              ORACLE        See 2.6.1.4, "Restore of Oracle databases" on
                            page 18.
              INFORMIX      See 2.6.1.2, "Restore of Informix databases" on
                            page 17.
              SYBASE        See 2.6.1.3, "Restore of Sybase databases" on
                            page 17.
 
              Your database manual will provide the details on how to do
              this.
 
 
          2.6.1.1  Restore of DB2 databases
 
          For DB2 the sequence is:
 
          1.  Login as the CMVC family administrator ($CMVC_FAMILY):
 
          2.  Stop the CMVC family:
 
                stopCMVC $CMVC_FAMILY
 
          3.  If the CMVC family does not exist yet (such as when
              migrating), then you need to run "mkfamily" and "mkdb -d" in
              order to create one.  During the restore operation, the data-
              base from the backup file will overwrite the existing data-
              base, and this is fine.
 
          4.  Invoke the DB2 command line processor:
 
                $ db2 connect to $CMVC_FAMILY
 
          5.  Enter:
 
                $ db2 restore database $CMVC_FAMILY to $HOME/backup
 
          6.  Wait for the restore to complete.  You will see the message:
 
                DB20000I The RESTORE DATABASE command completed successfully
 
          7.  Terminate the DB2 session:
 
                $ db2 terminate
 
 
          16  CMVC FAQ: Migration
 
 
          2.6.1.2  Restore of Informix databases
 
          Use the DBIMPORT command to import the tables, indexes and views
          for the CMVC family.
 
          1.  Login as the CMVC family administrator ($LOGNAME):
 
          2.  Stop the CMVC family:
 
                stopCMVC $LOGNAME
 
          3.  If you are restoring a database into an existing one, then it
              is necessary to drop/delete the database:
 
                $ rmdb
 
              If the database exists, then the following error will occur
              when trying to restore the database from the backup file:
 
                *** create database
                330 - Cannot create or rename database.
 
                100 - ISAM error:  duplicate value for a record with unique key.
 
          4.  If INFORMIX_DBSP is not set, run the following:
 
                $INFORMIXDIR/bin/dbimport -i $HOME/backup -l -ansi $LOGNAME
 
          5.  If INFORMIX_DBSP is set, run the following (in one single
              line):
 
                $INFORMIXDIR/bin/dbimport -i $HOME/backup -l -ansi -d $INFORMIX_DBSP \
                $LOGNAME
 
          6.  Wait for the restore to be completed:
 
                dbimport completed
 
          7.  The above commands will create a database with the name of
              the CMVC family with log (-l) and mode ansi (-ansi).  The
              data is loaded into INFORMIX_DBSP or into rootdbs if
              INFORMIX_DBSP was not specified.
 
 
          2.6.1.3  Restore of Sybase databases
 
          Use the LOAD DATABASE command to restore the database for the
          CMVC family.
 
          For more details see the Sybase documentation, section "Dumping
          and Loading: SQL Server Scheme".
 
 
                                                    General information  17
 
 
          1.  Always make sure that the destination database must be large
              enough to hold the amount of storage space that was actually
              allocated to the dumped database.
 
          2.  Login as the CMVC family administrator ($LOGNAME):
 
          3.  Stop the CMVC family:
 
                stopCMVC $LOGNAME
 
          4.  If appropriate, simulate the loss of the database and then
              recreate the basic database that includes the default
              configurable fields shipped by IBM:
 
                $ rmdb
                $ mkdb -d
 
          5.  If using Sybase 11 you must start the Backup Server:
 
              a.  login as the Sybase user id
              b.  cd install
              c.  RUN_SYB_BACKUP &
 
          6.  Ensure that you have the appropriate dump device defined in
              Sybase.  This dump device should have the backup of the data-
              base of the CMVC family.
 
          7.  Run the following command to restore the Sybase database:
 
                $ isql -Usa -P$SYBASE_SA_PASS
                1> load database family from dobackup
                2> go
 
              Where family is the name of the CMVC family.
 
          8.  In Sybase 11, wait for the following message that indicates
              that the restore was completed:
 
                Backup Server: 3.42.1.1: LOAD is complete (database familyName).
 
          9.  In Sybase 11, you need to have stop and restart the SYBASE
              servers in order to change the status from offline to online.
 
              Then you can restart the CMVC family.
 
 
          2.6.1.4  Restore of Oracle databases
 
          1.  Login as the CMVC family administrator ($LOGNAME):
 
          2.  Stop the CMVC family:
 
                stopCMVC $LOGNAME
 
 
          18  CMVC FAQ: Migration
 
 
          3.  If you are restoring into the same CMVC family id, then drop
              the existing database:
 
                $ rmdb
 
          4.  Create an Oracle userid with the same name as your CMVC
              family.  This userid has the password kept in the ORACLE_PASS
              environment variable.  For example:
 
                $ORACLE_HOME/bin/sqlplus $ORACLE_DBA
                GRANT CONNECT, RESOURCE TO familyName IDENTIFIED BY oracle_pass;
 
              Where you need to provide the actual values for familyName
              (from $LOGNAME) and oracle_pass (from $ORACLE_PASS).
 
          5.  If you have tables stored in a different tablespace, alter
              the Oracle userid and make its default tablespace to be the
              one kept in ORACLE_TBLSP environment variable.  For example:
 
                ALTER USER familyName DEFAULT TABLESPACE oracle_tblsp;
                EXIT
 
              Where you need to provide the actual values for familyName
              (from $LOGNAME) and oracle_tblsp (from $ORACLE_TBLSP).
 
          6.  Use the IMP command to import the tables, indexes and views
              for your CMVC family.  For example (in one single line):
 
                $ORACLE_HOME/bin/imp $ORACLE_DBA buffer=40000 \
                file=$HOME/backup/oracle.dmp commit=y show=n ignore=n grants=n \
                indexes=y rows=y destroy=n full=n fromuser=$LOGNAME touser=$LOGNAME
 
          7.  If you have indexes stored in a different tablespace, do not
              import the indexes, create them after the tables have been
              imported.  For example (in one single line):
 
                sed "s/TABLESPACENAME/$ORACLE_NDXSP/g" $CMVC_HOME/install/index.db | \
                $ORACLE_HOME/bin/sqlplus $LOGNAME/$ORACLE_PASS
 
 
                                                    General information  19
 
 
          20  CMVC FAQ: Migration
 
 
                3.0  MIGRATING TO CMVC 2.3.1 (WHICH SUPPORTS THE YEAR 2000)
 
 
          3.1  PREREQUISITES FOR YEAR 2000 READINESS
 
          The CMVC 2.3.1 version-release-modification provides support for
          the Year 2000 by using 4 digits instead of 2 to represent the
          year.  The new CMVC 2.3.1.1 was branched out from CMVC 2.3.0.24.
 
          For the most up to date information about CMVC and the Year 2000
          readiness, get the following files from the CMVC external ftp
          site:
 
            ftp://ftp.software.ibm.com/ps/products/cmvc/README.year2000.txt
            ftp://ftp.software.ibm.com/ps/products/cmvc/README.year2000.details.txt
 
 
          3.1.1  Prerequisites for running CMVC 2.3.1
          ___________________________________________
 
          CMVC uses the Unix utility SCCS to provide the version control
          for the file changes.  The original version of SCCS is not ready
          for the Year 2000:  a file created in 19xx cannot be checked out
          in 20xx, nor a new file can be created in 20xx.
 
          However, the Unix utility SCCS was been fixed to be ready for the
          Year 2000 in the versions of the operating systems shown below.
          We have successfully tested CMVC 2.3.1 in these environments by
          creating files in 1998 and then changing the system date to 2005
          and then doing a checkout/checkin and creating a new file.  This
          means that CMVC 2.3.1 and not CMVC 2.3.0 can ONLY work in the
          Year 2000 with these environments.
 
          o   AIX 4.2.1
 
          o   HP-UX 10.20, with patch PHCO_15215.
 
          o   Solaris 2.5.1, with patches 103612-38 and 103801-06.
 
          o   AIX 3.2.5: PTF U447712, APAR IX55509 and IX75948.
 
              CMVC 2.3.1 for AIX 3.2.5 is not officially supported because
              AIX 3.2.5 was officially discontinued in 31-Dec-1997.  Thus,
              you need to migrate from AIX 3.2.5 to AIX 4.  However, for
              completeness we are documenting the needed patches for SCCS
              to be Year 2000 ready:
 
 
                 Migrating to CMVC 2.3.1 (which supports the Year 2000)  21
 
 
          As far as we know, the SCCS utility has not been fixed in the
          following operating systems and thus, CMVC 2.3.1 will not work
          correctly in the Year 2000:
 
          o   AIX 4.1.x, which is scheduled to be officially discontinued
              in 31-Dec-1998.
          o   Solaris 2.3, 2.4, 2.5.0 without the patches.
 
          Finally, we have NOT tested CMVC 2.3.1 in the following platforms
          and thus, we cannot guarantee that the SCCS utility will properly
          work with the Year 2000:
 
          o   SunOS 4.1.3
          o   HP-UX 9
          o   HP-UX 10.01, 10.10
 
          NOTE:  All versions of the operating systems supported by CMVC
          need more fixes and patches in order to be completely Year 2000
          Ready.  The patches shown above are the ones that only fix SCCS.
          For more details see 3.1.2, "Summary of main URLs with Year 2000
          ready information."
 
 
          3.1.2  Summary of main URLs with Year 2000 ready information
          ____________________________________________________________
 
          All versions of the operating systems supported by CMVC need
          fixes and patches in order to be Year 2000 Ready.  Of critical
          importance are the patches for the UNIX utility "SCCS", because
          without these fixes, you will NOT be able to checkout files in
          the Year 2000!
 
          The following list of URLs indicate where you can get more infor-
          mation.  This list is in HTML format, in that way you can copy
          and paste into an HTML   file and then use a web browser to visit
          those sites and get the fixes.
 
 
          22  CMVC FAQ: Migration
 
 
            
 
 
          3.2  MIGRATION STEPS TO UPGRADE TO CMVC 2.3.1
 
          NOTE:  If this procedure is not followed in a family that was
          migrated from CMVC 2.3.0, then there will be a mix of years, the
          old ones will have only 2 digits and the new ones will have 4,
          which will cause sorting problems.
 
          To migrate a family that uses CMVC 2.3.0 or a previous version,
          follow these steps:
 
          1.  Stop the CMVC family and make a backup as recommended in 2.5,
              "How to make a complete backup of your CMVC family" on
              page 10.
 
          2.  Migrate CMVC to 2.3.1:
 
              o   If migrating from CMVC 1.x, 2.1, or 2.2, then follow the
                  procedure explained in the Appendix B of the CMVC Server
                  2.3 manual.
 
                  Then continue with step 3.
 
              o   If migrating from CMVC 2.3.0, then it is just necessary
                  to install CMVC 2.3.1.
 
                  Then continue with step 3.
 
          3.  Run dbSetDate.
 
 
                 Migrating to CMVC 2.3.1 (which supports the Year 2000)  23
 
 
              For each CMVC family to be migrated, login to the family
              account and run the 2.3.1 migration shell script in order to
              modify all the instances for the date in the database from
              "yy/mm/dd" to "yyyy/mm/dd":
 
                /usr/lpp/cmvc/install/dbSetDate    
 
                Where  is ORACLE7 (for ORACLE 7)
                                    INFORMIX (for Informix)
                                    DB2 (for DB2)
                                    SYBASE (for Sybase)
                Where  is the name of your family
                Where  is the name of a file to append the SQL output
 
              For example, to update the dates for a family that uses DB2
              and to store the SQL output in the file "sql.out" do the fol-
              lowing:
 
                $ dbSetDate DB2 $CMVC_FAMILY sql.out
 
          4.  If using DB2, then you must issue the "db2bind" command after
              dbSetDate, for example:
 
                $ db2bind $CMVC_FAMILY
 
          5.  Perform a quick sanity check for the migrated family; some
              tests that you can do are to verify the new format for the
              year (yyyy) are:
 
              o   List all users and verify the columns with dates.
              o   View one user and verify the dates.
              o   From a Open List (Filter) Users window, issue a query
                  that lists all users created after a certain date, such
                  as:
 
                    addDate > '1997/01/01'
 
              o   List other CMVC objects such as defects, files, releases,
                  components and verify the dates.
              o   Do a release extract using the -date flag.
              o   If possible, do a release link using the -date flag.
 
                  You could create a dummy release just to do the link and
                  then undo the links and delete the release.
 
          6.  In case that you have not done it before, add the new indexes
              to improve performance that were added in 2.3.0.18 and which
              are listed in the file:
 
                /usr/lpp/cmvc/doc/README.pubs
 
              NOTE:  These indexes are created automatically only when a
              new family is created.  That is, if you created a family in
 
 
          24  CMVC FAQ: Migration
 
 
              2.2 and you migrated it to 2.3.0.25 or 2.3.1.4, then the new
              indexes are not automatically added during the migration.
 
          7.  Make a backup of your CMVC 2.3.1 family.  For details see
              2.5, "How to make a complete backup of your CMVC family" on
              page 10.
 
 
          3.3  DETAILS ON HOW CMVC 2.3.1 WAS TESTED FOR THE YEAR 2000
 
          The purpose of this section is to provide details on the imple-
          mentation and testing of CMVC 2.3.1.4, which is the version of
          CMVC that is Year 2000 ready.  For general details on the prereq-
          uisites, migration steps, and other high level information about
          CMVC 2.3.1, see 3.1, "Prerequisites for Year 2000 readiness" on
          page 21 and 3.2, "Migration steps to upgrade to CMVC 2.3.1" on
          page 23.
 
          o   Change to the now() routine.
 
              The basic and most fundamental change between CMVC 2.3.0 and
              2.3.1 is that the year is now represented using 4 digits
              (such as 1998, 2000) instead of only 2 digits (such as 98,
              00).  The update was done in the now() function which returns
              a date time stamp with the format "YYYY/MM/DD HH:MM:SS".
              Thus, any attribute in CMVC that deals with a date, uses the
              now() function: addDate, lastUpdate, dropDate, etc.
 
          o   No impact at all to the CMVC client
 
              The now() function is only used by the CMVC Server and not by
              the CMVC client.  In fact, the CMVC client does not split or
              manipulates the date information, which it is treated only as
              a single string of characters.  Fortunately, the string size
              for the date was big enough to accommodate the expansion from
              2 to 4 digits.  Thus, there is NO impact to the CMVC client
              (both line commands and GUI).  This means that a CMVC 2.3.0
              client can talk to a CMVC 2.3.1 server, and vice versa, a
              CMVC 2.3.1 client can talk to a CMVC 2.3.0 server.
 
              The only changes to the CMVC 2.3.1 client are purely cos-
              metic:
 
              -   Update of the samples in the Help whenever a date is
                  used.
              -   Update of the version number in the Copyright informa-
                  tion.
 
          o   Other changes in the server.
 
              The following functions in CMVC were affected by the read-
              iness with the Year 2000:
 
 
                 Migrating to CMVC 2.3.1 (which supports the Year 2000)  25
 
 
              -   Release -extract by date: now it parses the 4 digit rep-
                  resentation of the year.
 
              -   The dates in the audit/log file are now using the 4
                  digits.
 
              -   Track and Level -commit: because they use the year for
                  query, they needed to be updated.
 
          o   Miscellaneous (outside the scope of CMVC)
 
              The SCCS keywords that deal with dates (such as D, surrounded
              by %), represent the year with only 2 digits.  CMVC has not
              control over it.  The important point is that SCCS must have
              the necessary fixes/patches to allow it to handle the year
              2000 correctly.
 
 
          26  CMVC FAQ: Migration
 
 
           4.0  CLONING/MIGRATION OF A CMVC FAMILY FROM ONE HOST TO ANOTHER
 
 
          This chapter describes how to migrate (clone) a CMVC family from
          one host to another.
 
          Even though the main focus is when the target host has the same
          operating system and DBMS as the source host, this procedure can
          be used when there are differences in the version of CMVC, the
          operating system or DBMS between the hosts.  (see 5.0, "Migration
          tips when moving from one version of CMVC to another" on page 33
          for some specific scenarios).
 
 
          4.1  GENERAL PROCEDURE
 
          SCENARIO:
 
          1.  Current CMVC server is on Host A (which is called "the source
              host" in this document).
 
          2.  We installed in Host B (which is called "the target host")
              the same version of the operating system, of the database
              management system and of CMVC used in source Host A.
 
              NOTE:  The general recommendations in the in this chapter
              also apply when migrating from a source host to a target host
              and there are differences in operating systems and/or data-
              bases.
 
          3.  We want to copy the CMVC family from the source Host A on the
              target Host B.
 
          RECOMMENDATION:
 
          When moving a family from one host to another there are some
          common problems that can be avoided by following the suggestions
          below:
 
          o   In case you are migrating from the source host because you
              need to upgrade the operating system in that source host,
              then wait until the family is moved into the target host
              before upgrading your source host.
 
          o   Make sure that all of the CMVC characteristics are the same
              between the source Host A and the target Host B:
 
              -   Same user ID in /etc/passwd.
              -   Same group ID in /etc/group.
              -   Same port number in /etc/services.
              -   Same host alias in /etc/hosts.
 
 
            Cloning/migration of a CMVC family from one host to another  27
 
 
              If you want, you may change these things later, after the
              family has been successfully moved.
 
          o   Keep in mind the general guidelines mentioned in 2.1,
              "Overall recommendations" on page 5.
 
          PROCEDURE.
 
          Perform the procedure in the following order:
 
          1.  Pre-migration steps in source Host A.  See 4.2, "Pre-
              migration steps to be done in source Host A."
 
          2.  Migration steps in target Host B.  See 4.3, "Migration steps
              to be done in target Host B" on page 29.
 
          3.  Post-migration steps in target Host B.  See 4.4, "Post-
              migration steps to be done in target Host B" on page 30.
 
 
          4.2  PRE-MIGRATION STEPS TO BE DONE IN SOURCE HOST A
 
          1.  Make any necessary host list changes for the new host, such
              as adding a hostlist for the superuser.  If you do not do
              this now, then you will have to create a host list entry
              directly into the database after the migration.  See
              :hdref=hostcre. for details.
 
          2.  Check the value of LANG and run the command LOCALE.
 
              The new family account in Host B will need to match these
              values.
 
              When migrating from AIX 3.2.5 to AIX 4, see 5.2, "AIX 4: nec-
              essary links if using the en_US locale" on page 34.
 
          3.  Stop the CMVC family.  We suggest to use the
              "/usr/lpp/cmvc/samples/stopCMVC" sample to terminate the
              daemons and to clean up shared memory:
 
                $ stopCMVC $CMVC_FAMILY
 
          4.  Make a backup for the CMVC family; this includes both the
              CMVC user id directories and the database used by the CMVC
              family.  For more details see 2.5, "How to make a complete
              backup of your CMVC family" on page 10.
 
 
          28  CMVC FAQ: Migration
 
 
          4.3  MIGRATION STEPS TO BE DONE IN TARGET HOST B
 
          1.  Database related tasks:
 
              o   If using DB2, create a new DB2 instance owner and start
                  the DB2 instance.
 
              o   If using Oracle, Sybase or Informix, you may need to
                  create separate files for table spaces to restore the
                  database.
 
          2.  Login as root and create in Host B, a user ID with exactly
              the same values as the user ID of the existing CMVC family in
              Host A, for example same user ID, same group ID, same direc-
              tory, etc.
 
              If using DB2, then ensure that the CMVC account should use
              group id of the DB2 instance to be used.
 
              NOTE:  In case that you do not use the same userid and/or
              group, you will need to change the ownership of the files
              that are transfered from the old CMVC family user id to
              reflect the new user id and/or group id for the new CMVC
              family.
 
          3.  Modify the .profile for the CMVC user ID.  Take into account
              the following:
 
              o   Make sure that LANG environment variable is the same as
                  in Host A.
 
                  When migrating from AIX 3.2.5 to AIX 4, see 5.2, "AIX 4:
                  necessary links if using the en_US locale" on page 34
 
              o   If using DB2, see 5.11, "Warning when migrating a DB2
                  family from AIX 3 to AIX 4" on page 63.
 
          4.  Login as the CMVC user ID.
 
          5.  If using DB2, run the "locale" command to make sure that the
              correct locale is used.
 
              If any "LC_*" variables have a value of 'C', the locale may
              not be installed and the DB2 restore may not work.  Use the
              "locale -a" command to find out which locales are available
              in your system.
 
          6.  Create a new CMVC family with the same setup as the old
              family:
 
              o   Update the /etc/host and /etc/services to reflect the new
                  family.
              o   Create the subdirectories and files for a CMVC family:
 
 
            Cloning/migration of a CMVC family from one host to another  29
 
 
                    $ mkfamily
 
              o   Create the database for the CMVC family (assuming that it
                  uses the default configurable fields shipped by IBM):
 
                    $ mkdb -d
 
                  This will create the default configurable fields shipped
                  by IBM.  However, the configurable fields actually used
                  by the source family will be restored when you
                  unpack/untar the family tar file.
 
          7.  Copy from the source Host A the family tar file into the
              target Host B.  In this example, it is assumed that this
              family tar file is copied into /tmp.
 
          8.  Unpack (untar) the family tar file and then restore the data-
              base.  For more details see 2.6, "How to restore a CMVC
              family from a complete backup" on page 15.
 
 
          4.4  POST-MIGRATION STEPS TO BE DONE IN TARGET HOST B
 
          1.  Reorganize the indexes for the database.  This step is
              optional but highly recommended.  This is a good point in the
              sequence to reorganize and update the indexes for the data-
              base, to improve performance.
 
              If using DB2, use the command:
 
                db2reorg  $LOGNAME  /tmp
 
              The last step in db2reorg is to automatically invoke the
              command to bind the executable code to the DB2 instance:
 
                db2bind $CMVC_FAMILY
 
          2.  If the migration was from a CMVC 2.3.0 family or earlier
              (2.1.x or 2.2.x), then you need to execute the dbSetDate
              utility.  For more details, see 3.2, "Migration steps to
              upgrade to CMVC 2.3.1" on page 23.
 
          3.  Test the migrated CMVC family.  Issue several CMVC commands
              to verify that the contents of the tables, such as users,
              components, files, is correct.
 
              Try to issue CMVC commands from the CMVC family user ID
              (normally a superuser ID) and from a non-superuser ID.
 
              Some specific queries that you may want to execute in both
              the source Host A and in the target Host B are shown below.
              If you are not using DB2, then use the appropriate SQL
              command for your DBMS.
 
 
          30  CMVC FAQ: Migration
 
 
              The following queries must execute successfully, without any
              warning or error messages:
 
              o   Report -testServer
              o   Report -view ReleaseView
              o   db2 "select * from Sequence"
              o   db2 "select id, compId, userId, relSize from Releases
                  where id=0"
              o   db2 "select id, previousId, sourceId, userId from Ver-
                  sions where id=0"
              o   db2 "select id, releaseId, userId from Levels where id=0"
 
              In case of problems, see 7.0, "Dealing with common migration
              problems" on page 69.
 
          4.  Extract a release from the source CMVC family and compare the
              result with an extraction of the corresponding release from
              the target CMVC family.
 
              Verify that the number of files is the same, verify that the
              contents of some specific files are the same, etc.
 
          5.  Make a backup of the new CMVC family.  For more details see
              2.5, "How to make a complete backup of your CMVC family" on
              page 10.
 
          6.  Any user who perform level or release extracts will have to
              NFS export the target directory to the new Host B.
 
          7.  Either update the new family name in the domain name server
              or ask all users to update their /etc/hosts files.
 
          8.  If a user is using the VM client, you may need to
              install/start the vmkld daemon on the new server and create
              additional host list entries for each user.
 
          NOTE:  Do NOT use the CMVC cmvcarchive and cmvcrestore utilities
          for backups.  These tools are designed to archive old releases
          and/or levels that will not be needed in the current family.  If
          this archived information is needed, it can be restored into a
          new, hopefully temporary, family.
 
 
            Cloning/migration of a CMVC family from one host to another  31
 
 
          32  CMVC FAQ: Migration
 
 
                5.0  MIGRATION TIPS WHEN MOVING FROM ONE VERSION OF CMVC TO
                                                                    ANOTHER
 
 
          This chapter provides procedures for performing specific
          migration tasks when moving a CMVC from one version of the oper-
          ating system or DBMS or CMVC, to another version.
 
          Please follow the recommendations described in 2.1, "Overall
          recommendations" on page 5.
 
 
          5.1  HOW TO HAVE TWO DIFFERENT CMVC VERSIONS AT ONCE
 
          It is possible to have two different versions of CMVC (for
          example 2.3.0.25 and 2.3.1.4) in the same host, provided that the
          following conditions are met.  This assumes that 2.3.0 is already
          installed and you want to install 2.3.1 later on, without over-
          writing 2.3.0.
 
          If you want to have 2.3.0.14 and 2.3.0.25 installed at the same
          time for example, then in this document 2.3.0 will refer to
          2.3.0.14 and 2.3.1 will refer to the newest one, 2.3.0.25.
 
          1.  When installing CMVC, use different home directories, such
              as:
 
                CMVC 2.3.0:    /usr/lpp/cmvc
                CMVC 2.3.1:    /usr/lpp/cmvc231
 
              This is only possible when using "tar images", which are
              available in all platforms.  It is not possible when using
              "installp images" (only for AIX).
 
          2.  Specify a different directory for the message catalogs for
              CMVC 2.3.1, such as:
 
                CMVC 2.3.0:    /usr/lib/nls/msg/En_US
                CMVC 2.3.1:    /usr/lpp/cmvc231/nls/msg/En_US
 
              Just in case, before installing CMVC 2.3.1, make a copy of
              the 2.3.0 message catalog files from their system location
              which is /usr/lib/nls/msg/En_US to
              /usr/lpp/cmvc/nls/msg/En_US (for 2.3.0).
 
          3.  Change the NLSPATH for the CMVC 2.3.1 families to reflect the
              new location, and assuming that LANG=En_US for AIX or LANG=C
              for HP-UX and Solaris:
 
                CMVC 2.3.0:  NLSPATH=/usr/lib/nls/msg/%L/%N
                CMVC 2.3.1:  NLSPATH=/usr/lpp/cmvc231/%L/%N
 
 
                     Migration tips when moving from one versionanotherC 33
 
 
          4.  The bitmaps used by the GUI were not changed at all between
              CMVC 2.3.0 and 2.3.1.  They are located in
              /usr/include/X11/bitmaps.  That is, there is no problem is
              the 2.3.0 ones are overwritten by 2.3.1.
 
          5.  The default X11 resources are the same for both 2.3.0 and
              2.3.1.  They are located in /usr/lib/X11/app-defaults.  That
              is, there is no problem is the 2.3.0 ones are overwritten by
              2.3.1.
 
 
          5.2  AIX 4: NECESSARY LINKS IF USING THE EN_US LOCALE
 
          If you are going to use the "en_US" locale in AIX 4 (which is the
          default), then it is suggested to do one of the following because
          the only locale provided by CMVC is En_US:
 
          o   Create symbolic links.
 
              1.  Login as root.
 
              2.  Do the following symbolic links:
 
                    ln -s /usr/lib/nls/msg/En_US/cmvc.cat     /usr/lib/nls/msg/en_US/cmvc.cat
                    ln -s /usr/lib/nls/msg/En_US/cmvchelp.cat /usr/lib/nls/msg/en_US/cmvchelp.cat
                    ln -s /usr/lib/nls/msg/En_US/cmvcui.cat   /usr/lib/nls/msg/en_US/cmvcui.cat
 
          o   Do not use %L in the NLSPATH environment variable, instead
              explicitly use "En_US" in the .profile:
 
                export NLSPATH=/usr/lib/nls/msg/En_US/%N
 
          o   In the worst case scenario do:
 
                login as the CMVC family id
                cd $HOME
                mkdir -p nls/msg/En_US
                cp /usr/lib/nls/msg/En_US/cmvc*.cat nls/msg/msg/En_US/.
                export NLSPATH=$HOME/nls/msg/En_US/%N
 
              Modify the NLSPATH in the .profile.
 
 
          5.3  MIGRATING A CMVC FAMILY FROM DB2 V1 TO DB2 UDB V5
 
          This section describes how to migrate from CMVC 2.2 with DB2 V1
          on AIX 3.2.5 to CMVC 2.3.1.4 with DB2 UDB V5 on AIX 4.2.1.
 
          It will be highly advisable to keep for a short period after
          migration the current Host A with CMVC 2.2 (which is out of
          service) with DB2 V1 on AIX 3.2.5.  Only when you are satisfied
 
 
          34  CMVC FAQ: Migration
 
 
          with the operational characteristics of the new migrated family
          in Host B, you can delete the family in Host A.
 
          The recommended migration sequence is based on 4.0,
          "Cloning/migration of a CMVC family from one host to another" on
          page 27, 5.0, "Migration tips when moving from one version of
          CMVC to another" on page 33 and 3.0, "Migrating to CMVC 2.3.1
          (which supports the Year 2000)" on page 21.  However, some impor-
          tant details are highlighted below:
 
          1.  Add a CMVC host list entry for the target Host B (AIX 4).
 
          2.  In the source Host A (AIX 3.2.5) upgrade CMVC 2.2 on DB2 V1
              to CMVC 2.3.0.25 on DB2 V1.  See the Appendix B of the CMVC
              Server 2.3 manual for details.
 
          3.  In the source Host A (AIX 3.2.5) migrate DB2 V1 to DB2 V2 on
              AIX 3.2.5. This should not impact CMVC.  However, you should
              look at the DB2 documentation for migrating the database.
 
          4.  At this stage you will have CMVC 2.3.0.25, DB2 V2 on AIX
              3.2.5.  For the details on migrating from DB2 V2 to DB2 UDB
              V5 see 5.4, "Migrating a CMVC family from DB2 V2 to DB2 UDB
              V5"
 
 
          5.4  MIGRATING A CMVC FAMILY FROM DB2 V2 TO DB2 UDB V5
 
          If you are currently using CMVC under DB2 V2 on AIX4, and if you
          would like to migrate the CMVC family to VisualAge TeamConnection
          which uses DB2 Universal Database Version 5 (DB2 UDB V5), then it
          is recommended that first you migrate your CMVC family from DB2
          V2 to DB2 UDB V5, in that way you can have only one version of
          DB2 in the host.
 
          o   To migrate from DB2 V2 to DB2 UDB V5 in the same host do the
              following:
 
              1.  Backup the DB2 V2 database of the CMVC family.
              2.  Uninstall DB2 V2.
              3.  Install DB2 UDB V5.
 
                  You can follow the instructions provided in the technical
                  report mentioned in 2.2.1, "Other related technical
                  reports" on page 7.
              4.  Follow all the instructions from Chapter 6 "Migrating
                  from Previous Versions", of the DB2 UDB V5 Quick Begin-
                  nings for Unix manual.
 
          o   To migrate a CMVC family from DB2 V2 in one host to DB2 UDB
              V5 in another host, do the following:
 
 
                     Migration tips when moving from one versionanotherC 35
 
 
              1.  Follow the steps for migrating a CMVC family from one
                  host to another.  See 4.0, "Cloning/migration of a CMVC
                  family from one host to another" on page 27.
              2.  Restore the backup file for the CMVC family that used DB2
                  V2.
 
                  After the restore you will see the SQL2517W warning
                  message confirming that the database was migrated to the
                  current release.
              3.  If migrating from a CMVC 2.3.0 family, then follow the
                  steps for upgrading a CMVC family to 2.3.1.  See 3.0,
                  "Migrating to CMVC 2.3.1 (which supports the Year 2000)"
                  on page 21.
 
 
          5.5  MIGRATION FROM INFORMIX 5 TO DB2 V2 IN AIX 3 TO DB2 UDB V5
          IN AIX 4
 
          Here is how we recommend making the migration from CMVC 2.3.0
          using Informix 5 on AIX 3.2 to CMVC 2.3.0 using DB2 V2 on AIX
          3.2.5 to the final stage of CMVC 2.3.1.4 on DB2 UDB V5 on AIX 4.
 
          As in previous examples, we will call the current machine Host A
          and the new machine Host B.
 
          1.  Perform a complete backup of the current CMVC family database
              (under Informix) and file system on Host A.  See the Informix
              documentation for specific directions.  For more details see
              2.5, "How to make a complete backup of your CMVC family" on
              page 10.
 
          2.  Install DB2 V2 on AIX 3.2.5 and then migrate the database
              from Informix to DB2 in Host A as explained in the CMVC
              Server manual, Appendix D.
 
              However, do not migrate CMVC or AIX on Host A yet.
 
          3.  Verify that the CMVC family is working correctly under DB2 V2
              on Host A.
 
          4.  Make a complete backup of the CMVC family database (under DB2
              V2) and file system on Host A.
 
          5.  Migrate from Host A running CMVC 2.3.0 on DB2 V2 on AIX 3.2.5
              to Host B running CMVC 2.3.1 on DB2 UDB V5 on AIX 4.x.  For
              more details see 4.0, "Cloning/migration of a CMVC family
              from one host to another" on page 27.
 
          6.  Apply dbSetDate to update the CMVC 2.3.0 database to 2.3.1.
              For more details see 3.0, "Migrating to CMVC 2.3.1 (which
              supports the Year 2000)" on page 21.
 
 
          36  CMVC FAQ: Migration
 
 
          7.  Verify that the CMVC family is working correctly under DB2
              UDB V5 on Host B.
 
          8.  Make a complete backup of the CMVC family database (under DB2
              UDB V5) and file system on Host B (now under AIX 4).
 
 
          5.6  MIGRATION FROM INFORMIX 5 IN AIX 3 TO DB2 UDB V5 IN AIX 4
 
          Here is how we recommend making the migration from CMVC 2.3.0
          using Informix 5 on AIX 3.2 to CMVC 2.3.1.4 on DB2 UDB V5 on AIX
          4.
 
          As in previous examples, we will call the current machine Host A
          and the new machine Host B.
 
          1.  Perform a complete backup of the current CMVC family database
              (under Informix) and file system on Host A.  See the Informix
              documentation for specific directions.  For more details see
              2.5, "How to make a complete backup of your CMVC family" on
              page 10.
 
          2.  Install DB2 UDB on AIX 4 and then migrate the database from
              Informix 5 in Host A to DB2 UDB in Host B as explained below:
 
          3.  Perform the migration steps specified in 5.7, "Migration from
              Informix 7 to DB2 UDB V5 in AIX 4."
 
          4.  Apply dbSetDate to update the CMVC 2.3.0 database to 2.3.1 in
              Host B.  For more details see 3.0, "Migrating to CMVC 2.3.1
              (which supports the Year 2000)" on page 21.
 
          5.  Verify that the CMVC family is working correctly under DB2
              UDB V5 on Host B.
 
          6.  Make a complete backup of the CMVC family database (under DB2
              UDB V5) and file system on Host B (now under AIX 4).
 
 
          5.7  MIGRATION FROM INFORMIX 7 TO DB2 UDB V5 IN AIX 4
 
          This chapter describes the migration from CMVC 2.3.0 using
          Informix 7 on AIX 4.x or HP-UX 10.x to CMVC 2.3.1 using DB2 UDB
          V5 on AIX 4.
 
 
                     Migration tips when moving from one versionanotherC 37
 
 
          5.7.1  Step 1: Pre-migration tasks
          __________________________________
 
          This section provides a summary of the pre-migration tasks to be
          done in both hosts.  For more details see 4.2, "Pre-migration
          steps to be done in source Host A" on page 28 and 4.3, "Migration
          steps to be done in target Host B" on page 29.
 
 
          5.7.1.1  Pre-migration tasks to be done in the source Host A
 
          In the source Host A (AIX 4.x or HP-UX 10.x) do the following:
 
          1.  Login as the CMVC family user ID.
 
          2.  Stop the family daemons:
 
                $ stopCMVC $CMVC_FAMILY
 
          3.  Make a tar file of the $HOME directory for the CMVC family:
 
                $ cd $HOME
                $ tar -cvf family.tar .
 
 
          5.7.1.2  Pre-migration tasks to be done in the target Host B
 
          In the target Host B (AIX 4) do the following:
 
          1.  Login as root.
 
          2.  Install DB2 UDB V5 and create a DB2 instance (default:
              db2inst1).  See the installation instructions from the tech-
              nical report 29.3076 "Configuration and Administration of DB2
              Universal Database V5 by users of VisualAge TeamConnection
              V3".
 
          3.  Install CMVC 2.3.1.x for DB2 UDB V5.
 
          4.  Change to the /usr/lpp/cmvc directory.
 
          5.  The migtools.tar.Z file is included in CMVC 2.3.1.5 in
              /usr/lpp/cmvc/samples.  You will need to uncompress it and
              untar it.
 
          6.  If you do not have CMVC 2.3.1.5, then proceed with this
              section.  From the CMVC ftp site:
 
              a.  cd ps/products/cmvc
              b.  cd doc/tr
              c.  binary
              d.  get migtools.tar.Z
 
 
          38  CMVC FAQ: Migration
 
 
          7.  Uncompress and untar the file migtools.tar.Z:
 
                $ uncompress migtools.tar.Z
                $ tar -xvf migtools.tar
 
              Some of the extracted files are shown below:
 
                db2Convert/db2InsertRemarks
                db2Convert/db2InsertRemarks.bnd
                db2Convert/infRemsEor
                db2Convert/note1.bnd
                db2Convert/version1.bnd
                db2Convert/*dumptbls
                db2Convert/*dumptblsrems
 
              All the extracted files MUST be located in the db2Convert
              directory.  DO NOT copy the new *.bnd files into the
              /usr/lpp/cmvc/bind directory.
 
          8.  Create the user id for the CMVC family; the group id must be
              the same as the group id from the DB2 instance.  It is recom-
              mended to use the same name as the old CMVC family.  If pos-
              sible try to use the same actual user number.
 
          9.  Update /etc/hosts and /etc/services with the family name and
              port number.  It is recommended to use the same data as the
              old CMVC family.
 
          10. Login as the CMVC user ID.
 
          11. Modify the .profile.
 
          12. Logout and login again to have a clean environment.
 
          13. Get the family.tar file obtained in 5.8.1.1, "Pre-migration
              tasks to be done in the source Host A" on page 44, and put it
              in $HOME.
 
          14. Untar the file:
 
                $ tar -xvf family.tar
 
          15. Ensure that the file permissions and ownership are correct
              for the new files that were just expanded into the new CMVC
              family.
 
                find . -exec chown userId:groupId {} \;
 
              You need to specify the proper userId and groupId, for
              example:
 
                $ find . -exec chown cmpc3mig:db2inst1 {} \;
 
 
                     Migration tips when moving from one versionanotherC 39
 
 
          16. Do not issue "mkfamily". By using the "tar -xvf" command on
              the tar file you recreated the directories and files needed
              for the family.
 
          17. Create the DB2 database for the CMVC family by using:
 
                $ mkdb
 
              Do not use the -d option for the mkdb command as the command
              needs to read the $HOME/configField files to ensure that the
              Defects, Files and Users tables are created with the appro-
              priate configurable fields.
 
          Up to this point you have recreated the family files and created
          a new (almost empty) database.  The next steps will tell you how
          to populate it with the data from the old database.
 
 
          5.7.2  Step 2: Process most of the tables (except Versions and
          ______________________________________________________________
          Notes)
          ______
 
          The following instructions were obtained from the CMVC Server
          manual, version 2.3, Appendix D "Migrating to CMVC Server V2.3.0
          for DB2".  These instructions apply also for CMVC 2.3.1.
 
          The database consists of several tables.  All these tables,
          except for Versions and Notes, can be migrated at the same time
          by following the procedure below.
 
          In separate steps you can migrate the tables for Versions and
          Notes.  See 5.7.3, "Step 3: Process Versions and Notes" on
          page 42 and 5.7.4, "Step 4: Post-migration steps in target Host
          B" on page 43.
 
 
          5.7.2.1  Dumping tables in source Host A
 
          In the source Host A do the following:
 
          1.  Login as the CMVC family user ID.
 
          2.  Create a directory to store the flat files with the data
              extracted from the tables of the database:
 
                $ mkdir $HOME/flatfiles
 
          3.  Set the environment FLATFILEDIR to this new directory:
 
                $ export FLATFILEDIR=$HOME/flatfiles
 
 
          40  CMVC FAQ: Migration
 
 
          4.  Dump the tables (except Notes and Versions) to flat files:
 
                $ dbexport -o $FLATFILEDIR  $CMVC_FAMILY
 
          5.  The above tools will create temporary files in /tmp.  Just in
              case these files contain warnings or errors, take a look at
              them.
 
          6.  Take a look at the files in $FLATFILEDIR, which contain the
              extracted data.  These files have 1 row per object, and the
              fields for the object are separated by a vertical bar "|".
 
              It might be possible that some fields such as in the abstract
              of Defects may contain "|"; in this case you need to replace
              these instances to another character, such as "!"  in order
              to avoid problems when parsing the data during the import
              phase later on; that is, a field might be truncated because
              it found a "|" that is not a field separator.
 
          7.  Make a tar file of the flat files:
 
                $ cd $HOME
                $ tar -cvf flatfiles.tar $FLATFILEDIR
 
 
          5.7.2.2  Loading most of the tables in target Host B
 
          In the target Host B do the following:
 
          1.  Login as the CMVC family user ID.
 
          2.  Create a directory to store the flat files with the data
              extracted from the tables of the database:
 
                $ mkdir $HOME/flatfiles
 
          3.  Set the environment FLATFILEDIR to this new directory:
 
                $ export FLATFILEDIR=$HOME/flatfiles
 
          4.  Get the flatfiles.tar file and untar it:
 
                $ tar -xvf flatfiles.tar
 
          5.  Load (insert/import) the tables:
 
                $ $HOME/db2Convert/infx7db2tbls
 
          6.  Make a backup of your database now.
 
 
                     Migration tips when moving from one versionanotherC 41
 
 
          5.7.3  Step 3: Process Versions and Notes
          _________________________________________
 
 
          5.7.3.1  Dumping Versions and Notes in source Host A
 
          The dumping of the Versions and Notes tables was already accom-
          plished in 5.7.2.1, "Dumping tables in source Host A" on page 40.
 
 
          5.7.3.2  Loading Versions and Notes in target Host B
 
          In the target Host B do the following:
 
          1.  You need to bind these temporary bind files.  You will rebind
              the original, permanent bind files again at the end of the
              process.
 
              a.  $ db2 connect to $LOGNAME
              b.  $ db2 bind
                  /usr/lpp/cmvc/samples/db2Convert/db2InsertRemarks.bnd
              c.  $ db2 bind /usr/lpp/cmvc/samples/db2Convert/note1.bnd
              d.  $ db2 bind /usr/lpp/cmvc/samples/db2Convert/version1.bnd
 
          2.  Specify the directory where the "flat files" are located,
              such as:
 
                $ export FLATFILEDIR=$HOME/flatfiles
 
          3.  Copy the exported files from the source Host A into
              $HOME/flatfiles.
 
              Because these tables may contain remarks that are split
              between several lines and because they may contain vertical
              bars ('|'), then it is necessaty to process the exported
              files to identify the end of each record with the sequence
              !_!.  This avoids the problem of embedded | vertical bars and
              line feeds \n inside the comments for Notes and Versions.
 
          4.  Execute the following from your Informix CMVC family id:
 
                $ cd $FLATFILEDIR
                $ ../db2Convert/infRemsEor N notes00119.unl
                $ ../db2Convert/infRemsEor V versi00128.unl
 
              Ensure that the proper names for the Notes and Versions are
              specified, in case that they are different as the ones used
              in the above example.
 
          5.  You will get 2 files with extension of ".cmvc", such as:
 
 
          42  CMVC FAQ: Migration
 
 
                notes00119.unl.cmvc
                versi00128.unl.cmvc
 
              The format is slightly different than the ones that have the
              suffix of *.unl, in which the end of a database record is
              represented by the 3 characters !_!.
 
              Also, the combination of back slash + vertical bar (\|) is
              replaced by back slash + exclamation (\!) to avoid problems
              with the parsing by db2InsertRemarks.
 
          6.  Edit the $FLATFILEDIR/versi00128.unl.cmvc file and delete the
              first entry that contains all 0's.
 
              If you do not do this, then you will get an error when trying
              to import it, because it will be a duplicate one.  The
              symptom is error: 0010-061 Database error, -803
 
          7.  Insert the Notes:
 
                $ db2InsertRemarks  n  $FLATFILEDIR/notes00119.unl.cmvc
 
          8.  Insert the Versions:
 
                $ db2InsertRemarks  v  $FLATFILEDIR/versi00128.unl.cmvc
 
          9.  If there were remarks in the Versions file that contained one
              or more |, these rows were not processed.  These rows were
              placed in $FLATFILEDIR/Versions.cmvc.aux.  You will need to
              edit this file to remove any | (vertical bars) that are
              located in the remarks field.  This field is usually located
              between the 7th and the 8th vertical bar.  The changeDate
              field is located between the 8th and the 9th vertical bar.
              You will need to replace any extra vertical bars manually, by
              changing it from | to !, for example.
 
          10. After you edit the $FLATFILEDIR/Versions.cmvc.aux, you can
              insert the remaining versions into the database:
 
                $ db2InsertRemarks  v  $FLATFILEDIR/Versions.cmvc.aux
 
          11. Rebind again with the original, permanent bind files:
 
                $ db2bind $LOGNAME
 
 
          5.7.4  Step 4: Post-migration steps in target Host B
          ____________________________________________________
 
          Perform the tasks described in 4.4, "Post-migration steps to be
          done in target Host B" on page 30.
 
 
                     Migration tips when moving from one versionanotherC 43
 
 
          5.8  MIGRATION FROM CMVC 2.3.0 SYBASE TO CMVC 2.3.1 DB2 UDB V5
 
          This chapter describes the migration from CMVC 2.3.0 using Sybase
          4.9/Sybase 11 on AIX 3.2.5/Solaris to CMVC 2.3.1 using DB2 UDB V5
          on AIX 4.
 
 
          5.8.1  Step 1: Pre-migration tasks
          __________________________________
 
          This section provides a summary of the pre-migration tasks to be
          done in both hosts.  For more details see 4.2, "Pre-migration
          steps to be done in source Host A" on page 28 and 4.3, "Migration
          steps to be done in target Host B" on page 29.
 
 
          5.8.1.1  Pre-migration tasks to be done in the source Host A
 
          In the source Host A (AIX 3.2.5 or Solaris) do the following:
 
          1.  Login as the CMVC family user ID.
 
          2.  Stop the family daemons:
 
                $ stopCMVC $CMVC_FAMILY
 
          3.  Make a tar file of the $HOME directory for the CMVC family:
 
                $ cd $HOME
                $ tar -cvf family.tar .
 
 
          5.8.1.2  Pre-migration tasks to be done in the target Host B
 
          In the target Host B (AIX 4) do the following:
 
          1.  Login as root.
 
          2.  Install DB2 UDB V5 and create a DB2 instance (default:
              db2inst1).  See the installation instructions from the tech-
              nical report 29.3076 "Configuration and Administration of DB2
              Universal Database V5 by users of VisualAge TeamConnection
              V3".
 
          3.  Install CMVC 2.3.1.x for DB2 UDB V5.
 
          4.  Change to the /usr/lpp/cmvc directory.
 
          5.  The migtools.tar.Z file is included in CMVC 2.3.1.5 in
              /usr/lpp/cmvc/samples.
 
 
          44  CMVC FAQ: Migration
 
 
          6.  If you do not have CMVC 2.3.1.5, then proceed with this
              section.  From the CMVC ftp site:
 
              a.  cd ps/products/cmvc
              b.  cd doc/tr
              c.  binary
              d.  get migtools.tar.Z
 
          7.  Uncompress and untar the file:
 
                $ uncompress migtools.tar.Z
                $ tar -xvf migtools.tar
 
              Some of the extracted files are shown below:
 
                db2Convert/db2InsertRemarks
                db2Convert/db2InsertRemarks.bnd
                db2Convert/note1.bnd
                db2Convert/version1.bnd
                db2Convert/*dumptbls
                db2Convert/*dumptblsrems
 
              All the extracted files MUST be located in the db2Convert
              directory.  DO NOT copy the new *.bnd files into the
              /usr/lpp/cmvc/bind directory.
 
          8.  Create the user id for the CMVC family; the group id must be
              the same as the group id from the DB2 instance.  It is recom-
              mended to use the same name as the old CMVC family.  If pos-
              sible try to use the same actual user number.
 
          9.  Update /etc/hosts and /etc/services with the family name and
              port number.  It is recommended to use the same data as the
              old CMVC family.
 
          10. Login as the CMVC user ID.
 
          11. Modify the .profile.
 
          12. Logout and login again to have a clean environment.
 
          13. Get the family.tar file obtained in 5.8.1.1, "Pre-migration
              tasks to be done in the source Host A" on page 44, and put it
              in $HOME.
 
          14. Untar the file:
 
                $ tar -xvf family.tar
 
          15. Ensure that the file permissions and ownership are correct
              for the new files that were just expanded into the new CMVC
              family.
 
                find . -exec chown userId:groupId {} \;
 
 
                     Migration tips when moving from one versionanotherC 45
 
 
              You need to specify the proper userId and groupId, for
              example:
 
                $ find . -exec chown cmpc3mig:db2inst1 {} \;
 
          16. Do not issue "mkfamily". By using the "tar -xvf" command on
              the tar file you recreated the directories and files needed
              for the family.
 
          17. Create the DB2 database for the CMVC family by using:
 
                $ mkdb
 
              Do not use the -d option for the mkdb command as the command
              needs to read the $HOME/configField files to ensure that the
              Defects, Files and Users tables are created with the appro-
              priate configurable fields.
 
          Up to this point you have recreated the family files and created
          a new (almost empty) database.  The next steps will tell you how
          to populate it with the data from the old database.
 
 
          5.8.2  Step 2: Process most of the tables (except Versions and
          ______________________________________________________________
          Notes)
          ______
 
          The following instructions were obtained from the CMVC Server
          manual, version 2.3, Appendix D "Migrating to CMVC Server V2.3.0
          for DB2".  These instructions apply also for CMVC 2.3.1.
 
          The database consists of several tables.  All these tables,
          except for Versions and Notes, can be migrated at the same time
          by following the procedure below.
 
          In separate steps you can migrate the tables for Versions and
          Notes.  See 5.8.3, "Step 3: Process Versions and Notes" on
          page 48 and 5.8.4, "Step 4: Post-migration steps in target Host
          B" on page 50.
 
 
          5.8.2.1  Dumping tables in source Host A
 
          In the source Host A do the following:
 
          1.  Login as the CMVC family user ID.
 
          2.  Create a directory to store the flat files with the data
              extracted from the tables of the database:
 
                $ mkdir $HOME/flatfiles
 
 
          46  CMVC FAQ: Migration
 
 
          3.  Set the environment FLATFILEDIR to this new directory:
 
                $ export FLATFILEDIR=$HOME/flatfiles
 
          4.  Dump the tables (except Notes and Versions) to flat files.
 
              o   If using Informix, do (use the CMVC family name):
 
                    $ dbexport -o $FLATFILEDIR  $CMVC_FAMILY
 
              o   If using Oracle, ensure that $ORACLE_PASS is properly set
                  with the password of the CMVC family user id and then
                  issue:
 
                    $ ora7dumptbls
 
              o   If using Sybase, ensure that $SYBASE_PASS is properly set
                  with the password of the CMVC family user id and then
                  issue:
 
                    $ sybdumptbls
 
          5.  The above tools will create temporary files in /tmp.  Just in
              case these files contain warnings or errors, take a look at
              them.
 
          6.  Take a look at the files in $FLATFILEDIR, which contain the
              extracted data.  These files have 1 row per object, and the
              fields for the object are separated by a vertical bar "|".
 
              It might be possible that some fields such as in the abstract
              of Defects may contain "|"; in this case you need to replace
              these instances to another character, such as "!"  in order
              to avoid problems when parsing the data during the import
              phase later on; that is, a field might be truncated because
              it found a "|" that is not a field separator.
 
          7.  Make a tar file of the flat files:
 
                $ cd $HOME
                $ tar -cvf flatfiles.tar $FLATFILEDIR
 
 
          5.8.2.2  Loading most of the tables in target Host B
 
          In the target Host B do the following:
 
          1.  Login as the CMVC family user ID.
 
          2.  Create a directory to store the flat files with the data
              extracted from the tables of the database:
 
                $ mkdir $HOME/flatfiles
 
 
                     Migration tips when moving from one versionanotherC 47
 
 
          3.  Set the environment FLATFILEDIR to this new directory:
 
                $ export FLATFILEDIR=$HOME/flatfiles
 
          4.  Get the flatfiles.tar file and untar it:
 
                $ tar -xvf flatfiles.tar
 
          5.  Load (insert/import) the tables:
 
              o   If the files were obtained from a previous Sybase CMVC
                  family, use:
 
                    $ syb2db2tbls
 
              o   If the files were obtained from a previous Oracle CMVC
                  family, use:
 
                    $ ora72db2tbls
 
              o   If the files were obtained from a previous Informix CMVC
                  family, use:
 
                    $ infx2db2tbls
 
          6.  Make a backup of your database now.
 
 
          5.8.3  Step 3: Process Versions and Notes
          _________________________________________
 
 
          5.8.3.1  Dumping Versions and Notes in source Host A
 
          In the source Host A do the following:
 
          1.  Execute the following file from your Sybase CMVC family id:
 
                $ sybdumptblsrems
 
              You will get 2 files with extension of ".cmvc".
 
              The format is slightly different than the ones that have the
              suffix of *.unl, in which the end of a database row is
              represented by the 3 characters !_!.  This avoids the problem
              of embedded | vertical bars and line feeds \n inside the com-
              ments for Notes and Versions.
 
 
          48  CMVC FAQ: Migration
 
 
          5.8.3.2  Loading Versions and Notes in target Host B
 
          In the target Host B do the following:
 
          1.  You need to bind these temporary bind files.  You will rebind
              the original, permanent bind files again at the end of the
              process.
 
              a.  $ db2 connect to family
              b.  $ db2 bind /usr/lpp/cmvc/db2Convert/db2InsertRemarks.bnd
              c.  $ db2 bind /usr/lpp/cmvc/db2Convert/note1.bnd
              d.  $ db2 bind /usr/lpp/cmvc/db2Convert/version1.bnd
 
          2.  Specify the directory where the "flat files" are located,
              such as:
 
                $ export FLATFILEDIR=$HOME/flatfiles
 
          3.  Copy the exported files from the source Host A into
              $HOME/flatfiles.
 
          4.  Edit the $HOME/flatfiles/Versions.cmvc file and delete the
              first entry that contains all 0's.
 
              If you do not do this, then you will get an error when trying
              to import it, because it will be a duplicate one.  The
              symptom is error: 0010-061 Database error, -803
 
          5.  Insert the Notes:
 
                $ db2InsertRemarks  n  $FLATFILEDIR/Notes.cmvc
 
          6.  Insert the Versions:
 
                $ db2InsertRemarks  v  $FLATFILEDIR/Versions.cmvc
 
          7.  If there were remarks in the Versions file that contained one
              or more |, these rows were not processed.  These rows were
              placed in $FLATFILEDIR/Versions.cmvc.aux.  You will need to
              edit this file to remove any | (vertical bars) that are
              located in the remarks field.  This field is usually located
              between the 7th and the 8th vertical bar.  The changeDate
              field is located between the 8th and the 9th vertical bar.
              You will need to replace any extra vertical bars manually, by
              changing it from | to #, for example.
 
          8.  After you edit the $FLATFILEDIR/Versions.cmvc.aux, you can
              insert the remaining versions into the database:
 
                $ db2InsertRemarks  v  $FLATFILEDIR/Versions.cmvc.aux
 
          9.  Rebind again with the original, permanent bind files:
 
                $ db2bind $CMVC_FAMILY
 
 
                     Migration tips when moving from one versionanotherC 49
 
 
          5.8.4  Step 4: Post-migration steps in target Host B
          ____________________________________________________
 
          Perform the tasks described in 4.4, "Post-migration steps to be
          done in target Host B" on page 30.
 
 
          5.9  MIGRATION FROM CMVC 2.3.0 SYBASE 4.9 TO CMVC 2.3.1 SYBASE 11
 
          This chapter describes the migration from CMVC 2.3.0 using Sybase
          4.9 on AIX 3.2.5/Solaris to CMVC 2.3.1 using Sybase 11 on
          Solaris.
 
          Unfortunately, a backup (dump) file of a Sybase 4.9 cannot be
          restored (loaded) into a Sybase 11 database.  Therefore, the bulk
          copy (bcp) utility from Sybase is used to dump the tables from
          the Sybase 4.9 database and to load the tables into the Sybase 11
          database.
 
 
          5.9.1  Step 1: Pre-migration tasks
          __________________________________
 
          This section provides a summary of the pre-migration tasks to be
          done in both hosts.  For more details see 4.2, "Pre-migration
          steps to be done in source Host A" on page 28 and 4.3, "Migration
          steps to be done in target Host B" on page 29.
 
 
          5.9.1.1  Pre-migration tasks to be done in the source Host A
 
          In the source Host A (AIX 3.2.5 or Solaris) do the following:
 
          1.  Login as the CMVC family user ID.
 
          2.  Stop the family daemons:
 
                $ stopCMVC $CMVC_FAMILY
 
          3.  Make a tar file of the $HOME directory for the CMVC family:
 
                $ cd $HOME
                $ tar -cvf family.tar .
 
 
          50  CMVC FAQ: Migration
 
 
          5.9.1.2  Pre-migration tasks to be done in the target Host B
 
          In the target Host B (Solaris) do the following:
 
          1.  Login as root.
 
          2.  Install and configure Sybase 11.
 
          3.  Install CMVC 2.3.1.x for Sybase.
 
          4.  Change to the /usr/lpp/cmvc directory.
 
          5.  The migtools.tar.Z file is included in CMVC 2.3.1.5 in
              /usr/lpp/cmvc/samples.
 
          6.  If you do not have CMVC 2.3.1.5, then proceed with this
              section.  From the CMVC ftp site:
 
              a.  cd ps/products/cmvc
 
              b.  cd doc/tr
 
              c.  binary
 
              d.  get migtools.tar.Z
 
          7.  Uncompress and untar the file:
 
                $ uncompress migtools.tar.Z
                $ tar -xvf migtools.tar
 
              Some of the extracted files are shown below:
 
                db2Convert/sybdumptbls
                db2Convert/sybdumptblsrems
                db2Convert/sybloadtbls
                db2Convert/sybloadtblsrems
 
              All the extracted files MUST be located in the db2Convert
              directory.  DO NOT copy the new *.bnd files into the
              /usr/lpp/cmvc/bind directory.
 
          8.  Create the user id for the CMVC family.  It is recommended to
              use the same name as the old CMVC family.  If possible try to
              use the same actual user number.
 
          9.  Update /etc/hosts and /etc/services with the family name and
              port number.  It is recommended to use the same data as the
              old CMVC family.
 
          10. Login as the CMVC user ID.
 
          11. Modify the .profile.
 
 
                     Migration tips when moving from one versionanotherC 51
 
 
          12. Logout and login again to have a clean environment.
 
          13. Get the family.tar file obtained in 5.9.1.1, "Pre-migration
              tasks to be done in the source Host A" on page 50, and put it
              in $HOME.
 
          14. Untar the file:
 
                $ tar -xvf family.tar
 
          15. Ensure that the file permissions and ownership are correct
              for the new files that were just expanded into the new CMVC
              family.
 
                $ find . -exec chown userId:groupId {} \;
 
              You need to specify the proper userId and groupId, for
              example:
 
                $ find . -exec chown cmpc3mig:db2inst1 {} \;
 
          16. Do not issue "mkfamily". By using the "tar -xvf" command on
              the tar file you recreated the directories and files needed
              for the family.
 
          17. Create the database for the CMVC family by using:
 
                $ mkdb
 
              Do not use the -d option for the mkdb command as the command
              needs to read the $HOME/configField files to ensure that the
              Defects, Files and Users tables are created with the appro-
              priate configurable fields.
 
          Up to this point you have recreated the family files and created
          a new (almost empty) database.  The next steps will tell you how
          to populate it with the data from the old database.
 
 
          5.9.2  Step 2: Process most of the tables (except Versions and
          ______________________________________________________________
          Notes)
          ______
 
          The following instructions were obtained from the CMVC Server
          manual, version 2.3, Appendix D "Migrating to CMVC Server V2.3.0
          for DB2".  These instructions apply also for CMVC 2.3.1.
 
          The database consists of several tables.  All these tables,
          except for Versions and Notes, can be migrated at the same time
          by following the procedure below.
 
          In separate steps you can migrate the tables for Versions and
          Notes.  See 5.9.3, "Step 3: Process Versions and Notes" on
 
 
          52  CMVC FAQ: Migration
 
 
          page 54 and 5.9.4, "Step 4: Post-migration steps in target Host
          B" on page 56.
 
 
          5.9.2.1  Dumping tables in source Host A
 
          In the source Host A do the following:
 
          1.  Login as the CMVC family user ID.
 
          2.  Create a directory to store the flat files with the data
              extracted from the tables of the database:
 
                $ mkdir $HOME/flatfiles
 
          3.  Set the environment FLATFILEDIR to this new directory:
 
                $ export FLATFILEDIR=$HOME/flatfiles
 
          4.  Dump the tables (except Notes and Versions) to flat files.
              Because we are using Sybase, ensure that $SYBASE_PASS is
              properly set with the password of the CMVC family user id and
              then issue:
 
                $ ./db2Convert/sybdumptbls
 
              The tool will create temporary files in /tmp.  Just in case
              these files contain warnings or errors, take a look at them.
 
          5.  Take a look at the files in $FLATFILEDIR, which contain the
              extracted data.  These files have 1 row per object, and the
              fields for the object are separated by a vertical bar "|".
 
              It might be possible that some fields such as in the abstract
              of Defects may contain "|"; in this case you need to replace
              these instances to another character, such as "!"  in order
              to avoid problems when parsing the data during the import
              phase later on; that is, a field might be truncated because
              it found a "|" that is not a field separator.
 
          6.  Make a tar file of the flat files:
 
                $ cd $HOME
                $ tar -cvf flatfiles.tar $FLATFILEDIR
 
 
                     Migration tips when moving from one versionanotherC 53
 
 
          5.9.2.2  Loading most of the tables in target Host B
 
          In the target Host B do the following:
 
          1.  Login as the CMVC family user ID.
 
          2.  Create a directory to store the flat files with the data
              extracted from the tables of the database:
 
                $ mkdir $HOME/flatfiles
 
          3.  Set the environment FLATFILEDIR to this new directory:
 
                $ export FLATFILEDIR=$HOME/flatfiles
 
          4.  Get the flatfiles.tar file and untar it:
 
                $ tar -xvf flatfiles.tar
 
          5.  Edit the following files in $FLATFILEDIR:
 
              o   CompMembers.unl: delete the first entry (2|2|0|1).
              o   Components.unl: delete the first entry (for component
                  "root").
              o   Levels.unl: delete the first entry (0|||||).
              o   Releases.unl: delete the first entry (0||0||).
              o   Users.unl: delete the first TWO entries.
 
          6.  Cleanup the current Sequence table inside the database:
 
                $ isql -P$SYBASE_PASS
                1> delete from Sequence where name in ('defect','source','general')
                2> go
 
          7.  Load (insert/import) the tables.  Because the files were
              obtained from a previous Sybase CMVC family, use:
 
                $ ./db2Convert/sybloadtbls
 
          8.  Make a backup of your database now.
 
 
          5.9.3  Step 3: Process Versions and Notes
          _________________________________________
 
 
          5.9.3.1  Dumping Versions and Notes in source Host A
 
          In the source Host A do the following:
 
          1.  Execute the following file from your Sybase CMVC family id:
 
                $ ./db2Convert/sybdumptblsrems
 
 
          54  CMVC FAQ: Migration
 
 
              You will get 2 files with extension of ".cmvc".
 
              The format is slightly different than the ones that have the
              suffix of *.unl, in which the end of a database row is
              represented by the 3 characters !_!.  This avoids the problem
              of embedded | vertical bars and line feeds \n inside the com-
              ments for Notes and Versions.
 
 
          5.9.3.2  Loading Versions and Notes in target Host B
 
          In the target Host B do the following:
 
          1.  Specify the directory where the "flat files" are located,
              such as:
 
                $ export FLATFILEDIR=$HOME/flatfiles
 
          2.  Copy the exported files from the source Host A into
              $HOME/flatfiles.
 
          3.  Edit the $HOME/flatfiles/Versions.cmvc file and delete the
              first entry that contains all 0's.
 
              If you do not do this, then you will get an error when trying
              to import it, because it will be a duplicate one.
 
          4.  Insert the Notes and Versions:
 
                $ ./db2Convert/sybloadtblsrems
 
          5.  If there were remarks in the Versions file that contained one
              or more |, these rows were not processed.  These rows were
              placed in $FLATFILEDIR/Versions.cmvc.aux.  You will need to
              edit this file to remove any | (vertical bars) that are
              located in the remarks field.  This field is usually located
              between the 7th and the 8th vertical bar.  The changeDate
              field is located between the 8th and the 9th vertical bar.
              You will need to replace any extra vertical bars manually, by
              changing it from | to #, for example.
 
          6.  Rename the original $FLATFILEDIR/Versions.cmvc or Notes.cmvc
              to something else.
 
          7.  After you edit the $FLATFILEDIR/Versions.cmvc.aux, rename it
              to $FLATFILEDIR/Versions.cmvc You can insert the remaining
              versions into the database by entering the following command
              and specifying Notes or Versions:
 
                $ ./db2Convert/sybloadtblsrems
 
 
                     Migration tips when moving from one versionanotherC 55
 
 
          5.9.4  Step 4: Post-migration steps in target Host B
          ____________________________________________________
 
          Perform the tasks described in 4.4, "Post-migration steps to be
          done in target Host B" on page 30.
 
 
          5.9.5  Step 5: Migrate the family in target Host B to CMVC 2.3.1
          ________________________________________________________________
 
          Perform the tasks described in 3.0, "Migrating to CMVC 2.3.1
          (which supports the Year 2000)" on page 21.
 
 
          5.10  MIGRATION FROM CMVC 2.3.0 ORACLE 7 TO CMVC 2.3.1 DB2 UDB V5
 
          This chapter describes the migration from CMVC 2.3.0 using Oracle
          7 (from AIX, HP-UX or Solaris) to CMVC 2.3.1 using DB2 UDB V5 on
          AIX 4.
 
 
          5.10.1  Step 1: Pre-migration tasks
          ___________________________________
 
          This section provides a summary of the pre-migration tasks to be
          done in both hosts.
 
          1.  You need to perform the steps mentioned in:  4.2, "Pre-
              migration steps to be done in source Host A" on page 28.
 
          2.  You need to perform the steps mentioned in:  4.3, "Migration
              steps to be done in target Host B" on page 29.
 
 
          5.10.1.1  Pre-migration tasks to be done in the source Host A
 
          In the source Host A (AIX 4.x, HP-UX 10.x or Solaris) do the fol-
          lowing:
 
          1.  Login as the CMVC family user ID.
 
          2.  Stop the family daemons:
 
                $ stopCMVC $CMVC_FAMILY
 
          3.  Make a tar file of the $HOME directory for the CMVC family.
              You will need to specify a directory where there is enough
              file system space to create the tar file, such as /tmp in
              this example:
 
 
          56  CMVC FAQ: Migration
 
 
                $ cd $HOME
                $ tar -cvf /tmp/family.tar .
 
          4.
 
          5.  Change to the /usr/lpp/cmvc directory.
 
          6.  From the CMVC ftp site:
 
              a.  cd ps/products/cmvc
              b.  cd doc/tr
              c.  binary
              d.  get migtools.tar.Z
 
          7.  Uncompress and untar the file migtools.tar.Z.  This assumes
              that you have changed the directory to /usr/lpp/cmvc:
 
                $ uncompress migtools.tar.Z
                $ tar -xvf migtools.tar
 
              Some of the extracted files are shown below:
 
                db2Convert/db2InsertRemarks
                db2Convert/db2InsertRemarks.bnd
                db2Convert/note1.bnd
                db2Convert/version1.bnd
                db2Convert/*dumptbls
                db2Convert/*dumptblsrems
 
              All the extracted files MUST be located in the
              /usr/lpp/cmvc/db2Convert directory.  DO NOT copy the new
              *.bnd files into the /usr/lpp/cmvc/bind directory.
 
          8.  The latest versions of the ora7dump and ora7dumprems tools
              were developed under Oracle 7.3.4.  Thus, in case that there
              are problems with these tools because you have Oracle 7.1 or
              7.2, then you may need to perform the following step, in
              order to use the appropriate version of the tools:
 
                cp -p  ora7dump.71 ora7dump
                cp -p  ora7dumprems.71 ora7dumprems
 
 
          5.10.1.2  Pre-migration tasks to be done in the target Host B
 
          In the target Host B (AIX 4) do the following:
 
          1.  Login as root.
 
          2.  Install DB2 UDB V5 and create a DB2 instance (default:
              db2inst1).  See the installation instructions from the tech-
              nical report 29.3076 "Configuration and Administration of DB2
 
 
                     Migration tips when moving from one versionanotherC 57
 
 
              Universal Database V5 by users of VisualAge TeamConnection
              V3".
 
          3.  Install CMVC 2.3.1.x for DB2 UDB V5.
 
          4.  Change to the /usr/lpp/cmvc directory.
 
          5.  From the CMVC ftp site:
 
              a.  cd ps/products/cmvc
              b.  cd doc/tr
              c.  binary
              d.  get migtools.tar.Z
 
          6.  Uncompress and untar the file migtools.tar.Z.  This assumes
              that you have changed the directory to /usr/lpp/cmvc:
 
                $ uncompress migtools.tar.Z
                $ tar -xvf migtools.tar
 
              Some of the extracted files are shown below:
 
                db2Convert/db2InsertRemarks
                db2Convert/db2InsertRemarks.bnd
                db2Convert/note1.bnd
                db2Convert/version1.bnd
                db2Convert/*dumptbls
                db2Convert/*dumptblsrems
 
              All the extracted files MUST be located in the
              /usr/lpp/cmvc/db2Convert directory.  DO NOT copy the new
              *.bnd files into the /usr/lpp/cmvc/bind directory.
 
          7.  Create the user id for the CMVC family; the group id must be
              the same as the group id from the DB2 instance.  It is recom-
              mended to use the same name as the old CMVC family.  If pos-
              sible try to use the same actual user number.
 
          8.  Update /etc/hosts and /etc/services with the family name and
              port number.  It is recommended to use the same data as the
              old CMVC family.
 
          9.  Login as the CMVC user ID.
 
          10. Modify the .profile.
 
          11. Logout and login again to have a clean environment.
 
          12. Get the family.tar file obtained in 5.8.1.1, "Pre-migration
              tasks to be done in the source Host A" on page 44, and put it
              in $HOME.
 
          13. Untar the file:
 
 
          58  CMVC FAQ: Migration
 
 
                $ tar -xvf family.tar
 
          14. You will need to update the .profile file in order to reflect
              the necessary environment variables for DB2.  You can take a
              look at the following sample profile for more details:
 
                /usr/lpp/cmvc/install/profile.db2
 
          15. Add the following path to PATH, in order to find the tools
              for migration:
 
                export PATH=$PATH:$CMVC_HOME/db2Convert
 
          16. Ensure that the file permissions and ownership are correct
              for the new files that were just expanded into the new CMVC
              family.
 
                find . -exec chown userId:groupId {} \;
 
              You need to specify the proper userId and groupId, for
              example:
 
                $ find . -exec chown cmpc3mig:db2inst1 {} \;
 
          17. Do not issue "mkfamily".  By using the "tar -xvf" command on
              the tar file you recreated the directories and files needed
              for the family.
 
          18. Create the DB2 database for the CMVC family by using:
 
                $ mkdb
 
              Do not use the -d option for the mkdb command as the command
              needs to read the $HOME/configField files to ensure that the
              Defects, Files and Users tables are created with the appro-
              priate configurable fields.
 
          Up to this point you have recreated the family files and created
          a new (almost empty) database.  The next steps will tell you how
          to populate it with the data from the old database.
 
 
          5.10.2  Step 2: Process most of the tables (except Versions and
          _______________________________________________________________
          Notes)
          ______
 
          The following instructions were obtained from the CMVC Server
          manual, version 2.3, Appendix D "Migrating to CMVC Server V2.3.0
          for DB2".  These instructions apply also for CMVC 2.3.1.
 
          The database consists of several tables.  All these tables,
          except for Versions and Notes, can be migrated at the same time
          by following the procedure below.
 
 
                     Migration tips when moving from one versionanotherC 59
 
 
          In separate steps you can migrate the tables for Versions and
          Notes.  See 5.10.3, "Step 3: Process Versions and Notes" on
          page 61 and 5.10.4, "Step 4: Post-migration steps in target Host
          B" on page 63.
 
 
          5.10.2.1  Dumping tables in source Host A
 
          In the source Host A do the following:
 
          1.  Login as the CMVC family user ID.
 
          2.  Create a directory to store the flat files with the data
              extracted from the tables of the database:
 
                $ mkdir $HOME/flatfiles
 
          3.  Set the environment FLATFILEDIR to this new directory:
 
                $ export FLATFILEDIR=$HOME/flatfiles
 
          4.  Dump the tables (except Notes and Versions) to flat files.
              Ensure that $ORACLE_PASS is properly set with the password of
              the CMVC family user id and then issue:
 
                $   $CMVC_HOME/db2Convert/ora7dumptbls
 
          5.  Dump the Notes and Versions tables to flat files.  Ensure
              that $ORACLE_PASS is properly set with the password of the
              CMVC family user id and then issue:
 
                $   $CMVC_HOME/db2Convert/ora7dumptblsrems
 
          6.  The above tools may create temporary files in /tmp.  Just in
              case these files contain warnings or errors, take a look at
              them.
 
          7.  Take a look at the files in $FLATFILEDIR, which contain the
              extracted data.  These files have 1 row per object, and the
              fields for the object are separated by a vertical bar "|".
 
              The records for the Notes and Versions files will be sepa-
              rated by the sequence: |_|
 
              It might be possible that some fields such as in the abstract
              of Defects may contain "|"; in this case you need to replace
              these instances to another character, such as "!"  in order
              to avoid problems when parsing the data during the import
              phase later on; that is, a field might be truncated because
              it found a "|" that is not a field separator.
 
          8.  Make a tar file of the flat files:
 
 
          60  CMVC FAQ: Migration
 
 
                $ cd $HOME
                $ tar -cvf flatfiles.tar flatfiles
 
 
          5.10.2.2  Loading most of the tables in target Host B
 
          In the target Host B do the following:
 
          1.  Login as the CMVC family user ID.
 
          2.  Create a directory to store the flat files with the data
              extracted from the tables of the database:
 
                $ mkdir $HOME/flatfiles
 
          3.  Set the environment FLATFILEDIR to this new directory:
 
                $ export FLATFILEDIR=$HOME/flatfiles
 
          4.  Get the flatfiles.tar file and untar it:
 
                $ tar -xvf flatfiles.tar
 
          5.  Load (insert/import) the tables:
 
                $   $CMVC_HOME/db2Convert/ora72db2tbls
 
          6.  The above tool creates temporary files in /tmp.  Just in case
              these files contain warnings or errors, take a look at them.
 
          7.  Make a backup of your database now.
 
 
          5.10.3  Step 3: Process Versions and Notes
          __________________________________________
 
 
          5.10.3.1  Dumping Versions and Notes in source Host A
 
          The dumping of the Versions and Notes tables was already accom-
          plished in 5.10.2.1, "Dumping tables in source Host A" on
          page 60.
 
 
                     Migration tips when moving from one versionanotherC 61
 
 
          5.10.3.2  Loading Versions and Notes in target Host B
 
          In the target Host B do the following:
 
          1.  You need to bind these temporary bind files.  You will rebind
              the original, permanent bind files again at the end of the
              process.
 
              a.  $ db2 connect to $LOGNAME
              b.  $ db2 bind /usr/lpp/cmvc/db2Convert/db2InsertRemarks.bnd
              c.  $ db2 bind /usr/lpp/cmvc/db2Convert/note1.bnd
              d.  $ db2 bind /usr/lpp/cmvc/db2Convert/version1.bnd
 
          2.  Specify the directory where the "flat files" are located,
              such as:
 
                $ export FLATFILEDIR=$HOME/flatfiles
 
          3.  Edit the $FLATFILEDIR/Versions.unl file and delete the first
              entry that contains all 0's.
 
              If you do not do this, then you will get an error when trying
              to import it, because it will be a duplicate one.
 
          4.  Insert the Notes:
 
                $ db2InsertRemarks  n  $FLATFILEDIR/Notes.unl
 
          5.  Insert the Versions:
 
                $ db2InsertRemarks  v  $FLATFILEDIR/Versions.unl
 
          6.  If there were remarks in the Versions file that contained one
              or more |, these rows were not processed.  These rows were
              placed in $FLATFILEDIR/Versions.unl.aux.  You will need to
              edit this file to remove from the remarks field, any | (ver-
              tical bars) or to replace them with exclamation points.  This
              field is located between the 7th and the 8th vertical bar.
              The changeDate field is located between the 8th and the 9th
              vertical bar; be careful to NOT change these other vertical
              bars that are true field separators.
 
          7.  After you edit the $FLATFILEDIR/Versions.unl.aux, you can
              insert the remaining versions into the database:
 
                $ db2InsertRemarks  v  $FLATFILEDIR/Versions.unl.aux
 
          8.  Rebind again with the original, permanent bind files:
 
                $ db2bind $LOGNAME
 
 
          62  CMVC FAQ: Migration
 
 
          5.10.4  Step 4: Post-migration steps in target Host B
          _____________________________________________________
 
          Perform the tasks described in 4.4, "Post-migration steps to be
          done in target Host B" on page 30.
 
 
          5.11  WARNING WHEN MIGRATING A DB2 FAMILY FROM AIX 3 TO AIX 4
 
          NOTES:
 
          1.  Because there are differences between AIX 3 and AIX 4, we
              make 2 versions of CMVC starting with 2.3.0.21, one for AIX 3
              and another for AIX 4.  However, for CMVC 2.3.1, we provide
              only the AIX 4 version.
 
          2.  We do NOT recommend to use CMVC 2.3.0.25 for AIX 3 on an AIX
              4 system; thus, from our home page you can download the the
              desired AIX 4 code for CMVC 2.3.0.25 or 2.3.1.4.
 
          3.  The DB2 variable (DB2DBDFT) is needed to identify the default
              database to be used.
 
 
          5.11.1  Changing the locale of a DB2 database (using only English
          _________________________________________________________________
          characters)
          ___________
 
          If your source CMVC DB2 database uses the En_US locale (the
          default one in AIX 3), and if you are using only English charac-
          ters (that is, no accented characters), then you can move the DB2
          database as follows in order to change the locale to en_US (the
          default in AIX 4).  This procedure is based on the technical
          report  29.3088 "Moving a VisualAge TeamConnection Version 3
          Family":
 
          1.  Follow the instructions of the TR to export the data from the
              source CMVC DB2 database.
 
          2.  When creating the new target CMVC family, specify LANG=en_US
              and do not specify the DB2_CODESET and DB2_TERRITORY in order
              to pick up the default values.
 
          3.  Follow the instructions of the TR to import the data into the
              target CMVC DB2 database.
 
          This TR is available from:
 
            ftp://ftp.software.ibm.com/ps/products/teamconnection/papers/trmovedb.pdf
 
 
                     Migration tips when moving from one versionanotherC 63
 
 
          5.11.2  New DB2_CODESET and DB2_TERRITORY variables
          ___________________________________________________
 
          The mkdb CMVC installation utility (which in turn calls the
          mkrmchdf shell script) and the sample profile.db2 were changed to
          use codeset/territory for DB2 during the creation of a DB2 data-
          base for the CMVC family.  The new variables are DB2_CODESET and
          DB2_TERRITORY.
 
          In common situations this is not really needed, but when
          migrating CMVC DB2 families from AIX 3 to AIX 4 it is critical
          that these variables are in sync: in AIX 3 the default is
          En_US.IBM-850 but in AIX 4 the new default is en_US.ISO8859-1.
 
          If the user does not specify these variables, they will default
          to the proper value according to the version of AIX.
 
          See the sample /usr/lpp/cmvc/install/profile.db2 for actual usage
          of these variables.
 
          In short, if you have a family created in AIX 3 that used the
          defaults:
 
            LANG=En_US
            DB2_CODESET="IBM-850"
            DB2_TERRITORY="En_US"
 
          Then you need to install the locale En_US in AIX 4 (the output of
          "locale -a" should show En_US), and specify the above 3 variables
          when creating the database in AIX 4; do not use the default en_US
          locale in AIX 4 for that family.
 
          You can use the following DB2 command to find out this data:
 
            $ db2 get database configuration for $CMVC_FAMILY | head
 
          The output would look like this (see the last 4 lines):
 
                  Database Configuration for Database cmpc3db2
 
            Database configuration release level                    = 0x0800
            Database release level                                  = 0x0800
 
            Database territory                                      = en_US
            Database code page                                      = 819
            Database code set                                       = ISO8859-1
            Database country code                                   = 1
 
          If the En_US locale is not installed or it is not properly speci-
          fied, then when doing the DB2 restore operation in AIX 4 the SQL
          2548 error message will indicate the failure.
 
 
          64  CMVC FAQ: Migration
 
 
          5.12  CMVC ORACLE 7.1 CODE CANNOT WORK WITH ORACLE 7.3 (NOR VICE
          VERSA)
 
          Due to the many changes introduced in Oracle 7.3, the compat-
          ibility was broken with applications that were compiled with
          Oracle 7.1 or 7.2.  Thus, for CMVC 2.3.1 we provide whenever pos-
          sible two versions for Oracle:
 
          o   One natively compiled with 7.1 and which also works with 7.2.
              This version does not work with 7.3.
 
          o   Another natively compiled with 7.3 and which does not work
              with 7.1 or 7.2.
 
          NOTE:  Because Oracle 7.1, 7.2 are not going to be maintained by
          Oracle after 31-Dec-1998, we may provide only the CMVC server for
          Oracle 7.3.
 
 
          5.13  MIGRATION FROM CMVC 2.2 USING ORACLE 6 TO CMVC 2.3 USING
          DB2
 
          This section describes the overall migration scenario from CMVC
          2.2 using Oracle 6 to CMVC 2.3.0 using DB2 V2 on AIX 3.2.5.  For
          mode details, see the appendices B and D from the CMVC 2.3 Server
          manual.
 
          This scenario assumes that the host is the same, and that DB2 V2
          is installed in the host.
 
          1.  Migrate from CMVC 2.2 for Oracle 6 to CMVC 2.2 for DB2 V2 on
              AIX 3.2.5.
 
              This is necessary because there is no support for Oracle 6 on
              CMVC 2.3, because Oracle dropped support for version 6 in
              December 1994.  CMVC 2.3 supports only Oracle 7.
 
          2.  It is necessary to perform db2bind after the migration to
              DB2.
 
          3.  Verify that the migration is successful before continuing.
 
          4.  Upgrade from CMVC 2.2 for DB2 V2 to the latest version of
              CMVC 2.3 for DB2.
 
          5.  It is necessary to perform db2bind in the new family.
 
          6.  Verify that the upgrade was successful.
 
 
                     Migration tips when moving from one versionanotherC 65
 
 
          5.14  MIGRATING FROM ORACLE 6 IN AIX 3.2.5 TO ORACLE 7.1 IN AIX
          4.1
 
          The migration route that we recommend is as follows:
 
          1.  Migrate from CMVC 2.1/2.2 using Oracle 6 on AIX 3.2.5 to CMVC
              2.1/2.2 using Oracle 7.0 on AIX 3.2.5.
 
              NOTES:
 
              a.  Use the Appendix C of the CMVC 2.3 Server manual.
              b.  There is no support in CMVC 2.3 for Oracle 6.
 
          2.  Migrate from CMVC 2.1/2.2 Oracle 7.0 on AIX 3.2.5 to CMVC 2.3
              Oracle 7.0 on AIX 3.2.5.
 
              This is very easy.  See Appendix B of the CMVC 2.3 Server
              manual.
 
          3.  Migrate from CMVC 2.3 Oracle 7.0 on AIX 3.2.5 to the latest
              version of CMVC 2.3 (2.3.0.25) Oracle 7.1 on AIX 3.2.5.
 
          4.  Migrate from CMVC 2.3.0.25 Oracle 7.1 on AIX 3.2.5 to CMVC
              2.3.1.4 Oracle 7.1 on AIX 4.1.
 
 
          66  CMVC FAQ: Migration
 
 
            6.0  PREPARING TO MIGRATE TO VISUALAGE TEAMCONNECTION VERSION 3
 
 
          This chapter provides a brief description of VisualAge
          TeamConnection Enterprise Server Version 3, the successor of
          CMVC.  It describes some recommendations for the migration of a
          CMVC family into VisualAge TeamConnection.
 
          In some cases it is necessary to clone the CMVC family from one
          host to another in order to work with CMVC 2.3.1, which is neces-
          sary to migrate to VisualAge TeamConnection.  For more details
          see 4.0, "Cloning/migration of a CMVC family from one host to
          another" on page 27 and 5.0, "Migration tips when moving from one
          version of CMVC to another" on page 33.
 
 
          6.1  WHY VISUALAGE TEAMCONNECTION?
 
          CMVC is an industrial strength source code library with extensive
          support for tracking of changes through defects and features, and
          a configurable and extendible process model (by using user
          exits).  However, the role of the development library is
          evolving.
 
          VisualAge TeamConnection Enterprise Server Version 3 is IBM's
          next generation of library management.  Actually, TeamConnection
          is much more than a library.  TeamConnection extends the CMVC
          process model to include a tightly integrated build facility, a
          highly customizable packaging facility, and support for network
          distribution of your packaged code.
 
          Furthermore, TeamConnection incorporates an object repository and
          API's to allow tools to store their data (that is, large grained
          objects such as files and small grained objects such as data
          field information created by 4GL languages like IBM's VisualAge
          Generator in TeamConnection.
 
          These integrated tools can take advantage of TeamConnection's
          releases, defects, features, etc.  so that all of the developer's
          data is managed and versioned together.  This dramatically
          reduces the overhead of using a collection of tools in the devel-
          opment process.
 
          VisualAge TeamConnection provides a Web client that allows the
          users to interact with a Web browser to issue TeamConnection com-
          mands.  Also, TeamConnection offers a Lotus Notes federation in
          which a Lotus Notes database can be used to track things such as
          design documents and test cases, and then track TeamConnection
          features and defects.
 
 
             Preparing to migrate to VisualAge TeamConnection Version 3  67
 
 
          Finally, the object repository interface allows for tools used by
          anyone in your entire development team (document writers, mar-
          keting specialists, testers, etc.) to manage and version their
          data in one place.
 
          Now everyone's data can evolve without lots of manual trans-
          lation.  For example, a software architect's specification can be
          tracked as the software developer writes code to match the spec-
          ifications.  This transition is trackable and auditable.
 
          CMVC and it successor product VisualAge TeamConnection Enterprise
          Server Version 3 have a lot in common but they are not compatible
          between each other.  That is, you cannot use a CMVC client with a
          TeamConnection server, nor a TeamConnection client with a CMVC
          server.
 
          This means that if you want to use TeamConnection, then you have
          to migrate your CMVC family into TeamConnection.
 
 
          6.2  MIGRATION FROM CMVC TO VISUALAGE TEAMCONNECTION
 
          The TeamConnection migration utility "migcmvc" uses CMVC client
          commands.  The only requirement from TeamConnection is that the
          CMVC client be installed on the same system as the TeamConnection
          server for a migration to occur.
 
          In principle, any CMVC client, version 2.2 or later, will be able
          to support TeamConnection migration.  However, you must upgrade
          your version of the CMVC family server to the latest supported
          version of CMVC 2.3.1 before migrating to TeamConnection.
 
          The following shell script samples will help you to prepare the
          CMVC family for migration:
 
          o   B.1.1, "Redefine ChangeView to facilitate the migration to
              TeamConnection" on page 91
          o   B.1.2, "Complete a release prior to migration" on page 91
          o   B.1.3, "Reassign user's work and delete users" on page 91
          o   B.1.4, "Delete a release from a family" on page 92
          o   B.1.5, "Converting SCCS keywords to TeamConnection Keywords"
              on page 92
 
          It is recommended that you perform the migration from CMVC to
          VisualAge TeamConnection by following the instructions from the
          technical report 29.3113, "Migration from CMVC 2.3.1 to VisualAge
          TeamConnection Enterprise Server Version 3".  It is available
          from:
 
            ftp://ftp.software.ibm.com/ps/products/teamconnection/papers/trcm2tc3.pdf
 
 
          68  CMVC FAQ: Migration
 
 
                                7.0  DEALING WITH COMMON MIGRATION PROBLEMS
 
 
          This chapter provides some guidance on how to deal with common
          migration problems.
 
 
          7.1  HOW TO DEAL WITH MESSAGES 0011-110 AND 0011-111
 
          QUESTION:
 
          When I try to start the CMVC family for the first time after the
          migration procedure has been completed, I am getting one of the
          following error messages saying that one element of the Sequence
          table is smaller than some of the values found in another table:
 
            0011-110 The value of lastSerial where name='source' ...
 
            0011-111 The value of lastSerial where name='general' ...
 
          ANSWER:
 
          The Sequence table is extremely important to CMVC because it pro-
          vides the next number/id to be used for the internal ids for the
          objects.  One main cause of this corruption of the Sequence table
          or related tables is when the user directly alters the database
          bypassing CMVC; another possible cause is an error during the
          migration.
 
          During the migration steps it might be possible that the original
          Sequence table of the target CMVC family database has the default
          values (defect=0, source=0, general=2) when a new family is
          created.  If this is the case, then when loading the tables from
          the source database, some DBMS will not insert the appropriate
          values because of the duplicate key constraint, and thus the
          correct values are not loaded.
 
          To solve this problem, restart the migration steps and delete the
          values for the Sequence table.  In that way, during the
          import/load/restore step the correct values will be inserted.
          Otherwise, you may want to manually update the Sequence table in
          the target database with the correct values from the Sequence
          table from the source database.
 
          If you get this error message meanwhile you are not doing any
          migration steps, then our recommendation at this stage is to take
          a backup now of both the database and of the file system of the
          family.  Then, use the latest good backup and reestablish your
          family database and file system.  If at this stage the server is
          OK, then keep using it.
 
 
                                 Dealing with common migration problems  69
 
 
          7.2  HOW TO CREATE A HOST LIST ENTRY DIRECTLY INTO THE DATABASE
 
          QUESTION:
 
          A common mistake when migrating CMVC families from one host to
          another is to fail to add before the migration a host list entry
          for the new target host.  The symptom is the error message
          0010-057 when trying to run a CMVC command in the newly migrated
          CMVC family.
 
          At this point, the CMVC family administrator "has painted himself
          into a corner", because in CMVC it is required to have a valid
          host list entry in order to do invoke CMVC commands.
 
          ANSWER:
 
          To overcome this problem it is necessary to add a host list for
          the CMVC superuser (which by default has the internal userid of
          1) by using SQL statements directly to the database, bypassing
          CMVC.  By the way, this is the method used by the 'mkdb' when
          creating the CMVC database.
 
          The following sequence is for DB2, but it is similar for other
          DBMSs:
 
          1.  Logon as the CMVC family administrator.
 
          2.  Connect to the database:
 
                $  db2 connect to $CMVC_FAMILY
 
          3.  Use interactive SQL.  In DB2 (command line processor) type:
 
                $  db2
 
          4.  Issue the following insert command (one single line):
 
                db2 => insert into Hosts (userId, name, login, address)   \
                       values (1,'$CLIENT_HOSTNAME', '$CLIENT_LOGIN',0)
 
              The "userId=1" represents the first CMVC userId, which is the
              superuser when the CMVC family was created.
 
              The variables CLIENT_HOSTNAME and CLIENT_LOGIN represent the
              hostname and the system login from where the superuser will
              login.
 
              The CLIENT_HOSTNAME should be the string that is the complete
              name returned by the command "host".  For example, if your
              host is "carcps06", then do "host carcps06" and you will get
              something similar to:
 
                carcps06.raleigh.ibm.com is 9.67.238.18
 
 
          70  CMVC FAQ: Migration
 
 
              Then, the CLIENT_HOSTNAME should be
              "carcps06.raleigh.ibm.com".
 
              You can also issue the "ping" command, which also shows the
              complete host name with the domain name.
 
          5.  Commit the transaction (otherwise the value will not be seen
              by CMVC), by doing:
 
                db2 => commit work
 
          6.  Query the Hosts table to ensure that the data is correct:
 
                select userid,login,name from Hosts where userId=1
 
          7.  Terminate the interactive SQL session:
 
                db2 => quit
 
          8.  In case of DB2, disconnect:
 
                $  db2 terminate
 
 
          7.3  AFTER MIGRATION I CANNOT DO LEVEL -COMPLETE OR DEFECT
          -ASSIGN
 
          QUESTION:
 
          After migrating a CMVC family, one or more of the following DB2
          errors are shown when trying to perform Level -complete or Defect
          -assign:
 
            SQL0051N
            SQL0305N
            SQL0503N
            SQL1328N
 
          ANSWER:
 
          The most likely cause is that the record with id=0 in the
          Releases table does not have the proper values.  To fix this
          problem do the following:
 
          1.  Invoke the DB2 Command Line Processor (CLP) and specify that
              the semicolon (;) is the termination character:
 
                $ db2 -t
 
          2.  Verify that there is a record with id=0 in the Releases
              table:
 
                db2 => select id, compId, userId, relSize from Releases where id=0;
 
 
                                 Dealing with common migration problems  71
 
 
              The output should look like this:
 
                ID       COMPID   USERID      RELSIZE
                -------  -------  --------  ---------
                      0        0         0          0
 
                  1 record(s) selected.
 
          3.  If the data for id=0 does not have "0" in the above fields,
              then do:
 
                db2 => update Releases set compId=0, userId=0, relSize=0 where id=0;
 
          4.  If there is no data for id=0, then insert a new record:
 
                db2 => insert into Releases (id, name, compiId, binding, description,
                db2 (cont.) => userId, addDate, dropDate, lastUpdate, relSize)
                db2 (cont.) => values (0, null, 0, null, null, 0, null, null, null, 0)
                db2 (cont.) => ;
                db2 => commit;
 
          5.  Exit from the DB2 CLP and terminate the connection.
 
                db2 => quit;
                $ db2 terminate
 
 
          7.4  AFTER MIGRATION I DO NOT SEE THE HISTORY WHEN DOING FILE
          -VIEW -LONG
 
          QUESTION:
 
          After migrating a CMVC family, I do not see the version history
          when performing File -view -long.
 
          ANSWER:
 
          The most likely cause is that the record with id=0 in the Ver-
          sions table does not exist.  To fix this problem do the fol-
          lowing:
 
          1.  Invoke the DB2 Command Line Processor (CLP) and specify that
              the semicolon (;) is the termination character:
 
                $ db2 -t
 
          2.  Verify that there is a record with id=0 in the Versions
              table:
 
                db2 => select id, previousId, sourceId, userId from Versions where id=0;
 
              The output should look like this:
 
 
          72  CMVC FAQ: Migration
 
 
                ID          PREVIOUSID  SOURCEID    USERID
                ----------- ----------- ----------- -----------
                          0           0           0           0
 
                  1 record(s) selected.
 
          3.  If there is no data for id=0, then insert a new record:
 
                db2 => insert into Versions (id, previousId, sourceId, userId, rawLines,
                db2 (cont.) => codeLines, commentLines, remarks, changeDate, SID, verSize)
                db2 (cont.) => values (0, 0, 0, 0, 0, 0, 0, null, null, null, 0)
                db2 (cont.) => ;
                db2 => commit;
 
          4.  Exit from the DB2 CLP and terminate the connection.
 
                db2 => quit;
                $ db2 terminate
 
 
          7.5  AFTER MIGRATION I CANNOT LIST FILES WITH UNCOMMITTED CHANGES
 
          QUESTION:
 
          After migrating a CMVC family, I cannot list the files with
          uncommitted changes; they are not included in the output of the
          Report command.
 
          ANSWER:
 
          The most likely cause is that the record with id=0 in the Levels
          table does not exist.  To fix this problem do the following:
 
          1.  Invoke the DB2 Command Line Processor (CLP) and specify that
              the semicolon (;) is the termination character:
 
                $ db2 -t
 
          2.  Verify that there is a record with id=0 in the Levels table:
 
                db2 => select id, releaseId, userId from Levels where id=0;
 
              The output should look like this:
 
                ID          RELEASEID   USERID
                ----------- ----------- -----------
                          0           -           -
 
                  1 record(s) selected.
 
          3.  If there is no data for id=0, then insert a new record:
 
 
                                 Dealing with common migration problems  73
 
 
                db2 => insert into Levels (id, releaseId, userId, addDate, commitDate,
                db2 (cont.) => name, lastUpdate, state, type)
                db2 (cont.) => values (0, null, null, null, null, null, null, null, null)
                db2 (cont.) => ;
                db2 => commit;
 
          4.  Exit from the DB2 CLP and terminate the connection.
 
                db2 => quit;
                $ db2 terminate
 
 
          7.6  AFTER UPGRADE TO 2.3.1, THE DATE FIELDS ARE TRUNCATED
 
          QUESTION:
 
          I just upgraded to CMVC 2.3.1 and I performed the dbSetDate tool
          to convert the dates from from yy/mm/dd to yyyy/mm/dd.
 
          During my testing, I uncovered the following irregularity in the
          section 'versions' in the output of File -> Show Details (File
          -long -view):
 
              versions:
                   user     date     SID
                   -------- -------- -------------------------------------------
                   mannk    1998/12/ 1.12.1.2
 
          It appears the date field in the output is fixed to a length of 8
          and is no longer big enough to support the new size of the date.
 
          Is this OK? If not, how can I fix it?
 
          ANSWER:
 
          The problem is that you are using the new 2.3.1 code for CMVC,
          but the message catalog (cmvc.cat) for 2.3.0 is found first in
          the NLS path and thus, the date fields are truncated.
 
          Ensure that you have installed the message catalog for CMVC 2.3.1
          for the server or the client in your machine. Use the following
          commands to find out what is the version of the message catalogs:
 
          o   For the CMVC server:
 
                  Report -testServer
 
          o   For the CMVC client:
 
                  Report -testClient
 
          The result should be something like this:
 
 
          74  CMVC FAQ: Migration
 
 
              The message catalog is available (Version 2.3.1.4, SID=1.285.2.175).
 
          If the Version says 2.3.0.x then you need to adjust the NLSPATH
          to reflect the location of the 2.3.1 message catalog file.
 
 
          7.7  0010-256 ERROR MESSAGES AFTER MIGRATING FROM CMVC V1.1 TO
          V2.X
 
          There is a potential problem after migrating a CMVC family from
          V1.x to V2.x in which the command "Defect -configInfo" will not
          work (error message 0010-256 for txDefectConfig in the client
          side, and error 0010-636 with a database error indicating more
          than 1 row).
 
          It might be possible in CMVC 1.x to have multiple defaults in one
          configuration item type (from config.ld) which were loaded into
          the Config table and this is the root problem, because in CMVC
          2.2, if there is a default, it should be only 1 and no more.
 
          In CMVC 1.1, there was no checking for this situation, and the
          migration step does not touch this table and does not reload it
          fresh from the source config.ld file.
 
 
          7.7.1  Fixing CMVC V1.1 to V2.x migration problems with "chcfg"
          _______________________________________________________________
 
          Immediately after the migration is over, but before starting the
          CMVC daemons, it is necessary to update the file config.ld to
          avoid multiple defaults for an item, and then to use "chcfg" to
          reload the items for the Config table (which must be successful).
 
 
                                 Dealing with common migration problems  75
 
 
          76  CMVC FAQ: Migration
 
 
                                     8.0  RENAMING AND MOVING A CMVC FAMILY
 
 
          8.1  RENAMING A CMVC FAMILY
 
          SCENARIO:
 
          1.  Current CMVC family is on host using a database supported by
              CMVC (in this example we will use Oracle 7).
 
          2.  We want to keep the CMVC family in the same host, but we want
              to change the family name.
 
          RECOMMENDATION:
 
          Changing the name of a CMVC family is rather straight forward,
          but there are a couple of things to watch out for, so here is our
          recommended procedure.
 
          By the way, this procedure is particularly useful when you wish
          to move data from the system (default) database to separate data-
          base files.
 
          NOTES:
 
          1.  The following procedure can also be used for migration of
              CMVC families when it is desired to change operating systems,
              versions of CMVC, and/or versions of a database in one step.
              However, it takes longer than following the procedures docu-
              mented in the CMVC Server manual.
 
          2.  For details on how to use DB2 export and DB2 import to move a
              database from one place to another, see the TR 29.3088
              "Moving a VisualAge TeamConnection Version 3 Family".  The
              main concepts discussed in the TR also apply to a CMVC
              family.  See 2.2.1, "Other related technical reports" on
              page 7.
 
          The recommended sequence is shown below:
 
          1.  Export the database tables and indexes of the current data-
              base.  A sample syntax is provided in the CMVC Server manual
              in page 195, "Exporting from Oracle 6" in Appendix C.
 
          2.  Drop the current copy of the database.
 
              This is a simple alternative to actually renaming the tables,
              indexes, etc in the existing instance.
 
 
                                      Renaming and moving a CMVC family  77
 
 
              a.  Execute: rmdb
              b.  If using Oracle, drop the table space and the index space
                  pointed to by environment variables: ORACLE_TBLSP and
                  ORACLE_NDXSP.
 
          3.  Change the name of the family in /etc/passwd.
 
              You can use the appropriate system administration tool for
              the appropriate platform.  For example, in AIX you can use
              smit.
 
          4.  Change the ownership of all files in the family account.
 
              a.  Login as root.
              b.  Issue the following commands:
 
                    $ mv /home/FAMILY_NAME /home/NEW_FAM_NAME
                    $ find /home/NEW_FAM_NAME -exec chown NEW_FAM_NAME {} \;
 
                  Where FAMILY_NAME is the old family name and NEW_FAM_NAME
                  is the new family name.
              c.  Log out as root.
 
          5.  Update the .profile of the family user ID.
 
              Update the environment variables that reference the family
              name, such as CMVC_FAMILY, CMVC_TOP (if used), and PATH.
 
              Also, this would be a good time to compare your .profile to
              our sample profile in /usr/lpp/cmvc/install/profile.,
              where  is a database name.
 
          6.  Find all SCCS archive "p." files in the vc tree and change
              the family name in these files:
 
              a.  Log into the family user ID.
              b.  Issue the following command:
 
                    $ find /home/NEW_FAM_NAME/vc -type -name "p.*" -print e
                      while read file
                      do
                         awk 'BEGIN{print "%s/'${OLD_FAMILY}'/'${FAMILY}'/";    \
                         print "wq"}' /dev/null e ex ${file} > /dev/null 2>&1
                     done
 
              c.  If you would prefer to save the old copies of each file,
                  you can use the following command:
 
                    $ for i in `find /home/NEW_FAM_NAME/vc -type -name "p.*" -print`
                      do
                         mv $i ${i}.old
                         sed "s/${OLD_FAMILY}/${NEW_FAMILY}/g" ${i}.old > $i
                         # rm ${i}.old
                      done
 
 
          78  CMVC FAQ: Migration
 
 
          7.  Update /etc/hosts and /etc/services with the new family name.
 
          8.  Create the new database using Oracle:
 
              a.  Create a new table space and a new index space.
              b.  Update the .profile to use the new index and table space.
              c.  Issue: mkdb
 
                  NOTE:  If you originally issued "mkdb -d" to create the
                  database you will either need to do it here, or perform
                  the step 8e below.
              d.  Delete the preloaded table entries created by mkdb:
 
                    $ sqlplus family/passwd
                    > delete from users;
                    > delete from hosts;
                    > delete from config;
                    > delete from interest;
                    > delete from authority;
                    > delete from sequence;
                    > delete from components;
                    > delete from compmembers;
                    > delete from levels;
                    > delete from releases;
                    > delete from versions;
                    > delete from cfgrelproc;
                    > delete from cfgcomproc;
                    > commit;
                    > quit;
 
              e.  Run chfield for customized configurable fields.
                  o   chfield -object Defect -source $HOME
                  o   chfield -object Feature -source $HOME
                  o   chfield -object File -source $HOME
                  o   chfield -object User -source $HOME
              f.  Temporarily drop the indexes to speed up the import of
                  data.  The following shell script can be used to create
                  the shell script shown in Figure 1 on page 80:
 
 
                                      Renaming and moving a CMVC family  79
 
 
            #!/usr/bin/ksh
            OUTPUT=drop.index.sh
 
            # Create a file with instructions for converting the CMVC script
            # used to create indexes into one that drops them.
            # It has Oracle specific syntax.
            cat < sed.list
            s/unique //
            s/create/drop/
            s/$/;/
            EOF!
 
            # The file index.db is specific to Oracle.  There are others for
            # the other databases supported by CMVC.
 
            grep create $CMVC_HOME/install/index.db e sed -f sed.list > $OUTPUT
            echo "commit;
            quit;" >> $OUTPUT
 
            # Run SQL script to drop indexes
            sqlplus $ORACLE_DBA @${OUTPUT}
            rm $OUTPUT sed.list
 
            exit 0
 
          Figure 1. Script to create and run SQL instructions to drop
                    indexes
 
 
              g.  Import data.
 
                  Please consult your database documentation for the proce-
                  dure to import data.
 
                  CMVC provides the command to use with Oracle 7 in page
                  196, step 5 of "Importing to Oracle 7" in Appendix C of
                  the CMVC Server manual.
 
                  If problems occur on a particular table, consult the
                  database documentation for the procedure to re-try just
                  that table.
 
                  If problems occur importing the Defects, Features, Files
                  or Users tables, see the step 8e on page 79.
 
                  If all else fails, drop the table and then import it
                  again (the table will be imported into the default table
                  space).
              h.  Recreating indexes.
 
                  You need to run a slightly modified version of the file
                  that defines the indexes in /usr/lpp/cmvc/install, such
                  as index.db.
 
 
          80  CMVC FAQ: Migration
 
 
                  Please consult your database documentation for proce-
                  dures.  CMVC provides a script that modifies the index.db
                  to use with Oracle 7 in step 6 of "Importing to Oracle 7"
                  in Appendix C of the CMVC Server manual.
 
 
          8.2  MOVING A CMVC DATABASE FROM A DB2 INSTANCE TO A NEW ONE
 
          SCENARIO:
 
          1.  The database for a CMVC family is stored in one DB2 instance.
 
          2.  We want to move the database for the CMVC family from the
              current DB2 instance to a new DB2 instance.
 
          RECOMMENDATION:
 
          The recommended sequence to move an existing family from one DB2
          instance to another is as follows:
 
          1.  Create and start the new DB2 instance.
 
          2.  Login as the family account.
 
          3.  Stop the family and make a backup of the database.  For
              details see 2.5, "How to make a complete backup of your CMVC
              family" on page 10.
 
          4.  Change the family's DB2INSTANCE environment variable to point
              to the new instance, and change DB2_DBPATH to point to the
              new location of the family in the new instance (if needed).
 
              Logoff and login again to refresh the environment variables.
 
          5.  Make the family user ID a member of the new instance's
              primary group in order to have SYSADM authority on the data-
              base.
 
          6.  Restore the database.  For details see 2.6, "How to restore a
              CMVC family from a complete backup" on page 15.
 
          7.  If you do a test run first, you will have to uncatalog the
              new database before you can restore it again.
 
          8.  Restart the family.
 
          This sequence will leave all the old database files on the system
          and leave the old database cataloged on the old instance.  At
          some stage you will want to delete all these old database files
          and to uncatalog the old database from the original instance.
 
 
                                      Renaming and moving a CMVC family  81
 
 
          82  CMVC FAQ: Migration
 
 
                         9.0  MIGRATING DATA FROM LIBRARY SYSTEMS INTO CMVC
 
 
          CMVC uses the Unix SCCS utility as the versioning mechanism for
          the files.  However, the end users of CMVC do not deal directly
          with SCCS.
 
          Some customers already use SCCS in a direct way to store versions
          of files, and when these customers want to migrate their SCCS
          versioning files into CMVC, they need to perform a migration
          process; they cannot just simply copy their existing SCCS files
          into the CMVC versioning tree ($HOME/vc).
 
 
          9.1  BRIEF EXPLANATION OF SCCS
 
          The SCCS library system is provided free with most Unix operating
          systems.  It does not have tracking, it cannot handle binary
          files and it does not provide a GUI; therefore this tool is easy
          to outgrow.  That is why CMVC provides a migration from SCCS.
 
          Of course, there are many other simple library systems whose
          users would benefit from CMVC.
 
          For a useful shell script to import existing SCCS files into
          CMVC, see B.2.1, "Import a release from directory structure" on
          page 93
 
 
          9.1.1  Explanation of migration from SCCS to CMVC
          _________________________________________________
 
          NOTE:  The following explanation was given by Gary Warner, Soft-
          ware Tools Support, IBM Austin.
 
          All of the migration scripts for SCCS files (Filemap, Fileimport,
          Filemigrate, and xecit) are found in the /usr/lpp/cmvc/bin direc-
          tory on the CMVC client.
 
          You can use these SCCS files provided you import or migrate them
          into the CMVC development environment.  The SCCS File Import and
          Migration Tools provide a means by which CMVC users can bring
          SCCS text files into the CMVC development environment.
 
          To use these tools, the destination CMVC family must use SCCS as
          its underlying version control mechanism.
 
          The SCCS File Import and Migration tools are documented in the
          'Bringing SCCS Files Under CMVC Control' section of the IBM CMVC
 
 
                          Migrating data from library systems into CMVC  83
 
 
          Server manual.  Refer to the discussion in this section for the
          advantages/disadvantages of each method.
 
          When SCCS files are imported, their version number in the CMVC
          development environment becomes 1.1.  We recommend that users
          keep a copy of their map files so that they can look back to
          which version of each file they imported.
 
          When SCCS files are migrated, all of the versions of the file are
          brought into the CMVC development environment.  The user speci-
          fies which version is to be known as the current version in a
          release.  The user does not have to assign each branch of an SCCS
          file to a release; they can do this later.
 
          When SCCS files are migrated into the CMVC development environ-
          ment, the version history and remarks will be captured.  If a
          CMVC user ID exists for the user who created the SCCS version,
          then this information will be retained.  If a CMVC user ID does
          not exist for the user who created the SCCS version, then the
          information will be recorded as the user who is performing the
          migration.
 
          Common files are supported with the import and migration tools if
          all releases that are to contain common files are processed by
          the Fileimport or Filemigrate scripts simultaneously.  This is
          accomplished by supplying more than one map file name as parame-
          ters to these scripts.
 
          The Migrate command is used to bring an SCCS file into CMVC.
          This is essentially File -create with the command and action
          changed to Migrate -migrate and with an additional -version flag.
 
          The File -create command creates an s. file at version 1.1 from
          the input file.  The Migrate command creates all versions in an
          input s. file and makes one of them the "current" version.
 
          The Migrate command uses a shell script named sclean which is in
          the CMVC bin directory (with cmvcd) to "clean" the file and to
          tell the Migrate command what versions are in it.  The "cleaning"
          task means to remove any flags that restrict access of the file
          to certain logins, and sets a flag to allow multiple gets for
          edit.
 
          The sclean script writes the version information to stdout which
          is then read by the Migrate command.  This information is:
 
            #versions
            deltanum previous SID date time username
            remark lines, if any
            
            repeat for other versions in deltanum order.
 
          The sclean script gets this stuff from the header of the SCCS
          file.  The SCCS utility numbers each delta as it is created.
 
 
          84  CMVC FAQ: Migration
 
 
          This is "deltanum".  The "previous" is deltanum of the version
          from which the given version was created, with previous = 0 for
          the first delta.  The "username" is the login which created the
          delta.  If this matches a CMVC login, Migrate uses that login as
          the creator.  If it does not, the user issuing the Migrate
          command gets the credit.
 
 
          9.2   WHAT PROBLEMS CAN BE ENCOUNTERED WITH THE IMPORT AND
          MIGRATION TOOLS?
 
          QUESTION:
 
          What problems can be encountered with the Import and Migration
          tools?
 
          ANSWER:
 
          Some common situations that cause problems with these migration
          tools are shown below:
 
          o   The file.import or file.migrate files do not have execute
              permission.
          o   The Filemap, Fileimport or Filemigrate scripts are being run
              by a user who has insufficient AIX user authority to create
              files within the current directory or read the SCCS files in
              the directories in which they reside.
          o   The scripts are being run from a client that does not have
              the CMVC client.
          o   The components and releases have not been created in the CMVC
              environment yet.
          o   The files being imported or migrated already exist in the
              CMVC environment.
          o   The user running the import or migration scripts has insuffi-
              cient CMVC access authority (FileAdd and FileLink are
              required).
          o   A defect or feature is in the wrong state.
          o   A track or a fix record is in the wrong state.
          o   The CMVC server's vc tree is full.
 
 
          9.3  CHANGES TO THE ERROR HANDLING OF FILE.MIGRATE AND
          FILE.IMPORT
 
          CMVC 2.2 and initial versions of CMVC 2.3 made use of a utility
          for performing error checking on the file.migrate and file.import
          script files.  However, most users forgot to use xecit and were
          unable to determine whether or not their data was properly loaded
          into the CMVC family.  As a result, later versions of CMVC 2.3
          now puts the error checking directly into the file.migrate and
          file.import script files.
 
 
                          Migrating data from library systems into CMVC  85
 
 
          The current file.migrate and file.import script files, generated
          from FileMigrate and FileImport, include error handling.  If an
          error occurs, then a file.migrate.err or file.import.err file
          will be generated and will identify the errors.  Except in
          extreme cases, this file will be very small, if it is created at
          all.
 
          If a file.migrate.err or file.import.err file is generated, you
          can use the "xecit" command to execute each line in these files
          and to capture the errors in an executable file like
          file.migrate.err or file.import.err.  The utility xecit is docu-
          mented on pages 131 and 132 in the CMVC Server manual.
 
          You may find xecit useful for any script where you do not want to
          include the error checking code in it.
 
 
          9.4  HOW SCCS ARCHIVES RELATE TO CMVC RELEASES
 
          It has been asked why a single SCCS archive cannot always be
          migrated into CMVC in one release.  The basic answer is that CMVC
          can only migrate one branch of the version tree in an SCCS
          archive in a single release.
 
          For example, if s.foo archive for the foo file has file versions
          1.1, 1.2, 1.3 and 1.2.1.1, then a conscious decision was made
          that 2 different file versions would be created as successors to
          version 1.2.  A CMVC release can contain version 1.1, 1.2 and
          1.3, but would not be able to contain 1.2.1.1 because it is con-
          flicting with version 1.3.  Therefore, a second release would
          need to be migrated that would contain versions 1.1, 1.2 and
          1.2.1.1.  In both cases, versions 1.1 and 1.2 could be linked
          between both releases.
 
          In either case, the file foo would be common to both releases
          because CMVC would internally use one archive to store the ver-
          sions.
 
 
          9.5  MIGRATING FROM ANOTHER LIBRARY TO SCCS
 
          The easiest way to get from these libraries to CMVC is by
          migrating first to SCCS, then from SCCS to CMVC.
 
 
          86  CMVC FAQ: Migration
 
 
          9.5.1  Migrating from RCS to SCCS
          _________________________________
 
          For example, it has been reported to us that there is an RCS to
          SCCS conversion tool available at:
          ftp://www.cyclic.com/pub/cvs/contrib/cvs-1.8.5 as part of the
          package cvs-1.8.5.tar.gz.  If you use gnu zip to unzip to file,
          you will find a Korn shell script for converting from RCS to SCCS
          in the contrib directory.  You can get to this site by using
          http://www.cyclic.com.
 
 
          9.5.2  Bringing PVCS files under CMVC control
          _____________________________________________
 
          QUESTION:
 
          Is there a recommended way to bring PVCS files (such as from
          OS/2) under the control of CMVC using SCCS (such as on AIX)?
 
          ANSWER:
 
          In order to provide some advice for PVCS migration, it is impor-
          tant to understand the migration from SCCS:
 
          There are several scripts which are used to help build the proper
          arguments for the CMVC Migrate commands to migrate files from an
          SCCS source tree.
 
          The CMVC Migrate command is used to bring an SCCS file into CMVC.
          This is essentially "File -create" with the command and the
          action changed to "Migrate -migrate" and with an additional
          "-version" flag.
 
          The CMVC "File -create" command creates an "s." file at version
          "1.1" from the input file.  The CMVC "Migrate -migrate" command
          creates all versions in an input "s." file and makes one of them
          the "current" version.
 
          The CMVC Migrate command uses a CMVC shell script named "sclean"
          to "clean" the file and tell Migrate what versions are in it.
          The term "cleaning" means to remove any flags restricting access
          of the file to certain logins and to set a flag to allow multiple
          gets for edit.
 
          The script sclean writes the following version information to
          stdout which is then read by the Migrate command:
 
            #versions
            deltanum previous SID date time username
            remark lines, if any
            
            repeat for other versions in deltanum order.
 
 
                          Migrating data from library systems into CMVC  87
 
 
          The script sclean gets this stuff from the header of the SCCS
          file.  SCCS numbers each delta as it is created and this is
          "deltanum".  The field "previous" is deltanum of the version from
          which the given version was created, with previous = 0 for the
          first delta.  The field "username" is the login which created the
          delta.  If this matches a cmvc login, then Migrate uses that
          login as the creator.  If it does not, then the user that is
          issuing the Migrate command gets the credit.
 
          So, if you can make a PVCS version of sclean and put it in the
          same directory as sclean, then you should be able to use the
          Migrate command to bring PVCS files into CMVC.
 
 
          88  CMVC FAQ: Migration
 
 
              APPENDIX A.  OBTAINING THE MIGRATION SHELL SCRIPTS AND LATEST
                                                                  CMVC CODE
 
 
          The shell scripts described in this technical report as well as
          the latest CMVC code can be downloaded as follows:
 
          o   From the IBM intranet (only for IBM employees).
          o   From the Internet (open to everyone).
 
 
          A.1.1  IBM Intranet
          ___________________
 
 
          A.1.1.1  Web Home Page
 
          You can access the CMVC Service/Development Home Page at:
 
            http://tc-cmvc.raleigh.ibm.com/cmvc
 
          From the index at the top of the page, select the section
          "Migration tools" or the appropriate operating system.
 
 
          A.1.1.2  FTP
 
          You can download the code from our internal FTP site, by doing:
 
          1.  ftp tc-cmvc.raleigh.ibm.com
          2.  login as 'anonymous' and for password give your email
              address.
          3.  cd e:
          4.  cd cmvc/doc/tr
          5.  ascii
          6.  get 
          7.  quit
 
 
          A.1.2  Internet
          _______________
 
 
          A.1.2.1  Web Home Page
 
          Not available.
 
 
              Appendix A.  Obtaining the migration shell scripCMVCncodete89
 
 
          A.1.2.2  FTP
 
          You can download the code from our external FTP site, by doing:
 
          1.  ftp ftp.software.ibm.com
          2.  login as 'anonymous' and for password give your email
              address.
          3.  cd ps/products/cmvc/doc/tr
          4.  ascii
          5.  get 
          6.  quit
 
          From the directory ps/products/cmvc you may choose the subdirec-
          tory for the desired operating system, in order to access the
          latest CMVC code.
 
 
          90  CMVC FAQ: Migration
 
 
                                       APPENDIX B.  MIGRATION SHELL SCRIPTS
 
 
          B.1  SHELL SCRIPTS TO PREPARE THE MIGRATION FROM CMVC TO
          TEAMCONNECTION
 
 
          B.1.1  Redefine ChangeView to facilitate the migration to
          _________________________________________________________
          TeamConnection
          ______________
 
          The name of the shell script is:
 
            xxxUpdateChangeView.ksh
 
          Where xxx is the name of the DBMS: db2, oracle, sybase or
          informix.
 
          This utility will redefine ChangeView in order to migrate the
          change history to TeamConnection.
 
 
          B.1.2  Complete a release prior to migration
          ____________________________________________
 
          The name of the shell script is:
 
            release.complete.ksh
 
          This utility will complete work in a given release so that all
          file changes are committed.
 
 
          B.1.3  Reassign user's work and delete users
          ____________________________________________
 
          The name of the shell script is:
 
            reassign.work.ksh
 
          This utility will reassign incomplete work from one active CMVC
          login to another active CMVC login.  Incomplete work can be
          defined as:
 
 
                                   Appendix B.  Migration shell scripts  91
 
 
            defects owned/originated
            features owned/originated
            verification
            components
            releases
            levels
            environments
            test records
            size records
            approval
            approver
            tracks
            fix records
            notifications deleted
            access deleted
            login deleted
 
 
          B.1.4  Delete a release from a family
          _____________________________________
 
          The name of the shell script is:
 
            release.delete.ksh
 
          This utility will delete work in a given release.  It will also
          identify a list of vc (SCCS/PVCS) files that are not related to
          any other release that can be removed to save disk space.
 
 
          B.1.5  Converting SCCS keywords to TeamConnection Keywords
          __________________________________________________________
 
          The name of the shell script is:
 
            keywordconversion.migcmvc
 
          This sample script converts SCCS keywords to TeamConnection
          keywords for text files that exist for a given RELEASE
          (CMVC_RELEASE) under a specified directory (CMVC_TOP).
 
          The script currently supports file extensions .c and .ksh.  To
          add additional extensions, you should modify the function
          check_extension to add the appropriate case statement.
 
 
          B.2  MISCELLANEOUS SHELL SCRIPTS
 
 
          92  CMVC FAQ: Migration
 
 
          B.2.1  Import a release from directory structure
          ________________________________________________
 
          The name of the shell script is:
 
            file.import.ksh
 
          This utility will load files into CMVC from a given root direc-
          tory.  It requires that the user should provide a mapfile that
          maps the pathnames of the files to the components where the files
          are to be loaded into.
 
 
                                   Appendix B.  Migration shell scripts  93
 
 
          94  CMVC FAQ: Migration
 
 
                      APPENDIX C.  COPYRIGHTS, TRADEMARKS AND SERVICE MARKS
 
 
          The following terms used in this technical report are trademarks
          or service marks of the indicated companies:
 
            +---------------------+-------------------------------------------+
            | TRADEMARK,          | COMPANY                                   |
            | REGISTERED          |                                           |
            | TRADEMARK OR        |                                           |
            | SERVICE MARK        |                                           |
            +---------------------+-------------------------------------------+
            | HP, HP-UX           | Hewlett-Packard Company                   |
            +---------------------+-------------------------------------------+
            | IBM, OS/2, AIX,     | IBM Corporation                           |
            | VisualAge Generator,|                                           |
            | CMVC, DB2,          |                                           |
            | Universal Database, |                                           |
            | VisualAge,          |                                           |
            | TeamConnection      |                                           |
            +---------------------+-------------------------------------------+
            | INFORMIX            | Informix Inc.                             |
            +---------------------+-------------------------------------------+
            | OSF, OSF Motif      | Open Software Foundation, Inc.            |
            +---------------------+-------------------------------------------+
            | ORACLE              | Oracle Corp.                              |
            +---------------------+-------------------------------------------+
            | Sun, SunOS,         | Sun Microsystems Inc.                     |
            | OpenWindows, Solaris|                                           |
            +---------------------+-------------------------------------------+
            | SYBASE              | Sybase Inc.                               |
            +---------------------+-------------------------------------------+
            | Unix, USL           | Unix System Laboratories, Inc.            |
            +---------------------+-------------------------------------------+
 
          END OF DOCUMENT 
 
 
                  Appendix C.  Copyrights, Trademarks and Service Marks  95