Limitations and known issues in Db2 Data Management Console

The following limitations and known issues apply to Db2® Data Management Console.

Limitations

  • The Database availability widget in the Summary page might not display the correct value for availability percentage. The availability percentage is calculated based on historical data. When the repository database is not available for a certain period, the historical data for that period is lost causing the availability percentage value to deviate. As a workaround, view the database availability alert to understand whether the database is available or not.

    Applies to: 4.0.0 and later

  • When you upgrade Db2 Data Management Console from the version 3.5.x to 4.0.1 release, the upgraded Db2 Data Management Console instance version 4.0.1 fails to add a database instance profile version 3.5.x. You might get the following error in the ibm-dmc-addon-api pod logs.
    unable to find valid certification path to requested

    To resolve this issue, upgrade the database instance version 3.5.x to 4.0.1.

    Applies to: Upgrading Db2 Data Management Console from the version 3.5.x to 4.0.1 release.

Known issues

  • Run SQL statements from the Db2 Data Management Console SQL editor, does not support the Run method option CLP WITH SSH.

    Applies to: 4.0.0 and later

  • Administrators cannot apply Cancel Activities operation against the application that is generated by a db2inst1 user.

    Applies to: 4.0.0 and later

  • User cannot apply a Force Application operation from the console page.

    Applies to: 4.0.0 and later

  • JDBC connection fails when you use the JDBC connect URL in the connection information page.

    As a workaround, use JDBC connect URL in the database instance detail page.

    Applies to: 4.0.0 and later

  • RUNSQL does not support a function or an operator as input parameters in the stored procedure.

    Applies to: 4.0.3 and later

  • An error message might be displayed when a user attempts to change the timestamp (Last 'N' hour) for the Responsiveness and Throughput widgets in the Monitor > Summary page. This issue applies to Data Virtualization and Big SQL database connections. As a workaround, refresh the page in a stable network environment.

    Applies to: 4.0.0

    Fixed in: 4.0.1

  • After an upgrade, the Db2 Data Management Console load log directory is cleared and cannot be retrieved. To know more about the workaround, see Load logs are cleared after upgrade.

    Applies to: 4.0.0 and later

  • Redis might not start, when all the redis sentinel and server pods are started at the same time. To know more about the workaround, see Redis fails to start.

    Applies to: 4.0.0

    Fixed in: 4.0.1

  • When the connections in the Databases page are in refresh status, you might get the following error:
    Could not get a resource from the pool: ##Could not get a resource from the pool ##
    As a workaround, do the following steps:
    1. Check whether the redis pods are started:
      oc get pods |grep ibm-dmc |grep redis -n {PROJECT}
      For example,
      # oc get pods |grep redis
      
      c-ibm-dmc-1655857923892692-redis-m-0 4/4 Running 0 30m
      
      c-ibm-dmc-1655857923892692-redis-m-1 4/4 Running 0 30m
      
      c-ibm-dmc-1655857923892692-redis-m-2 4/4 Running 0 30m
      
      c-ibm-dmc-1655857923892692-redis-s-0 4/4 Running 0 30m
      
      c-ibm-dmc-1655857923892692-redis-s-1 4/4 Running 0 30m
      
      c-ibm-dmc-1655857923892692-redis-s-2 4/4 Running 0 30m
    2. If a redis pod does not exist, run the following command:
      oc patch namespacescope common-service --type='json' -p='[{"op":"replace", "path": "/spec/csvInjector/enable", "value":true}]' -n ibm-common-services
    3. Wait for 10 minutes and check whether the redis pods are started.

    Applies to: 4.0.0 and later

  • After reinstalling or reprovisioning Db2 Data Management Console, the event monitors might fail to work correctly as defined in the event monitor profile. To know more about the workaround, see Event monitors might not work correctly after reinstalling the console.

    Applies to: 4.0.0

    Fixed in: 4.0.1

  • The installation command with recursive argument does not work as expected. The following installation commands return same results:
    cloudctl case launch --args "--recursive --inputDir ./" --action installCatalog --case {DMC}.tgz --inventory dmcOperatorSetup --namespace openshift-marketplace --tolerance 1
    cloudctl case launch --action installCatalog --case  {DMC}.tgz --inventory dmcOperatorSetup --namespace openshift-marketplace --tolerance 1

    Applies to: 4.0.0

    Fixed in: 4.0.1

  • When DDL statements are generated for database objects, you might get the following error:
    HWCADM0047E: The ddl can not be gotten because binding or precompilation did not complete successfully. For detailed info, please check the error code SQL0001N.tivol
    As a workaround, run the following commands:
    db2 connect to BLUDB
    db2 "bind db2look.bnd BLOCKING ALL GRANT PUBLIC sqlerror continue"
    db2 "bind db2lkfun.bnd BLOCKING ALL GRANT PUBLIC sqlerror continue"

    Applies to: 4.0.0 and 4.0.1

    Fixed in: 4.0.2

  • The ibm-dmc-addon-ui pod cannot be ready because the cluster fails to pull ibm-dmc-addon-ui image. This issue occurs in the following scenarios:

    Scenario 1 - Db2 Data Management Console version 4.0.1 is installed but addon CR version 4.0.0 is created.

    Scenario 2 - Db2 Data Management Console version 4.0.0 is upgraded to version 4.0.1 but the addon CR still uses version 4.0.0.

    Workaround: Update the Db2 Data Management Console addon CR and instance CR to version 4.0.1.

    To create a Db2 Data Management Console 4.0.0 CR on 4.0.1 catalog source, apply the following patch.
    1. Log in to Red Hat® OpenShift® Container Platform as a user with sufficient permissions to complete the task:
      oc login OpenShift_URL:port
    2. Run the following command to update the Db2 Data Management Console operator image. Update ibm-common-services to your project.
      oc edit csv ibm-databases-dmc.v1.0.1 -n ibm-common-services
    3. Update the operator image with the following operator digest.
      image: icr.io/cpopen/ibm-dmc-operator@sha256:776c71d390439990b90d88a33772b0964218a38bdc2e54758b1316c946d1b34a
    4. Save and Exit.
    5. Wait for about 10 minutes and verify whether the patch is applied successfully.
      • Check whether the new IBM® DMC controller-manager and nginx pod are re-created.
        oc get pods -A |grep dmc-controller-manager
        oc project YOUR_PROJECT
        oc get $(oc get pods -o name |grep ibm-dmc |grep nginx)
      • Check whether the new operator pod image digest is correct.
        oc get $(oc get pods -o name -n ibm-common-services|grep ibm-dmc |grep controller) -n ibm-common-services -o yaml
        Replace ibm-common-services to your operator project. The new image is:
        ibm-dmc-operator@sha256:776c71d390439990b90d88a33772b0964218a38bdc2e54758b1316c946d1b34a

    Applies to: 4.0.1

    Fixed in: 4.0.2

  • Db2 Data Management Console ODLM logic always installs by using ibm-dmc-operator-catalog catalog source. This prevents the operator lifecycle manager (OLM) from creating the cluster service version (CSV) and an error message is displayed.
    Note: This issue occurs only on Data Virtualization shipped Data Management Console online installation.
    As a workaround, run the following command to update the Db2 Data Management Console subscription to use the correct catalog source ibm-operator-catalog.
    oc patch -n ibm-common-services sub ibm-dmc-operator --type=merge --patch='{"spec": {"source": "ibm-operator-catalog"}}'

    Applies to: 4.0.1

    Fixed in: 4.0.2

  • Db2 Data Management Console service instance (version 4.0.2) cannot be provisioned using the CASE package for Db2 Data Management Console (version 4.0.3).
    1. Download and extract the contents of CASE package (version 4.0.3) for Db2 Data Management Console.
      cloudctl case save \
        --repo https://github.com/IBM/cloud-pak/raw/master/repo/case \
        --case ibm-dmc \
        --version 4.0.3 \
        --outputdir ${OFFLINEDIR}
    2. Verify that the Db2 Data Management Console catalog source (version 4.0.3) exists. For details, see Creating catalog sources.
    3. Verify that the Db2 Data Management Console operator subscription (version 4.0.3) exists. For details, see Creating operator subscriptions.
    4. Create a Dmcaddon custom resource (version 4.0.2) to install Db2 Data Management Console. Follow the appropriate guidance for your environment.
      cat <<EOF |oc apply -f -
      apiVersion: dmc.databases.ibm.com/v1
      kind: Dmcaddon
      metadata:
        name: dmc-addon                  # This is the recommended name, but you can change it
        namespace: project-name                            # Replace with the project where you will install Db2 Data Management Console
      spec:
        license:
          accept: true
          license: Enterprise | Standard           # Specify the license you purchased
        version: 4.0.2
      EOF
    5. Get the status of Db2 Data Management Console (dmc-addon):
      oc get $(oc get Dmcaddon -o name -n project-name) -o jsonpath='{.status.dmcAddonStatus} {"\n"}' -n project-name

      Db2 Data Management Console is ready when the command returns Complete.

    6. Provision the Db2 Data Management Console service instance (version 4.0.2) from the Cloud Pak for Data web user interface.

      Result: The Db2 Data Management Console service instance (version 4.0.2) is not provisioned.

    As a workaround to provision the Db2 Data Management Console service instance (version 4.0.2), download and use the CASE package for Db2 Data Management Console (version 4.0.2).

    Applies to: 4.0.3

    Fixed in: 4.0.5

  • After the Db2 Data Management Console instance is installed and provisioned, if a Db2 Warehouse instance is provisioned and Qrep is enabled, the console might not manage or monitor the database automatically. As a workaround, do the following steps:
    1. Get the Db2 Data Management Console instance custom resource name:
      oc get dmc -n project-name
    2. Delete the Db2 Data Management Console instance custom resource.
      oc delete dmc DMC-CR-NAME -n project-name
    3. After all the terminated pods of Db2 Data Management Console are deleted, provision the Db2 Data Management Console instance again through the Cloud Pak for Data web interface.
    Note: This issue does not occur when you provision the Db2 Warehouse instance and enable Qrep before provisioning the Db2 Data Management Console instance.

    Applies to: 4.0.3

    Fixed in: 4.0.5

  • Db2 Data Management Console service does not start in Liberty on AWS cluster with portworx storage. The Db2 Data Management Console service pod fails to run successfully. As a workaround, use the following Db2 Data Management Console CR to create the service instance instead of provisioning the service instance from UI.
    cat << EOF | oc apply -f -
    apiVersion: dmc.databases.ibm.com/v1
    kind: Dmc
    metadata:
      name: data-management-console
      annotations:
        ansible.operator-sdk/reconcile-period: "30s"
        ansible.sdk.operatorframework.io/verbosity: "4"  
    spec:
      arch: x86_64
      version: 4.0.1
      description: "Data Management Console"
      scaleConfig: small
      storageClass: "YOUR_STORAGECLASS"
      storageSize: 10Gi   
      disable_storage: true
      license:
        accept: true 
        license: Standard   
    EOF
    This workaround applies to version 4.0.1 and later.
    Note:

    In the Db2 Data Management Console CR, for version 4.0.6 and earlier, if the disable_storage option is set to true, only the Db2 Data Management Console storage is disabled.

    As of version 4.0.7, if the disable_storage option is set to true, both the Db2 Data Management Console storage and the Redis storage are disabled. But there is one limitation. If the Db2 Data management Console instance is deleted, an error might occur. In such cases, restart the monitor pod.

  • After backing up and restoring the Db2 Data Management Console service, deleting the service from the instance page or deleting the custom resource does not delete the k8s resources such as pods, services, etc. This issue occurs because, the ownerReferences information is lost in all the resources after backup and restore operation. As a workaround, delete or uninstall the Db2 Data Management Console after restore:
    1. Delete Dmc resources:
      1. Get the Db2 Data Management Console instance ID.
        export dmc_instance_id=`oc get pods |grep "ibm-dmc-[0-9]*-monitor-0" |awk '{print $1}' |cut -d "-" -f3`
      2. Query the Db2 Data Management Console objects using the label "app=dmc"
        oc get all -l "app=dmc"
      3. Delete the Db2 Data Management Console objects using the label "app=dmc"
        oc delete pods -l "app=dmc"
      4. Query the Db2 Data Management Console configmap using the label "app=dmc"
        oc get cm -l ServiceInstanceID=$dmc_instance_id
      5. Delete the Db2 Data Management Console configmap using the label "app=dmc"
        oc delete cm -l ServiceInstanceID=$dmc_instance_id
      6. Query the remaining Db2 Data Management Console configmap using grep dmc.
        # oc get cm |grep dmc
        c-ibm-dmc-1635746005873941-redis-m                     9      44m               (dmc configmap)
        c-ibm-dmc-1635746005873941-redis-s                     8      44m               (dmc configmap)
        dmc-data-management-console-cm                         3      44m               (dmc configmap)
        
        dmc-services-info-cm                                   1      44m               (dmcaddon configmap)
        ibm-dmc-addon-api-cm                                   6      30m               (dmcaddon configmap)
        zen-addon-cm-dmc                                       2      44m               (dmcaddon configmap)
        cpd-dmc-aux-br-cm                                      3      44m               (dmcaddon configmap)
        cpd-dmc-aux-qu-cm                                      3      44m               (dmcaddon configmap)
      7. Delete only the dmc configmap resources.
    2. Delete Dmcaddon resources:
      1. Query Dmcaddon objects using the label "app=ibm-dmc-addon"
        oc get all -l "app=ibm-dmc-addon"
      2. Delete Dmcaddon objects.
        oc delete all -l "app=ibm-dmc-addon"
      3. Query Dmcaddon configmap.
        # oc get cm |grep dmc
        dmc-services-info-cm                                   1      44m               (dmcaddon configmap)
        ibm-dmc-addon-api-cm                                   6      30m               (dmcaddon configmap)
        zen-addon-cm-dmc                                       2      44m               (dmcaddon configmap)
        cpd-dmc-aux-br-cm                                      3      44m               (dmcaddon configmap)
        cpd-dmc-aux-qu-cm                                      3      44m               (dmcaddon configmap)
      4. Delete only the Dmcaddon configmap resources.

    Applies to: 4.0.3 and later

  • You cannot backup and restore Redis on a different cluster. The Redis pods remain in the crash loop back-off state even after you restore them remotely. As a workaround to successfully back up and restore Redis, delete the Db2 Data Management Console instance and provision it again.

  • When a resource quota is present in the cluster, Redis fails to start and displays the following error message:

    ~$ oc get sts -A |grep redis
    test-cdo-cedp-repository             c-ibm-dmc-1646304902648951-redis-m   0/2  
    
    c-ibm-dmc-1646304902648951-redis-m sts events:
    
    create Pod c-ibm-dmc-1646304902648951-redis-m-0 in StatefulSet c-ibm-dmc-1646304902648951-redis-m failed error: pods "c-ibm-dmc-1646304902648951-redis-m-0" is forbidden: failed quota: default: must specify limits.memory,requests.memory
    As a workaround, do the following steps:
    1. Get the Redis Statefulset.
      oc get sts |grep redis
      c-ibm-dmc-1646806131101880-redis-m   3/3     45h
      c-ibm-dmc-1646806131101880-redis-s   3/3     45h
    2. Edit Redis pods.
      oc edit sts c-ibm-dmc-1646806131101880-redis-m
      1. Search for the following code:
        name: init
        resources: {}
      2. Remove the following code:
        resources: {}
      3. Add the following code:
        resources:
          limits:
            cpu: 51m
            memory: 130Mi
          requests:
            cpu: 50m
            memory: 128Mi
        
    3. Repeat step 2 and step 3 for the c-ibm-dmc-1646806131101880-redis-s statefulsets.
  • One or more Redis pods might restart frequently. For example,
    # oc get pods |grep redis
    c-ibm-dmc-1648308028362416-redis-m-0                        4/4     Running     38         46h
    c-ibm-dmc-1648308028362416-redis-m-1                        4/4     Running     42         47h
    c-ibm-dmc-1648308028362416-redis-s-0                        4/4     Running     38         46h
    c-ibm-dmc-1648308028362416-redis-s-1                        4/4     Running     23         47h
    As a workaround, do the following steps:
    1. Delete the Db2 Data Management Console instance.
    2. Create the Db2 Data Management Console instance using medium or large scale.
    3. If some of the Redis pods still restart, then delete those pods.
  • The CPU and memory of Redis pods do not increase or decrease according to the resource changes in Redis CR.

    Applies to:
    • Db2 Data Management Console 4.0.6 and earlier
    • Redis case version 1.4.4 and earlier

    Fixed in: 4.0.7

  • When the Db2 Data Management Console is updated to a newer version and if Redis pods are upgraded to the supported version, the upgraded Redis pods continue to use the old Redis images.

    As a workaround, run the following command to get the redissentinels updateStrategy:
    oc get redissentinels [YOUR_REDISSENTINELS] -n [YOUR_NAMESPACE] -o yaml |grep updateStrategy
      updateStrategy: RollingUpdate
    If the updateStrategy is set to RollingUpdate, delete the Redis pods and create them with the new Redis images.
    # oc get pods |grep dmc |grep redis
    c-ibm-dmc-1653363006896520-redis-m-0                         4/4     Running     0             21h
    c-ibm-dmc-1653363006896520-redis-m-1                         4/4     Running     0             21h
    c-ibm-dmc-1653363006896520-redis-m-2                         4/4     Running     0             21h
    c-ibm-dmc-1653363006896520-redis-s-0                         4/4     Running     0             20h
    c-ibm-dmc-1653363006896520-redis-s-1                         4/4     Running     0             20h
    c-ibm-dmc-1653363006896520-redis-s-2                         4/4     Running     0             21h
    If the updateStrategy is set to OnDelete, do the following steps:
    1. Get the CR name.
      oc get redissentinel
    2. Run the following command:
      oc get redissentinels <CR_name> -o yaml > redissentinels.yaml
    3. Delete the Redis pods.
      oc delete redissentinels <CR_name>
    4. After the Redis pods (sentinel and member pods) are successfully deleted, run the following command:
      oc create -f redissentinels.yaml

    Applies to : 4.0.6 and earlier

    Fixed in: 4.0.7

  • Db2 Data Management Console fails to connect to the database when the Cloud Pak for Data internal TLS certificate expires (cpd-internal-tls is valid for 3 months). As a workaround, do the following steps:
    1. Enable maintain mode.
      1. Get the CR name.
        oc get dmc -n <namespace>
      2. Edit CR.
        oc edit dmc <dmc cr name>
      3. Append the following code under spec.
        ignoreForMaintenance: true
    2. Edit deployments.
      1. Run the following command to get deployments.
        oc get deployment -n <namespace> | grep dmc
        ibm-dmc-****-admin              
        ibm-dmc-****-dbapi             
        ibm-dmc-****-explain            
        ibm-dmc-****-job-scheduler      
        ibm-dmc-****-runsql     
      2. Edit admin, dbapi, explain, job-scheduler, and runsql.
        1. Run the following command:
          oc edit deployment ibm-dmc-****-**** -o yaml -n <namespace>
        2. Search for the following code:
          - mountPath: /opt/ibm-datasrvrmgr/Config/cpd-internal-tls
                      name: cpd-internal-tls
        3. Change the name: cpd-internal-tls to name: <db2type>-internal-tls where <db2type> can be db2oltp, db2wh, dv, or bigsql.
        4. Save and exit.
      3. Wait for the pods to restart.
    3. Edit sts.
      1. Run the following command to get sts.
        oc get sts -n <namespace> |grep dmc             
        ibm-dmc-****-monitor                 
      2. Edit monitor.
        1. Run the following command:
          oc edit sts ibm-dmc-****-monitor -o yaml -n <namespace>
        2. Search for the following code in volumeMounts: block.
           - mountPath: /opt/ibm-datasrvrmgr/Config/cpd-internal-tls
                      name: cpd-internal-tls
        3. Change the name: cpd-internal-tls to name: <db2type>-internal-tls where <db2type> can be db2oltp, db2wh, dv, or bigsql.
        4. Save and exit.
      3. Wait for the monitor pods to restart.

    Applies to: 4.0.8 and later