Known issues and limitations for Data Virtualization

The following known issues and limitations apply to Data Virtualization.

For additional solutions to problems that you might encounter with Data Virtualization, see the troubleshooting topic Troubleshooting the Data Virtualization service.

General issues
The following general issues impacts Data Virtualization users.
Audit issues
The following issues and limitations apply to audit issues in Data Virtualization.
Data source and connection issues and limitations
Installation and upgrade issues
The following issue applies to installing and upgrading Data Virtualization. For more information, see Installing Data Virtualization and Upgrading Data Virtualization.
Data virtualization issues
The following issues and limitations apply to virtualization in Data Virtualization.
User and group management issues
The following issues and limitations apply to user and group management in Data Virtualization. For more information about user and group management, see Virtualizing data.
Data governance issues
The following issues and limitations apply to data governance in Data Virtualization.
Caching issues
The following issues and limitations apply to caching in Data Virtualization.
File issues
The following issues and limitations apply to files in Data Virtualization.

General issues

Unlocking a Data Virtualization connection incorrectly requires an access token after specifying to use your platform login credentials

Applies to: 5.3.0 and later

When you use a Data Virtualization connection in catalogs or projects, you might be prompted to unlock the connection with your own personal credentials. If you select Use my platform login credentials, the Access token input field is incorrectly marked as required, and you are unable to connect.

Workaround: Open the Data Virtualization connection asset explicitly in the current catalog or project (Platform connections) and then select Use my platform login credentials. You will not be prompted to provide an Access token. Save the changes.

Running the NUMTABSREMOTE view for multiple catalog sources returns -1 as the total number of tables

Applies to: 5.3.0 and later

When you run the NUMTABSREMOTE view to retrieve the total number of tables for multiple catalog sources, the output returns -1 and this is expected. The console displays xxx/? with xxx as the placeholder for the number of tables in the selected catalog. For example: 123/?.

Audit issues

CHECKING audit category might generate duplicate entries

Applies to: 5.3.1

If a user runs a statement through a JDBC or ODBC connection on a table for which they do not have access privileges, the CHECKING audit category might generate duplicate entries.
Note: This issue occurs only for statements executed through JDBC/ODBC connections. Statements that are ran using the Db2 CLI work as expected and do not produce duplicate entries.
Audit functionality might not be updated after you upgrade to Data Virtualization version 5.3.1

Applies to: 5.3.1

After you upgrade Data Virtualization to IBM Software Hub version 5.3.1, the audit functionality might not be updated.

Symptoms:
  1. The /mnt/blumeta0/support/audit_installation.log log file in the Data Virtualization head pod c-db2u-dv-db2u-0 contains the following message: SQL1024N A database connection does not exist. Also, if you successfully upgraded to IBM Software Hub version 5.3.1 from version prior to 5.3.0, the required table AUDIT.CONFIG does not exist. You can check for the existence of the table by running SELECT * FROM AUDIT.CONFIG.
  2. When you enable the auditing of SQL statements by using the DVSYS.TOGGLEAUDITLOGGING_STMTS procedure, this error displays: SQL0438N Application raised error or warning with diagnostic text: "Procedure not initialized by installaudit". SQLSTATE=75000.
Workaround: As a Data Virtualization Administrator, use the DVSYS.TOGGLEDEFAULTAUDITLOGGINGCOMPLETE procedure to uninstall and reinstall the Db2 audit facility. See also Enabling and disabling the Db2 audit facility in Data Virtualization.
Note: This workaround resets all the changes made to the default Data Virtualization audit policy named DV_AUDIT_DEFAULT.
  1. Uninstall the audit facility by running this procedure:
    CALL DVSYS.TOGGLEDEFAULTAUDITLOGGINGCOMPLETE('OFF')
  2. Then reinstall the audit facility by running this procedure:
    CALL DVSYS.TOGGLEDEFAULTAUDITLOGGINGCOMPLETE('ON')
