Troubleshooting


(BMC.DB2.SPE2404) 

This topic describes how to troubleshoot issues and errors that you might encounter when working with BMC AMI SQL Assurance for Db2.

  • If your job build fails with S80A error: include the REGION=0M parameter in the job card.
  • If your project, pipeline, or workflow run fails with the error message BMCAMA00074E: Maximum Job Wait Time exceeded, then review the job output on the mainframe to obtain the total elapsed time that the job required and increase the maximum job wait time accordingly.

    Important

    The Maximum wait time is based on the time elapsed from submission until completion and not on the CPU time used by the job.

    The purpose of this field is to make sure that a build executor is not tied up for too long.

  • (BMC.DB2.SPE2501)If your job fails with either of the following errors, make sure that your job card is defined appropriately for your environment:
    • -Static SQL Explain step: DB2 CONNECT TO '<ssid>' FAILED, REASON=00F30006
    • -Dynamic SQL Extract step: BMCCOB00018E ATTACHMENT API ERROR. API FUNCTION: CONNECT, DB2 RETURN CODE: 12, DB2 REASON CODE: X'00F30006' DB2 SYSTEM: <ssid>
  • If you add two consecutive authentication steps in a project, pipeline, or workflow, the last authentication step will be considered, along with a warning message.
Click here if you are using the BMC AMI SQL Assurace for Db2 in Jenkins
  • To use an older version of the BMC AMI SQL Assurance for Db2 plug-in, do the following:
    1. Manually reinstall the .hpi file of the older version.
    2. Restart the Jenkins server when no jobs are running.

           You cannot downgrade the BMC AMI DevOps Common and BMC AMI SQL Assurance for Db2 plug-ins from the Jenkins web user interface because it is a private plug-in.

  • If you do not enter input for a required field of a build step during configuration:
    • BMC AMI SQL Assurance for Db2displays an error.
    • You can still build the project. However, the project fails.
  • If your job build fails with java.lang.OutOfMemoryError: Java heap space: increase the java heap size in your Jenkins configuration.
  • If you want to build a project with multiple Plans or Packages by using 2 or more BMC AMI SQL Assurance for Db2 - Analyze Static SQL plug-in steps, we recommend you to use one of the following methods: 
    • Configure a single project by using Object List File in the plug-in step. This will enable you to specify up to 100 Plans or Packages.

      Important

      The memory storage limit might exceed when you specify a high number of objects in the Object List File. To resolve this issue, reduce the number of objects in the file.

    • Configure separate projects with a single plug-in step in each project. Build the projects using a single pipeline.
Click here if you are using the BMC AMI SQL Assurance for Db2 with Universal Connector.

