Known issues and limitations for IBM Master Data Management
The following known issues and limitations apply to IBM Master Data Management.
For information about known issues and limitations that apply to backup, restore, or other platform-level operations, see Known issues and limitations for IBM Software Hub.
For additional solutions to help you to resolve common problems that you might encounter with IBM Master Data Management, see Troubleshooting IBM Master Data Management.
- Installation, upgrade, and setup
-
- After upgrading IBM Master Data Management, the ibm-mdm service account keeps its privileges even if the upgrade is done with lesser privileges
- On some environments, IBM Master Data Management upgrades can fail due to a Neo4j PVC expansion failure
- When you scale down the IBM Master Data Management service, the CR becomes stuck in an InProgress state
- After an IBM Master Data Management service upgrade, you cannot see any results when you search your master data
- After upgrading IBM Master Data Management, Redis operands are at a lower level than the Redis operator
- General
-
- After running matching, even when successful, you can see a 400 error notification
- Clicking Data types in the breadcrumb navigation bar might open a 404 error page
- Neo4j databases might enter quarantine mode, preventing normal IBM Master Data Management operations
- Performance can degrade if attribute composition is configured to allow a list of values
- Searching by using a partial entity ID does not return any matches
- The order of parameters in the IBM Master Data Management SDK can change without warning
- Limitations
Installation, upgrade, and setup
- After upgrading IBM Master Data Management, the ibm-mdm service account keeps its privileges even if the upgrade is done with lesser privileges
- On some environments, IBM Master Data Management upgrades can fail due to a Neo4j PVC expansion failure
- When you scale down the IBM Master Data Management service, the CR becomes stuck in an InProgress state
- After an IBM Master Data Management service upgrade, you cannot see any results when you search your master data
- After upgrading IBM Master Data Management, Redis operands are at a lower level than the Redis operator
After upgrading IBM
Master Data Management, the
ibm-mdm service account keeps its privileges even if the upgrade is done with
lesser privileges
Applies to: 5.4.0
When you upgrade the IBM
Master Data Management service with
a user who has minimum RBAC permissions, the ibm-mdm service account user keeps the
same permissions as were configured in the pre-upgraded service.
This issue does not negatively impact installation or upgrade, but it can provide the IBM Master Data Management service account with more privileges than intended.
- Resolving the problem
-
To resolve this issue, delete the
ibm-mdmrole created by theNamespacescopeoperator:- Identify the role created by the
Namespacescopeoperator that follows this naming convention:ibm-mdm-<random-identifier>.
The role has the following labels:# oc describe role ibm-mdm-<ID> -n ${PROJECT_CPD_INST_OPERANDS}Name: ibm-mdm-<ID> Labels: app.kubernetes.io/instance=namespace-scope app.kubernetes.io/managed-by=ibm-namespace-scope-operator app.kubernetes.io/name=namespace-scope - Delete the
role:
oc delete role ibm-mdm-<ID> -n ${PROJECT_CPD_INST_OPERANDS}
- Identify the role created by the
On some environments, IBM Master Data Management upgrades can fail due to a Neo4j PVC expansion failure
Applies to: Upgrades to 5.4.0
When upgrading the IBM
Master Data Management service on
environments where the StorageClass does not have the
allowVolumeExpansion flag enabled, the Persistent Volume Claim (PVC)
mdm-neo4j-metrics-<INSTANCE-ID> fails with a Forbidden
exception. This causes the Neo4j Custom
Resource (CR) to fail, which subsequently leads to a failure of the entire IBM
Master Data Management service upgrade.
- Resolving the problem
-
To resolve this issue after you encounter it, check the failing Neo4j PVCs indicated in the Neo4j CR status. If the failure is due to a storage restriction, edit the relevant
StorageClassand setallowVolumeExpansion: true. Reconcile the Neo4j and IBM Master Data Management operator pods by restarting them.To resolve this problem:- Identify the storage class used by the
PVC.
The command will return information similar to the following:oc get pvc mdm-neo-<INSTANCE-ID>-metrics -o yaml -n ${PROJECT_CPD_INST_OPERANDS}| grep storageClassstorageClassName: managed-nfs-storage - Edit the storage class to add
allowVolumeExpansion: true.
Add the following line:oc edit storageclass <STORAGE-CLASS-NAME>
Example snippet:allowVolumeExpansion: trueapiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: managed-nfs-storage provisioner: cp4d/nfs-client reclaimPolicy: Delete volumeBindingMode: Immediate allowVolumeExpansion: true - Restart the Neo4j and IBM Master Data Management operator pods to apply the changes and resolve the PVC issue.
- Identify the storage class used by the
PVC.
When you scale down the IBM Master Data Management service, the CR becomes stuck in an InProgress state
Applies to: 5.4.0
When you scale down IBM
Master Data Management, the service
enters a disrupted state and its status shows as InProgress. This occurs because
Persistent Volume Claims (PVCs) cannot shrink to lower values due to a Kubernetes limitation. This
results in disruption in the Neo4j CR, which
eventually makes the IBM
Master Data Management service
unstable.
- Resolving the problem
-
To resolve this issue after you encounter it, check the IBM Master Data Management CR (
mdm-cr) status to determine if any PVCs are in an error state. Edit themdm-crfor those PVCs with values that match the previous (scaled up) size.To resolve this problem:
- Check the status of the Neo4j
CR.
oc get neo4j <MDM-NEO4J-CR-NAME> -n ${PROJECT_CPD_INST_OPERANDS} -o yaml - From the YAML output, identify PVCs that are in an error state. In the YAML, these PVCs are in
the
volumessection. Typically, you will see the following PVC types:data,logs,backup,metrics,pluginsand others. - Get the PVC sizes for each of the volumes.
oc get pvc mdm-neo-<INSTANCE-ID>-<PVC-NAME> -n ${PROJECT_CPD_INST_OPERANDS}For example, for themetricsvolume, run the following command:
The result will be similar to the following example:oc get pvc mdm-neo-<INSTANCE-ID>-metrics -n ${PROJECT_CPD_INST_OPERANDS}NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE mdm-neo-<INSTANCE-ID>-metrics Bound pvc-a5bf89ef-fb48-4b1a-8172-22e6a603144f 5Gi RWX managed-nfs-storage 18d - Edit the IBM
Master Data Management CR
(
mdm-cr).oc edit mdm-cr -n ${PROJECT_CPD_INST_OPERANDS} - In
mdm-cr, locate thevolumesconfiguration for Neo4j and update the storage sizes for the volume types that you identified as being in an error state. Provide values that match the previous (scaled up) size.neo4j: volumes: metrics: # data or logs, backup, etc. volumeClaimTemplate: resources: requests: storage: "10Gi" # Update to required size - Save your changes to
mdm-crand wait for the operator to reconcile. - To confirm that your changes resolved this issue, monitor the statuses of both the Neo4j CR and IBM
Master Data Management CR:
oc get mdm && oc get neo4j -w ${PROJECT_CPD_INST_OPERANDS}
- Check the status of the Neo4j
CR.
After an IBM Master Data Management service upgrade, you cannot see any results when you search your master data
Applies to: Upgrades from 5.1.0 and later where the database is Neo4j
After completing an upgrade of the IBM Master Data Management service, you cannot successfully search your master data from the screen. The search results are empty.
This issue only occurs when the service is using Neo4j as its database.
- Resolving the problem
-
To fix this issue, reindex your master data for searching:
- Get the IBM Software
Hub cluster host
URL:
oc get routes - Get the ID of the IBM
Master Data Management instance:
- From the IBM Software Hub home page, go to .
- Click the link for the IBM Master Data Management instance.
- Copy the value after mdm- in the URL.
For example, if the end of the URL is
mdm-1234567891123456, the instance ID is1234567891123456.
- Run the following command to start a
reindexjob:curl --request POST \ --url https://<SOFTWARE-HUB-URL>/<MDM-INSTANCE-ID>/mdm/v1/reindex \ --header 'Authorization: <BEARER-TOKEN>' \ --header 'accept: application/json'
- Get the IBM Software
Hub cluster host
URL:
After upgrading IBM Master Data Management, Redis operands are at a lower level than the Redis operator
Applies to: 5.4.0
After completing an upgrade of the IBM Master Data Management service, you can encounter an issue where the corresponding Redis pods are upgraded incompletely. In this scenario, the Redis operator is upgraded to the latest version, but the Redis operands are at a lower version level.
- Resolving the problem
-
After upgrading the IBM Master Data Management service, complete the following steps:
Required role: To complete this task, you must be a cluster administrator.
- Run the following command to back up the
redissentinnelcustom resource.
Replace REDIS-CR-NAME with the name of the Redis custom resource.oc get redissentinels REDIS-CR-NAME -o yaml > mdm-redissentinels.yaml - On the upgraded deployment instance, run the following command to delete the
redissentinnelcustom resource.
Replace REDIS-CR-NAME with the name of the Redis custom resource.oc delete redissentinel REDIS-CR-NAME - Wait for the Redis pods to refresh. When
the status is
Synced successfully, the IBM Master Data Management service is ready to use.
- Run the following command to back up the
General
- After running matching, even when successful, you can see a 400 error notification
- Clicking Data types in the breadcrumb navigation bar might open a 404 error page
- Neo4j databases might enter quarantine mode, preventing normal IBM Master Data Management operations
- Performance can degrade if attribute composition is configured to allow a list of values
- Searching by using a partial entity ID does not return any matches
- The order of parameters in the IBM Master Data Management SDK can change without warning
After running matching, even when successful, you can see a 400 error notification
Applies to: 5.4.0
After the IBM
Master Data Management matching process
completes, you can get a 400 error notification with the message Missing required
parameters.
- Resolving the problem
-
There is no workaround required to resolve this problem. The error can safely be ignored and dismissed with no impact to your workflow.
Clicking Data types in the breadcrumb navigation bar might open a 404 error page
Applies to: 5.4.0
If you navigate to the IBM Master Data Management data types screen from your project's configuration assets page, then clicking Data types in the breadcrumb navigation bar opens a 404 error page instead of returning you to the main data types screen. You can also encounter this error when you right-click on Data types in the breadcrumb navigation to open a new tab.
- Resolving the problem
-
To work around this problem, avoid clicking the Data types link in the breadcrumb navigation bar. Instead, open the Master data navigation menu, then click Data types to open the main data types configuration page.
To open the data types screen in a new tab, copy the URL into a new tab.
Neo4j databases might enter quarantine mode, preventing normal IBM Master Data Management operations
Applies to: 5.4.0
Neo4j databases can automatically move into quarantine mode for a number of reasons, such as disk space limitations or connectivity issues. When the database is quarantined, you cannot complete any database transactions.
- Resolving the problem
-
To remove a Neo4j database from quarantine mode and return to a normal operational status, first address the underlying issues that caused the quarantine, such as low disk space or poor connectivity. After confirming that the underlying issue is resolved, complete the following steps to remove the database from quarantine:
- Get the Neo4j connection properties from the
secret.
oc get secrets/mdm-neo4j-connection-secret-<INSTANCE-ID> -n ${PROJECT_CPD_INST_OPERANDS} --template={{.data}}|awk '{print $1}'|cut -d ':' -f 2|base64 -d - Exec into any of the IBM
Master Data Management Neo4j
server pods (
mdm-neo-<INSTANCE-ID>). - Log in to the Neo4j cypher-shell by using
boltprotocol. Provide the connection properties that you obtained in step 1.cypher-shell -a <neo4j-user> -p <neo4j-password> -a bolt+ssc://<neo4j-load-balancer-url>:7687 -d system - Get a summary of your databases to determine which databases are in a quarantined
state.
show databases; - Run the following procedure for each affected database to remove them from
quarantine:
CALL dbms.quarantineDatabase("<dbName>",false); - Verify the database status to ensure none remain
quarantined.
show databases; - Restart Neo4j to refresh the nodes from the Neo4j server
pod.
neo4j restart
- Get the Neo4j connection properties from the
secret.
Performance can degrade if attribute composition is configured to allow a list of values
Applies to: 5.4.0
Due to a change in the way IBM Master Data Management determines how an entity's attribute values get selected from its member records, you can experience degraded system performance if the maximum number of values used for compositing entities is set to Single or list value, which is the default behavior. The performance issue only occurs in certain situations, and it can be resolved by changing the attribute composition settings.
- Resolving the problem
-
To resolve this issue, change the maximum number of values used for compositing entities from Single or list value to Single value only.
Required role: To complete this task, you must have IBM Master Data Management data engineer permissions.
- From the navigation menu, select Matching setup, then choose the Match settings tab.
- In the sidebar, choose Attribute composition.
- Ensure that the correct entity type from your data model is selected in the entity type selection menu.
- In the list of attribute composition rules, locate the rule that has Entity type in the Scope column.
- Hover your mouse over the rule and click the Edit pencil icon.
- Under , select Single value only.
- Click Save.
Searching by using a partial entity ID does not return any matches
Applies to: All releases of IBM Master Data Management
When you search for entity data in IBM
Master Data Management by using a partial entity ID as the search criteria, the search does not yield any results. This
issue occurs even if you use the IBM
Master Data Management
search API with the conditions contains, starts_with, or
ends_with.
To successfully search by entity ID, you must provide a complete entity ID value as the search
criteria. Optionally, you can use comparison operators such as equal,
not_equal, greater_than, greater_than_equal,
less_than, or less_than_equal.
The order of parameters in the IBM Master Data Management SDK can change without warning
Applies to: 5.4.0
When the IBM Master Data Management SDK is generated, the order of parameters can change. The OpenAPI YAML content is generated in a different order each time.
- Resolving the problem
-
If you use the IBM Master Data Management SDK, use the
buildermethod for each parameter instead of theconstructormethod that includes multiple parameters. Because the order of the parameters cannot be guaranteed, using theconstructormethod can negatively affect backwards compatibility.
Limitations
This section describes limitations with the IBM Master Data Management service. Where possible, these items provide instructions about how to work around the limitations.
In some IBM Master Data Management API responses, an incorrect record number can be returned
Applies to: 5.4.0
Some IBM
Master Data Management API responses include the
record_number field of a given record, often along with other record attributes.
Each record in IBM
Master Data Management has a unique,
system-generated record number. Record numbers are long type values, and sometimes
get parsed incorrectly when viewed in the Swagger 3.0 user interface.
This issue occurs because the Swagger UI does not correctly parse the large
record_number value. This is a known problem with JavaScript, which Swagger relies on.
Limitations of the IBM Master Data Management master data event streaming capability
Applies to: 5.4.0
IBM Master Data Management can, in near real time, propagate changes in your record and entity data directly to downstream systems through a connected Apache Kafka server.
- The event streaming capability uses a static cache for data subscriptions. This means that if
any changes are made to subscriptions at runtime, the IBM
Master Data Management Matching microservice pods must be restarted
for the changes to take effect. To minimize the effects of this limitation, ensure that all required
subscriptions are created and configured before using this feature in a production environment and
minimize the amount of changes made to subscriptions afterward. Any time a subscription is updated,
manually restart the IBM
Master Data Management
matching-mspods. - IBM
Master Data Management generates record change and
entity change events before the corresponding data change is persisted to the database. This can
have two possible effects:
- Early message processing. Event processing can receive event notifications and attempt to
retrieve the data before the data is successfully committed. To minimize the impact of this
possibility, configure a delay before running the
getEntityAPI for each message. - Incorrect message ordering. The sequence of events can be wrong, meaning that an update
entity message can arrive, for example, before a related create entity message
for the same entity.
To work around this issue, configure the IBM Master Data Management custom resource (
mdm-cr) so that the events are single-threaded:Required role: To complete this task, you must be a cluster administrator.
- Update
mdm-crwith the following parameters:mdm_matching: rabbitmq: listener: data: consumer_count: 1 - Wait for the
mdm-crto resolve so that the pods can pick up your configuration change. - To verify that this configuration is set correctly, go to a
matching-mspod, open the following YAML file: /usr/mdm-matching/conf/rabbitmq/rabbit-mq.yaml. Ensure that theMatchingDataListener'sconsumerCountvalue is set to 1.- listener: MatchingDataListener enable: True queueName: matching-data-queue-default exclusive: False durable: True autoDelete: False consumerCount: 1
- Update
- Early message processing. Event processing can receive event notifications and attempt to
retrieve the data before the data is successfully committed. To minimize the impact of this
possibility, configure a delay before running the