Incomplete audit logging when stopping Big SQL or upon Db2 termination
Applies to: 5.3.0 and later
If you run the bigsql stop command, or in the case of an abrupt unhandled Db2 termination (crash), any statements or events that are in buffer but had not been written to disk yet are not captured in the audit logs. Buffer size can be configured by using the audit_buf_sz configuration parameter.
Audit runs generate an ignorable error entry
Applies to: 5.3.0 and later
Every audit run generates an additional (false) error entry in the diagnostic logs, indicating a path access permission issue. You can safely ignore this error.
Example of an error that you can ignore:
2025-11-13-13.18.07.454178+000 E6480E972             LEVEL: Error (OS)
PID     : 2109615              TID : 140412667792896 PROC : db2fmp (
INSTANCE: db2inst1             NODE : 000            DB   : BIGSQL
APPID   : *N0.DB2.251030051340
HOSTNAME: c-db2u-dv-db2u-0
FUNCTION: DB2 UDB, oper system services, sqloQualifyPath, probe:20
MESSAGE : ZRC=0x870F0152=-2029059758=SQLO_RC_NOT_SET
          "A return code from a function that conditionally does not set one has been inappropriately consumed."
CALLED  : OS, -, realpath                         OSERR: EACCES (13)
DATA #1 : Codepath, 8 bytes
0
DATA #2 : signed integer, 4 bytes
2
DATA #3 : String, 53 bytes
/mnt/logs/audit/temp_del_path/stmt_20251113131807.del
DATA #4 : unsigned integer, 8 bytes
4096
DATA #5 : String, 53 bytes
/mnt/logs/audit/temp_del_path/stmt_20251113131807.del
DATA #6 : String, 105 bytes
Search for ossError*Analysis probe point after this log entry for further
self-diagnosis of this problem.
Audit log entries might not be forwarded to the zen-audit service

Applies to: 5.3.0 and later

You might lose log entries when the log-streaming pod crashes or the audit log PVC is experiencing issues, resulting in logs not being forwarded to the IBM Software Hub audit service.

Data source and connection issues

For information about limitations and known issues that apply to data sources and connections, see Limitations and known issues for data sources in Data Virtualization.

Data virtualization issues

Incorrect column names might appear when you preview joined virtualized assets
Applies to: 5.3.0

When you join two virtualized assets, and then preview it, the column names displayed might be different from those in the original assets. This naming discrepancy impacts only the preview, and does not effect the final virtualized data objects, which will display the correct column names. There is no workaround.

RELOADTABLES API and the List view might be slow or might fail to fetch data if the schema, table, or column name contains wildcard characters
Applies to: 5.3.1

You might not see tables after you run the RELOADTABLES API or access the List view from the Virtualize page. When a schema, table, or column name contains wildcard characters such as an underscore (_) or percent sign (%), a wildcard search is performed instead of a literal search when fetching data. As a result, the execution phase might be slow or might fail in some cases.

Workaround: Configure schema filtering to limit the scope and speed up RELOADTABLES. You can set the RELOADTABLES_ALLTABS and RELOADTABLES_ALLCOLS filters using the SETCONFIGPROPERTY API on the Run SQL page. For schema, table, or column names that contain wildcards, ensure that you escape the wildcard characters using two backslashes (\). See also SETCONFIGPROPERTY properties.
In this example, hive_data is the catalog name and gosales_1021 is the schema but with an escaped underscore (gosales\\_1021):
call DVSYS.setconfigproperty('RELOADTABLES_ALLTABS_PREST10000','hive_data,gosales\\_1021,null,null','qpendpoint_1',?,?);
call DVSYS.setconfigproperty('RELOADTABLES_ALLCOLS_PREST10000','hive_data,gosales\\_1021,null,null','qpendpoint_1',?,?);
Users with a username that start with an underscore (_) are unable to access or query virtualized tables
Applies to: 5.3.0 and later
Despite being granted the required permissions, users that have a username that start with an underscore (_) are unable to access or query virtualized tables. If that user attempts to access virtualized tables, then this error displays:
Unexpected error code "58009" received from data source "QPLEX". Associated text and tokens are "Network protocol exception: DSS chained with same id at en".. SQLCODE=-1822, SQLSTATE= , DRIVER=4.32.28

Workaround: Create users with a username that do not begin with an underscore (_), then proceed to grant them permissions, and then attempt to access or query the tables again.

The List view might display additional tables
Applies to: 5.3.0 and later
If you added a datasource with personal credentials enabled on the platform connection, then the List view in the Virtualize page might display:
      • Additional tables that the user might not have access to.
  • All of the tables that the user has access to; however, these tables are not available for previewing or virtualizing.
The List view might not display the column name or type of some tables
Applies to: 5.3.0 and later
If you added a datasource with personal credentials enabled on the platform connection, then the column name and type metadata of some tables might not be displayed in the List view. However, you can still virtualize those tables and modify the metadata of the virtualized table by selecting Edit columns from the Review cart and Virtualize tables page.
The List view on the Virtualize page does not consistently display tables or views
Applies to: 5.3.0 and later
The List view does not accurately display the tables or views the user has access to for data sources that have personal credentials enabled. For data sources with personal credentials enabled, this issue occurs because the list view displays tables or views that are relevant to CCDEFINER user.
Workaround: Use the Explore view to view the tables and views that you have access to.
Recreating virtualized tables after using the DROP NICKNAME SQL statement results in object already exists error

Applies to: 5.3.0 and later

When you use the DROP NICKNAME SQL statement to drop tables that have a defined nickname, attempting to recreate and virtualize the tables in the Review cart and virtualize tables page results in an Object already exists error.
Workaround: Use the delete API to remove all the data that is associated with the virtualized tables, then attempt to virtualize the table again using the same nickname. The delete API does not indicate whether it ran successfully, and you might encounter an error. Regardless, you should attempt to virtualize the tables again. To use the delete API, you will need to get an authorization token. For more information, see Delete virtualized data and Get authorization token.
Data that is virtualized with double-byte coded character sets and special characters might appear truncated

Applies to: 5.3.0 and later

When you virtualize a table with a double-byte coded character set and special characters, such as Swedish characters, data might appear to be cut off.

Workaround: When virtualizing a table, use the Edit columns menu to extend the field lengths for those columns.

Virtualizing a table with many columns or long column names might fail

Applies to: 5.3.0 and later

Virtualizing some tables in Data Virtualization might fail with a Virtual table creation failed message. Some tables contain columns with large STRING and CLOB data. Virtualizing the table by reducing the column width or even choosing just one of the columns fails with an error message.

Workaround:
  1. Set the remote schema filter to a schema where the large table does not exist so that it does not get cached.
  2. Create the virtual table with a direct CREATE OR REPLACE NICKNAME statement that includes the SOURCELIST definition option as shown in the following example. The SOURCELIST value describes the remote location of the table to be virtualized in the format <CID>:<RemoteSchema>. The CID is the connection ID for the source and can be found in source details of the Data sources page, or in the result of select * from dvsys.listrdbc query.
    /* IBM_DVSYS */ CREATE OR REPLACE NICKNAME "ADMIN"."VERY_LARGE_TABLE" for QPLEX.gaiandb."VERY_LARGE_TABLE"
        ( 
            VERY_LONG_COLUMN_IDENTIFIER1,
            VERY_LONG_COLUMN_IDENTIFIER2,
            VERY_LONG_COLUMN_IDENTIFIER3,
            ...
            VERY_LONG_COLUMN_IDENTIFIER999,
            VERY_LONG_COLUMN_IDENTIFIER1000
    ) OPTIONS(SOURCELIST 'DB210000:DRV');
    
    An example of an SQL command to create a large virtual table.
  3. Query individual columns of the large virtual table.

    An example of an SQL statement to query a large table.

  4. Run aggregations and most other queries.
    Note:

    You cannot select all columns for the large table with a SELECT * statement. You see an error message that is similar to the following message.

    SQL5105N  The statement failed because a Big SQL component encountered an 
    error.  Component receiving the error: "DV-FMP".  Component returning the 
    error: "Virtualization Connector".  Log entry identifier: "GAI-001-NA".  
    Reason: "".  SQLSTATE=58040
    

Installation and upgrade issues

listnodes does not display remote connects after upgrade from version 5.2.0 to 5.3.0

Applies to: 5.3.0 and later

After you upgrade to IBM Cloud Pak® for Data version 5.3.0, all of the remote connectors associated with the Data Virtualization instance does not show up in listnodes when you run select node_name from dvsys.listnodes. Only the qpagents are displayed. Upgrading remote connectors by using the stored procedure causes the following error, preventing the remote connectors from being updated automatically.

Example error:

[db2inst1@c-db2u-dv-db2u-0 - Db2U ~]$ db2 "call dvsys.updateremoteconnector('apiocp418fips1ucpfyreibmcom:6556',?,?)"

  Value of output parameters
  --------------------------
  Parameter Name  : NUM_UPGRADED
  Parameter Value : 0

  Parameter Name  : DIAGS
  Parameter Value : null,null, failed with The number of columns in the derived column list must match the number of columns in table 'GQ'.;

  Return Status = 0
[db2inst1@c-db2u-dv-db2u-0 - Db2U ~]$
Workaround: Update the remote connectors manually by completing these steps.
  1. On the remote connector machine, run the following command from the sysroot sub-directory inside of your remote connector directory:
    killGaianServers.sh
  2. Create a new remote connector install script from the IBM Cloud Pak for Data console. Use a temporary directory on the Remote Connector machine as your target install directory for this step.
  3. Run the newly created remote connector install script. This script downloads the latest remote connector release and installs it in your chosen temporary directory.
  4. Promptly stop the new remote connector:
    Linux
    On Linux, run the killGaianServer.sh script.
    Windows
    On Windows, run the uninstall_service.bat file.
  5. Copy the contents of sysroot/lib in your new temporary directory to your original remote connector directory sysroot/lib to update the old remote connector jars.
  6. Start your original remote connector:
    Linux
    On Linux, run this command:
    nohup datavirtualization_start.sh
    Windows
    On Windows, start the DataVirtualizationService service. For example: DataVirtualizationService6414.
Upgrading your Data Virtualization instance from IBM Cloud Pak for Data version 4.8 and 5.1.2 displays Error updating Db2 database error

Applies to: 5.3.0 and later

When you attempt to upgrade your Data Virtualization instance to 5.3.0, the upgrade fails and displays the Error updating Db2 database error in the head pod similar to this example:
2025-06-07T18:53:46.044414567Z MESSAGE: Failed to create module SYSIBMADM.IDAX_MESS_P_RAISE_MESSAGE so forced to recreate all objects in the array
2025-06-07T18:53:46.044414567Z MESSAGE: Error creating module: SYSIBMADM.IDAX_MESS_P_RAISE_MESSAGE
... ...
2025-06-07T18:53:46.156792202Z The database update (db2updv121) exited with a non-zero return-code 72, See /db2u/tmp/db2updv.BIGSQL.20250607184055.log for more details ...
2025-06-07T18:53:46.156792202Z + return 0
2025-06-07T18:53:46.156792202Z + exit 72
2025-06-07T18:53:46.159809670Z + [[ 72 -ne 0 ]]
2025-06-07T18:53:46.159809670Z + log_echo bigsql_update_or_upgrade_db 'Error updating Db2 database'
Additionally, Db2 query indicates that there were no ROUTINE with name IDAX_MESS:
[db2inst1@c-db2u-dv-db2u-0 - Db2U ~]$ db2 "select varchar(routineschema,10)routineschema, varchar(routinename,25)routinename , varchar(specificname,35)specificname from syscat.rodb2 "select varchar(routineschema,10)routineschema, varchar(routinename,25)routinename , varchar(specificname,35)specificname from syscat.routines where routinemodulename = 'IDAX' and (routinename like 'IDAX_MESS%' or specificname like 'IDAX_MESS%' )"

ROUTINESCHEMA ROUTINENAME               SPECIFICNAME
------------- ------------------------- -----------------------------------

  0 record(s) selected.
However, the worker pods are upgraded successfully:
2025-06-07T18:36:04.195966791Z + echo -e '/opt/dv/current/db2u-dv-setup.sh 2025-06-07_18.36.04.191_UTC  INFO db2u-dv-setup,PHASE:end,MSG:Start up DV on c-db2u-dv-db2u-1.c-db2u-dv-db2u-internal.thanos.svc.cluster.local'
2025-06-07T18:36:04.200718069Z + ec=0
Workaround: Scale up or scale down the Data Virtualization head and worker pods to restart the pods and resume the upgrade. Replace instances of <DV_INSTANCE_NAMESPACE> with your Data Virtualization instance namespace.
  1. Obtain the Data Virtualization head and worker sts current replicas number:
    DV_STS_REPLICAS=$(oc -n <DV_INSTANCE_NAMESPACE> get sts c-db2u-dv-db2u -ojsonpath={.spec.replicas})
  2. Scale down the Data Virtualization head and worker pods:
    oc -n <DV_INSTANCE_NAMESPACE> scale sts c-db2u-dv-db2u --replicas=0
    Wait for all of the c-db2u-dv-db2u-xxx pods to delete.
  3. Scale up the Data Virtualization head and worker pods to the replicas that you obtained from the first step:
    oc -n <DV_INSTANCE_NAMESPACE> scale sts c-db2u-dv-db2u --replicas=$DV_STS_REPLICAS
    The Data Virtualization head and worker pods restart and the Data Virtualization upgrade resumes automatically.
Data Virtualization passthrough route c-db2u-dv-db2u is missing after upgrade

Applies to: 5.3.0 and later

When you upgrade your Data Virtualization instance, the passthrough route is missing and Data Virtualization displays the error FAIL: route c-db2u-dv-db2u does not exist in namespace zen.
The error might resemble this example:
=======================================================================
dv-validate.sh : 12. Check able to connect to DV port
=======================================================================

Tue Jun 3 08:02:02 UTC 2025 12. Check able to connect to DV SSL port

$ oc get --namespace zen -o jsonpath='{.spec.host}' route c-db2u-dv-db2u
Error from server (NotFound): routes.route.openshift.io "c-db2u-dv-db2u" not found
dv-validate.sh : FAIL: route c-db2u-dv-db2u does not exist in namespace zen
$ date
Tue Jun  3 08:02:03 UTC 2025
Symptoms: Running this command does not return a route.
  • Replace <DV_INSTANCE_NAMESPACE> with your Data Virtualization instance namespace.
oc -n <DV_INSTANCE_NAMESPACE> get route c-db2u-dv-db2u
Workaround: To workaround this issue, you can either use NodePort instead of the passthrough route, or you can manually create the route after the Data Virtualization instance upgrade. For more information on NodePort, see Configuring network requirements.

To manually create the route, complete these steps:

  1. Set the DV_NAMESPACE variable with the OpenShift® namespace that contains the Data Virtualization instance.
  2. Set the EXTERNAL_HOST variable with the external host name accessible to the end users.
  3. Run this command to obtain the Data Virtualization formation ID.
    DV_FORMATION_UID=$(oc -n $DV_NAMESPACE get formation db2u-dv -o jsonpath="{.metadata.uid}")
  4. Run this command to create the route in the same namespace as you set in the DV_NAMESPACE variable. The name of the route is c-db2u-dv-db2u.
    cat <<EOF | oc apply -f -
    apiVersion: route.openshift.io/v1
    kind: Route
    metadata:
      annotations:
        openshift.io/host.generated: "true"
      labels:
        app.kubernetes.io/component: cr
        app.kubernetes.io/name: db2u-dv
        icpdsupport/addOnId: dv
        icpdsupport/module: instance
      name: c-db2u-dv-db2u
      namespace: $DV_NAMESPACE
      ownerReferences:
      - apiVersion: db2u.databases.ibm.com/v1
        kind: Formation
        name: db2u-dv
        uid: $DV_FORMATION_UID
    spec:
      host: c-db2u-dv-db2u-$DV_NAMESPACE.$EXTERNAL_HOST
      port:
        targetPort: 50001
      tls:
        termination: passthrough
      to:
        kind: Service
        name: c-db2u-dv-dv-head-svc
        weight: 100
      wildcardPolicy: None
    EOF
  5. Verify the new route by running this command:
    oc -n $DV_NAMESPACE get route c-db2u-dv-db2u 
    This command should return one route.
Upgrading remote connectors from Cloud Pak for Data version 4.8.8 fails with SQL4302N error

Applies to: 5.3.0 and later

When you upgrade your Data Virtualization remote connectors from Cloud Pak for Data version 4.8.8 to 5.3.0, the dvsys.updateremoteconnector() procedure fails and displays the SQL4302N error.

This issue is due to jars in the /mnt/blumeta0/home/db2inst1/sqllib/function directory not being upgraded correctly.

The error might resemble this example:
select node_name,agent_class from dvsys.listnodes where agent_class = 'R' 

NODE_NAME                                                                        AGENT_CLASS         
-------------------------------------------------------------------------------- --------------------
apiocp455fips6rcpfyreibmcom:6556                                                 R                   

  1 record(s) selected.


call dvsys.updateremoteconnector('',?,?) 
SQL4302N  Procedure or user-defined function "DVSYS.UPDATEREMOTECONN", 
specific name "DV_UPDATEREMOTEGAIANNO" aborted with an exception 
"com/ibm/gaiandb/GaianDBC".  SQLSTATE=38501

select node_name,agent_class from dvsys.listnodes where agent_class = 'R' 

NODE_NAME                                                                        AGENT_CLASS         
-------------------------------------------------------------------------------- --------------------
apiocp455fips6rcpfyreibmcom:6556                                                 R                   

  1 record(s) selected.
Workaround:
  1. Log into the Data Virtualization head pod and switch to the db2inst1 user:
    oc ${DV_INSTANCE_NAMESPACE} rsh c-db2u-dv-db2u-0 bash
    su - db2inst1
  2. In the sqllib/function directory, complete the following:
    1. Delete the dv_caching_predict.py file.
    2. Delete the model_rr_d3_d3_1g.pkl file.
    3. Delete all of the jar files except for the BIDDL.jar file.
  3. Restart Db2 by running these commands:
    1. db2stop force
    2. db2start
  4. On the remote connector host, install Java 21 from IBM Semeru Runtimes Downloads.
  5. Open the datavirtualization.env file, and replace the existing JAVA_HOME path with the new Java 21 path.
  6. In the Data Virtualization head pod as the db2inst1 user, run this command:
    dvsys.updateremoteconnector()
  7. On the remote connector host, navigate to the sysroot/data directory and complete the following:
    1. In the derby.properties file, change the derby.authentication.provider property to com.ibm.gaiandb.queryplex.DVAuthenticator.
    2. In the gaiandb_config.properties file, change the EXTENDER_CLASS_NAME property to com.ibm.gaiandb.queryplex.ConfluenceExtender.
  8. Start the remote connector:
    • Linux
      On Linux, run this command:
      nohup datavirtualization_start.sh
    • Windows
      On Windows, start the DataVirtualizationService service. For example: DataVirtualizationService6414.
  9. In the Data Virtualization head pod as the db2inst1 user, verify the remote connector by running these commands:
    Note: In addition, queries that you created using the remote connector before the upgrade should now work again.
    1. db2 connect to bigsql
    2. db2  "select node_name from dvsys.listnodes"
      The result displays the endpoints and the remote connector nodes, similar to this example:
      NODE_NAME                                                                       
      --------------------------------------------------------------------------------
      AdminNode                                                                       
      apiocp455b1ccpfyreibmcom:6556                                                   
      qpendpoint_1:6415                                                               
      qpendpoint_2:6416                                                               
      qpendpoint_3:6417                                                               
      qpendpoint_4:6418                                                               
      qpendpoint_5:6419                                                               
      
        7 record(s) selected.
Upgrading remote connectors from Cloud Pak for Data version 5.0 fails with Failed to upgrade GaianDB jars null error

Applies to: 5.3.0 and later

When you upgrade your Data Virtualization remote connectors from Cloud Pak for Data version 5.0, the upgrade fails with the Failed to upgrade GaianDB jars null error.

The error resembles the following example:
select node_name,agent_class from dvsys.listnodes where agent_class = 'R' 

NODE_NAME                                                                        AGENT_CLASS         
-------------------------------------------------------------------------------- --------------------
apiocp417fips6ecpfyreibmcom:6556                                                 R                   

  1 record(s) selected.


call dvsys.updateremoteconnector('',?,?) 

  Value of output parameters
  --------------------------
  Parameter Name  : NUM_UPGRADED
  Parameter Value : 0

  Parameter Name  : DIAGS
  Parameter Value : apiocp417fips6ecpfyreibmcom:6556, failed with The exception 'java.lang.Exception: Failed to upgrade GaianDB jars null' was thrown while evaluating an expression.;

  Return Status = 0

select node_name,agent_class from dvsys.listnodes where agent_class = 'R' 

NODE_NAME                                                                        AGENT_CLASS         
-------------------------------------------------------------------------------- --------------------

  0 record(s) selected.
Workaround: Complete these steps to workaround the issue.
  1. On the remote connector machine, run the following command from the sysroot sub-directory inside of your remote connector directory.
    killGaianServers.sh
  2. Create a new remote connector install script from the Cloud Pak for Data console. Use a temporary directory on the Remote Connector machine as your target install directory for this step.
  3. Run the newly created remote connector install script. This script downloads the latest remote connector release and installs it in your chosen temporary directory.
  4. Promptly stop the new remote connector.
    • Linux

      On Linux, run the killGaianServer.sh script.

    • Windows
      On Windows, run the uninstall_service.bat file.
  5. Copy the contents of sysroot/lib in your new temporary directory to your original remote connector directory sysroot/lib to update the old remote connector jars.
  6. Start your original remote connector.
    • Linux
      On Linux, run this command:
      nohup datavirtualization_start.sh
    • Windows
      On Windows, start the DataVirtualizationService service. For example: DataVirtualizationService6414.
Upgrading existing Cloud data source connections to Data Virtualization on Cloud Pak for Data version 5.3.0 causes certificate errors

Applies to: 5.3.0 and later

When you upgrade an existing Cloud data source connection from a release prior to 5.1.0 to Data Virtualization on Cloud Pak for Data version 5.3.0, you might encounter this error stating that the certificate cannot be found:
... Reason: /opt/ibm/db2/V11.5.0.0/java/jdk64/jre/lib/security/cacerts (No such file or directory)
In releases prior to version 5.1.0, certificates that were required to connect to an external data source were stored in the default Java trust store. In version 5.1.0, additional security requirements (including FIPS support) require certificates to be stored in trust stores specific to each data source connection. As a result, when you upgrade to version 5.3.0, existing connections might continue to point to the old Java trust store instead of the required trust store for each data source.

Workaround: To workaround this issue, complete these steps.
  1. Run this stored procedure to recreate all the connections using the newly updated connection information.
    call DVSYS.RESTORECONFIG('',?,?)
    Ensure that all the connections (CID) are listed as AVAILABLE on the web client. If this does not fix the problem, or there remains UNAVAILABLE connections, then proceed to the next step.
  2. Conditional step: If the previous step did not fix the problem, then complete this conditional step in the RunSQL console.
    1. Run this query to retrieve the CID of all UNAVAILABLE connections.
      select CID from DVSYS.listrdbc where cstatus='UNAVAILABLE';
      Take a note of the CID for the next step.
    2. Run this query to retrieve the CCID, USR and PWD. Replace <CID> with the CID from the previous step.
      Note: You must repeat these steps for each UNAVAILABLE connection.
      select * from  dvsys.connection_details where cid='<CID>'" 
      For example:
      select * from  dvsys.connection_details where cid='DB210000'" 
      If the connection uses vaulted credentials, the output displays the user and password masked using the string {SECRET_REF}.
    3. Run the following setRdbcX stored procedure. Ensure you replace <SRC_TYPE>, <HOST_NAME>, <DATABASE_PORT>,<DATABASE_NAME>, <USR>, <PWD>, <USE_SSL> and <CCID> values from the connection_details table, and the associated <NODE_NAME> and <CID> values from the first step.

      You must also add additional options including EDITCID and CCID in <ADDITIONAL_OPTIONS>. See the following example.

      Note: If the connection does not use vaulted credentials, then you must explicitly replace <USR> and <PWD> with the correct user and password. This requires a user with the Data Virtualization Admin role.
      call DVSYS.setRdbcX('<SRC_TYPE>','<HOST_NAME>','<DATABASE_PORT>','<DATABASE_NAME>','','<USR>','<PWD>','<USE_SSL>','<VALIDATE_CERT>','','','<NODE_NAME>','<ADDITIONAL_OPTIONS>',?,?,?);
      For example:
      call DVSYS.setRdbcX('DB2','924186d3-ec79-4daf-aa77-3297081a929b.zu9tc4nd0urletsa6ufg.ds.app.cloud','31101','bludb','','{SECRET_REF}','{SECRET_REF}', '1', '0', '', '', 'qpendpoint_3:6417', 'EDITCID=DB210000,CCID=85b3d676-f627-4f57-a8fd-aad00782c2de',?,?,?) 
      The connection is recreated successfully.
Upgrading remote connectors from IBM Cloud Pak for Data versions prior to 5.1.0 causes an Unable to initialise GaianNode data (aborting) error

Applies to: 5.3.0 and later

When you upgrade remote connectors to IBM Cloud Pak for Data version 5.3.0 from versions prior to 5.1.0, using the stored procedure DVSYS.UPDATEREMOTECONNECTOR, the remote connectors do not start and are not displayed in the output select node_name from dvsys.listnodes. An error message similar to the following example can be found in <Remote_Connector_Install_Path>/sysroot/data/gaiandb-stdout.log.

Example error message:

Unable to initialise GaianNode data (aborting): Another GaianNode or Derby instance may be attached to db folder 'gaiandb'? Otherwise, authentication may have failed or the database may be corrupted (delete it & restart to recycle it). Also check optional messages below.
java.sql.SQLException: java.sql.SQLException: Failed to start database 'gaiandb6556' with class loader jdk.internal.loader.ClassLoaders$AppClassLoader@f1fd8dc9, see the next exception for details. SQL: CREATE FUNCTION maintainConnection2 (nodeid VARCHAR(100), usr VARCHAR(10), pwd VARCHAR(10), extraInfo VARCHAR(32672)) RETURNS VARCHAR(32672) PARAMETER STYLE JAVA LANGUAGE JAVA NO SQL EXTERNAL NAME 'com.ibm.gaiandb.GaianDBConfigProcedures.maintainConnection2'
Workaround:
  1. Change the following properties in the files gaiandb_config.properties and derby.properties. Both of the files are located in the directory <Remote_Connector_Install_Path>/sysroot/data.
    • In the gaiandb_config.properties file, replace EXTENDER_CLASS_NAME=com.ibm.gaiandb.confluence.ConfluenceExtender with this property:
      EXTENDER_CLASS_NAME=com.ibm.gaiandb.queryplex.ConfluenceExtender
    • In the derby.properties file, replace derby.authentication.provider=com.ibm.gaiandb.confluence.DVAuthenticator with this property:
      derby.authentication.provider=com.ibm.gaiandb.queryplex.DVAuthenticator
  2. Restart the Remote connector by completing one of the following options.
    • Linux
      For Linux systems, run this command to start the Remote connector from the directory <Remote_Connector_Install_Path>/sysroot:
      nohup ./datavirtualization_start.sh &
    • Windows
      For Windows systems, open the Microsoft Windows Services console (or services.msc), and then restart the Remote connector. Your Remote connector is named DataVirtualizationService<port> .

      For example, the Remote connector is named DataVirtualizationService6414, and you would restart this service in the Microsoft Windows Services console.

Db2REST pod in CrashLoopBackOff state

Applies to: 5.3.0 and later

You can't connect to the Db2REST server. After enabling REST, the REST pod enters CrashLoopBackOff state and repeatedly restarts and never reaches completion.
You see the following log:
chmod: cannot access '/db2u/tmp/os_envar_configmap': No such file or directory
/db2u/scripts/include/common_functions.sh: line 23: /db2u/tmp/os_envar_configmap: No such file or directory
ls: cannot access '/opt/ibm/dbrest/auth': No such file or directory
......+.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*....+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*............+..+.+.....+.......+...........+....+..+....+..............+...+...+.......+...+............+...+....................+.+...+..+.........+....+.......................+............+...+....+........+.+.....+.+.....+....+...............+.....+.+.....+......+....+..................+......+..+....+...+..+....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
...........+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..........+.........+.....+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-----
Starting up IBM Db2 REST container...
Starting the Db2 REST server...
Starting server with https
/opt/ibm/dbrest/scripts/../bin/db2rest-server: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory
SERVER STATUS: INACTIVE
#############################################################
###  IBM Db2 REST container was started successfully   ###
#############################################################
* If you used docker/oc/kubectl logs to monitor progress, detach from the
console by pressing Ctrl+C.
* To get a command line prompt, issue the following command from the host:
    [ docker | oc | kubectl -n <NS> ] exec -it <rest container name> bash
#############################################################
Workaround: Complete the following steps to resolve this issue:
  1. Find your affected db2ucluster resource by running the following command:
    oc get db2ucluster
    Refer to the following example output:
    NAME      STATE      AGE
    db2u-dv   Ready      34m
  2. Disable REST for your db2ucluster.
    1. Run the following command to edit your db2ucluster:
      oc edit db2ucluster deployment_ID
    2. Set rest to false in your CR. Refer to the following example:
      spec:
        ...
        addOns:
          rest:
            enabled: false
  3. Save your db2u-release Config Map:
    oc get cm db2u-release -n ${PROJECT_CPD_INST_OPERATORS} -o yaml > db2u-release.yaml
  4. Extract, then replace your REST images.
    1. Extract your Db2 11.5.9.0 REST image:
      REST_IMAGE_1159=$(oc get cm db2u-release -n ${PROJECT_CPD_INST_OPERATORS} -o=jsonpath='{.data.json}' | jq '.databases.db2u["11.5.9.0"].images.rest')
    2. Extract your Db2 12.1.0.0 REST image:
      REST_IMAGE_CN1=$(oc get cm db2u-release -n ${PROJECT_CPD_INST_OPERATORS} -o=jsonpath='{.data.json}' | jq '.databases.db2u["12.1.0.0"].images.rest')
    3. Replace your Db2 12.1.0.0 REST image with your 11.5.9.0 REST image:
      sed -i.bak "s|\"rest\": $REST_IMAGE_CN1|\"rest\": $REST_IMAGE_1159|g" db2u-release.yaml
  5. Apply your changes to your ConfigMap:
    oc apply -f db2u-release.yaml -n ${PROJECT_CPD_INST_OPERATORS}
  6. Delete your ConfigMap YAML file:
    rm db2u-release.yaml
  7. Enable REST for your db2ucluster.
    1. Run the following command to edit your db2ucluster:
      oc edit db2ucluster deployment_ID
    2. Set rest to true in your CR. Refer to the following example:
      spec:
        ...
        addOns:
          rest:
            enabled: true

User and group management issues

Privileges and authorities that are granted to user groups are not considered when you create views

Applies to: 5.3.0 and later

Privileges and authorities that are granted to user groups are not considered when you create views. This limitation is a result of a Db2 limitation on groups.

Workaround: To workaround this issue, instead of granting access to specific groups from the Manage access page, you should grant access to the public by selecting All data virtualization users. Then create a new data protection rule to define Allow or Deny rules based on groups.

Data governance issues

RCAC data protection rules are not applied to a view if both Deny access and masking IBM Knowledge Catalog rules are applied to the table referenced by the view
Applies to: 5.3.0 and later

If a table has both the Deny access rule and external RCAC (column and row filters) IBM Knowledge Catalog data protection rules applied to it, then the RCAC rules are not applied to any views that reference that table, leaving the view unmasked.

Workaround:

Use Data Virtualization Db2 authorizations to deny access and define IBM Knowledge Catalog data protection rules to mask data and filter rows instead of doing both through IBM Knowledge Catalog data protection rules. For more information, see Authorization model for views.

You cannot apply business terms when you virtualize files in data sources on the Files tab

Applies to: 5.3.0 and later

When you virtualize files in Data > Data virtualization > Virtualize, the Business terms column is not available for data sources on the Files tab. These data sources do not support business terms.

You cannot see business term assignments or grouped tables in the Explore view

Applies to: 5.3.0 and later

On the Virtualize page, you cannot see business term assignments and you cannot see grouped tables.

Workaround: Switch to the List view to see business term assignments and grouped tables.

Cannot see list of available tables in the strict virtualization mode

Applies to: 5.3.0 and later

In the strict virtualization mode (where you can see tables only if they have at least one column with business term assignment), when you navigate to the Virtualize page, the console appears to be loading the table list for a while without showing any tables. The loading can be much slower compared to the default virtualization mode while the console evaluates the list of eligible tables that can be virtualized, depending on term assignments to data source table and column names.

A virtualized object cannot be used in Cognos Dashboards without credentials and an appropriate role

Applies to: 5.3.0 and later

Using a virtualized object in Data Virtualization displays an error message if you do not enter credentials for the Data Virtualization connection or you do not have the correct role.

If you did not enter a username and password when you created the connection to the Data Virtualization data source, you see the following error: Missing personal credentials. If you are not assigned the Admin or Steward role for this object, you see the following error: Unable to access this asset.

To work around this issue, see A virtualized object cannot be used in Cognos Dashboards without credentials and an appropriate role in Data Virtualization.

Caching issues

Online backup of Data Virtualization can affect cache refreshes

Applies to: 5.3.0 and later

If you schedule an online backup in Data Virtualization and if at the same time a cache refresh operation runs, the cache write operation can fail.

Online backup in Data Virtualization works by quiescing database write and update operations. Cache refresh is a write operation that updates Data Virtualization caches with fresh data from remote data sources. Both online backup and cache refresh operations can be scheduled to run periodically. These schedules can conflict and every time the cache tries to refresh, an online backup might be in progress or it might start while the cache refresh is in progress. In these scenarios, cache refresh operations can fail with an error similar to the following message. The cache is active but it contains stale data.

The statement failed because a Big SQL component encountered an error. 
Component receiving the error: "BigSQL IO". Component returning the error: "UNKNOWN". 
Log entry identifier: "[BSL-1-b1bf428f]". Reason: "Cannot add block to /warehouse".. 
SQLCODE=-5105, SQLSTATE=58040, DRIVER=4.27.25

Cache auto-refresh might also fail and you can either manually refresh or wait for the next auto-refresh. However, if the online backup is scheduled such that it conflicts with any cache's refresh schedule, then every auto-refresh of those caches will fail.

Workaround: Reschedule the cache's refresh or the online backup schedule to avoid conflicts. You can also refresh the cache manually at any time.

File issues

You might encounter errors when you virtualize large Excel files

Applies to: 5.3.0 and later

You might experience an error when you preview or virtualize large files with Excel format (XLS):
ERROR 400 'Your InputStream was neither an OLE2 stream nor an OOXML stream' was thrown while evaluating an expression.
Workaround: You can follow these steps:
  1. Load the file data into a table on a supported data source.
  2. Virtualize the table.
  3. Optionally, you can change the format of the file; for example, to CSV format before you virtualize it again.
Encoding detection override for files data with Japanese characters

Applies to: 5.3.0 and later

For text files exposed by remote connectors, Cloud Pak for Data automatically detects the encoding scheme of flat data files, such as CSV and TSV files. However, to avoid decoding issues, it is recommended that you set the encoding scheme manually for flat data files.