You might encounter the following issues and errors:

  • For Azure DevOps and GitHub Actions:​​​​​​​ When you create a variable with one of these special characters ($,&) in the value, the value requires a backslash (\) escape character before either of the special characters (for example, DB\$123, TBL\&A). This is applicable to the 'password' key-value as well.
  • For Azure DevOps and GitHub Actions: When you create a variable for a Linux directory path, the path value requires a backslash (\) escape character before each forward slash (/) path separator (for example, SMPE\/PropertiesFiles\/AMI_DevOps.properties).
  • For GitLab CI/CD: When you create a masked variable, the value is limited to a minimum of 8 characters and these special characters (@, _, :, +). For more information about GitLab variables, see the GitLab documentation.
  • If you want to run a pipeline or workflow with multiple Plans or Packages by using 2 or more Analyze Static SQL  steps, we recommend you to use one of the following methods:
    • In a config.yml file, use one of the analyzeStaticSql steps to specify the property key, useObjectListFile: true, and input the directory and file value in the objectListFilePath property key. This will enable you to specify up to 100 Plans or Packages.

      Important

      The memory storage limit might exceed when you specify a high number of objects in the Object List File. To resolve this issue, reduce the number of objects in the file.

    • Configure a pipeline or workflow with multiple stages that run a single analyzeStaticSql step and conditional checks to advance to the next stage.
  • When you create a variable name that is also used in JCL syntax or input keyword and then run the pipeline or workflow, the variable value replaces the syntax or keyword and ultimately causes the step to fail.
  • The Azure DevOps pipeline might fail in the Authentication step with the following error: BMCAMA00058E Field executionIdentifier value cannot have more than 4 properties, this can occur because of the following situations:
    • You have additional properties defined in your config YAML file for the executionIdentifier. The allowed properties are PipelineName, RunNumber, RunBy, and RunMode. If this occurs, remove the invalid property from your config YAML file.
    • The username, defined in your Azure DevOps Organization Settings, was defined with a comma, like “last name, first name”. The comma in the name causes the processing of the Azure DevOps system variable, Build.RequestedFor, in the executionIdentifier property key’s RunBy property to error.

       If this occurs, perform one of the following corrections:

      • Update the sed Linux command for RUNBY_VALUE in the pipeline YAML file so that it removes the comma, like below:
        sed -i "s/RUNBY_VALUE/$(echo $(Build.RequestedFor) | sed 's/,//g')/" <config YAML file>
      •  Create an Azure DevOps variable, RUNBY_VALUE, set the value as your name (without a comma). Update the sed Linux command for RUNBY_VALUE in the pipeline YAML file, like below:
        sed -i "s/RUNBY_VALUE/$(RUNBY_VALUE)/" <config YAML file>
      • Remove the property (RunBy=RUNBY_VALUE) in the executionIdentifier property key defined in the config YAML file.
  • When you define an Azure DevOps pipeline, we recommend that you use the BMC AMI SQL Assurance step as a separate script. Any other bash or shell command after the step might report the script execution result inaccurately in Azure DevOps.
  • The Azure DevOps pipeline might fail with the following message in the Initialize container step because the container does not stay up. Disregard the time stamp and container ID.

    2023-10-05T12:25:21.5544536Z ##[warning]Docker container d83d7db2e08eaf1e401521baef9e8b9a724ced0bec7e4be1656fa4d2fa2ee432 is not in running state.
    2023-10-05T12:25:21.5606939Z ##[command]/usr/bin/docker exec  d83d7db2e08eaf1e401521baef9e8b9a724ced0bec7e4be1656fa4d2fa2ee432 sh -c "command -v bash"
    2023-10-05T12:25:21.6596835Z ##[error]Docker-exec executed: `sh -c "command -v bash"`; container id: `d83d7db2e08eaf1e401521baef9e8b9a724ced0bec7e4be1656fa4d2fa2ee432`; exit code: `255`; command output: `Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.`, `Error: can only create exec sessions on running containers: container state improper`
    2023-10-05T12:25:21.6601435Z ##[section]Finishing: Initialize containers

    If this error occurs, then perform the following steps:

    • Make sure that you are not running the SELinux in enforcing mode. This mode prevents the container from running as root, which BMC AMI SQL Assurance requires.
    • Change the SELinux security mode to permissive mode. This gives a warning when running the container as root, but allows the container to continue to run. 
    • Restart the VM.
    • Rerun your pipeline.
  • If your pipeline or workflow has the step command omitted, a shell error of either command not found or not found is displayed. For more information, see the explanation in the following tabs: 

    Suppose that the step command is omitted, as shown in the following example:

    - script: |
        staticSQL_plan  Azure/Test_config.yml
      displayName: 'SQL Assurance - Analyze Static SQL plan'

    The following error is displayed:

    /__w/_temp/4d0aca28-9b58-47ce-9d02-52d599a9ad17.sh: line 1: static_sql_plan: command not found 

    To correct this error, add the step command, as shown in the following example:

    - script: |
        step staticSQL_plan  Azure/Test_config.yml
      displayName: 'SQL Assurance - Analyze Static SQL plan'

    Suppose that the step command is omitted, as shown in the following example:

    - name: Static SQL - Plan
      run: |
        static_sql_plan GHA/Test_config.yml

    The following error is displayed:

    /__w/_temp/6611ee89-4e87-4840-85af-fdd80e0ec951.sh: line 1: static_sql_plan: not found

    To correct this error, add the step command, as shown in the following example:

    - name: Static SQL - Plan
      run: |
        step static_sql_plan GHA/Test_config.yml

    (BMC.DB2.SPE2501)Suppose that the step command is omitted, as shown in the following example:

    script:
      - echo "Static SQL - Package application step"
      - static_sql_pg SMPE/JL/SA_configs/JL_config_SA_both.yml

    The following error is displayed:

    $ echo "Static SQL - Package application step"
    Static SQL - Package application step
    $ static_sql_pg SMPE/JL/SA_configs/JL_config_SA_both.yml
    /bin/bash: line 195: static_sql_pg: command not found

    To correct this error, add the step command, as shown in the following example:

    script:
      - echo "Static SQL - Package application step"
      - step static_sql_pg SMPE/JL/SA_configs/JL_config_SA_both.yml

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*