Validate Database Checkpoints

Before upgrading, run the validateCheckpoint.jar program on all MATRIXX Engine pods. The validateCheckpoint.jar program analyzes a MATRIXX checkpoint, detects any errors in the database, and produces a validation report listing internal database statistics and any errors found.

Procedure

  1. Run validateCheckpoint.jar in on the pod to detect any errors in the database checkpoint with the following command:
    kubectl exec -it pod_name --namespace namespace – /bin/bash -c "java -Dconfig=/opt/mtx/conf/mtx_config.xml -jar /opt/mtx/bin/validateCheckpoint.jar checkpoint_folder"
    Where pod_name is the name of the pod, such as ckpt-s2e4-0 and checkpoint_folder is the folder containing the database checkpoint. For example:
    kubectl exec -it ckpt-s2e4-0 -n matrixx-ns2 – /bin/bash -c "java -Dconfig=/opt/mtx/conf/mtx_config.xml -jar /opt/mtx/bin/validateCheckpoint.jar /shared/checkpoints/mtx_ckpt_v5241.15.1658853220"
  2. Retrieve the output from validateCheckpoint.jar from the /home/mtx directory on the pod with the following command:
    kubectl cp namespace/pod_name:/home/mtx/validation_log_name destination_filename

    Where validation_log_name is the name of the validateCheckpoint.jar output file, and destination_filename is the destination path and filename outside of the pod. For example (line break added for readability):

    kubectl cp matrixx-ns2/ckpt-s2e4-0:/home/mtx/validateCheckpoint_20220726_174359.log \
    /home/mtx/validateCheckpoint_20220726_174359.log
    Note: The validateCheckpoint.jar program produces warnings that TriggerTime and NextMaintenanceTime values are overdue for each subscriber or group in the database. These are typical artifacts of the upgrade process. The warnings can be ignored.

    The kubectl cp command might have the following output:

    tar: Removing leading `/' from member names

    This can be ignored. The file is copied normally.

  3. Resolve any errors before upgrading.