Upgrading the VSAM Remote Source engine

You can upgrade the VSAM Remote Source engine by downloading the latest version and then working within the container to perform the upgrade.

Procedure

  1. Stop subscriptions by using a controlled stop.
  2. Obtain the latest tar file from IBM® Fix Central. For more information, see Downloading the container image.
  3. Verify the downloaded archive file. For more information, see Verify the downloaded archive file.
  4. Stop the running containerized instance of Classic CDC by running the following commands:
    podman attach ClassicCDCVSAM
    stop,all
  5. Remove the containerized Classic CDC instance by running the following command:
    podman rm ClassicCDCVSAM
  6. Extract and load the container image. For more information, see Extracting and importing the container image for Podman.
  7. Enter the following commands to run the containerized instance of Classic CDC:
    podman run -itd \
    -e TZ=Your_Country/Your_City \
    -e CLASSIC_DATASOURCE=RHELSAMP \
    -e CLASSIC_REMOTE_HOSTNAME=hostname.com \
    -e CLASSIC_REMOTE_PORT=9087 \
    -e ZOSCODEPAGE=37 \
    -e COMPUTERNAME=${HOSTNAME} \
    -u cecuser \
    -p 9087:9087 \
    --userns keep-id \
    -v classiccdcv:/classic/shell:Z \
    -v classiccdcvsamcat:/classic/shell/vsamcat:Z \
    -v classiccdcoutput:/classic/usr/output:Z \
    --name ClassicCDCVSAM \
    classiccdcvsam:latest
    
    Where:
    • TZ is a selected timezone. The value must match a value stored in your system's timezone database. On Linux® systems, timezone values are stored in the /usr/share/zoneinfo directory.
    • CLASSIC_REMOTE_HOSTNAME is the location of your z/OS machine.
    • ZOSCODEPAGE identifies the encoding of the VSAM data sets.
    • cecuser is a non-root container user with user ID (UID) 9087. All the files and folders under the Docker bind mounts on the host machine will be owned by user ID 9087. If you chose a user name other than cecuser, you can replace the -u option on the container run command with the following option when you are logged in as 9087:
      --user $(id -u):$(id -g)

      This option allows the container to run with the current user uid and gid. Both should be 9087 to properly access external volumes. You will be your chosen user name on Linux external to the container and if you bash into the container you will be cecuser inside the container. Both are uid 9087 gid 9087.

    • 9087:9087 is the port number designated within your container instances.
      Note: If you need to expose the container port as a different OS host port because 9087 is already in use, please refer to the Docker run command syntax. Because port 9087 is a reserved IANA port, it should not normally be in use. For more information, see IANA Service Name and Transport Protocol Port Number Registry.
    • Mount designates storage for data that is generated by the container and needs to be persisted.
    Note: If you are using Podman as your container engine, refer to the run command detailed in Step 3 of the topic Setting up the container environment for Podman.
  8. To update the z/OS libraries, stop the existing log reader address space, update the z/OS libraries, and start a new log reader address space.
    1. If your site uses a started task for VSAM log reading, request that the started task be stopped. Otherwise, use the Install and Maintenance Menu option to stop the existing log reader. Access the Install and Maintenance Menus by using the following commands:
      podman exec -it --workdir /classic/usr/scripts/ ClassicCDCVSAM bash
      ClassicVSAMInstallAndMaintenanceMenu.sh

      Invoke the Stop the existing z/OS log reader option and follow the prompts. You will need to interact with the script multiple times while it runs to enter your password for the SFTP and SSH utilities. When complete, exit to the main menu screen again.

    2. Use the Install and Maintenance Menu option Install or replace z/OS libraries with this container's maintenance level to update the maintenance level on z/OS. This step replaces existing libraries if you take the automatic installation path. Using the manual path, you can control exactly what happens by using supplied JCL as a starting point. Follow the installation topics for replacing libraries.
    3. Use the Install and Maintenance Menu option Start a new z/OS log reader to start a new z/OS log reader by using the updated maintenance level.

    Alternatively, before you can stop replication for all subscriptions and then stop the z/OS log reader address space by using the following modify command:

    F job-name,stop,all

    When the address space is no longer active, you can run the RVSJOB1, RVSJOB2, and RVSJOB3 jobs to refresh your system libraries. All jobs must complete with a condition code of zeros.

    When the jobs are completed, you can restart the z/OS log reader address space.

  9. To update container scripts from the current image, first access the Install and Maintenance Menus by using the following commands:
    podman exec -it --workdir /classic/usr/scripts/ ClassicCDCVSAM bash
    ClassicVSAMInstallAndMaintenanceMenu.sh

    You can then use the option Update container scripts from the current image.

  10. Follow these steps:
    1. Exit the bash session in the container.
    2. Optional: If you performed Step 9, restart the container for the updates to the container script to take effect.
    3. Use Management Console to restart replication with the continuous option for your subscriptions.
    Note: Replace the podman commands with docker commands as needed.