Known issues and limitations for IBM Match 360
The following known issues and limitations apply to IBM Match 360.
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 Match 360, see Troubleshooting IBM Match 360.
- Installation, upgrade, and setup
-
- When the internal TLS secret used by the IBM Match 360 service is refreshed, the corresponding Neo4j TLS does not get automatically refreshed
- After an IBM Match 360 service upgrade, you cannot see any results when you search your master data
- After upgrading IBM Match 360, Redis operands are at a lower level than the Redis operator
- General
-
- After shutting down IBM Match 360, the OpenSearch cluster continues running
- Clicking Data types in the breadcrumb navigation bar might open a 404 error page
- Neo4j databases might enter quarantine mode, preventing normal IBM Match 360 operations
- For entity types that include a filter to select which records to use for matching, the total number of records might be incorrectly reported
- 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 Match 360 SDK can change without warning
- Limitations
Installation, upgrade, and setup
- When the internal TLS secret used by the IBM Match 360 service is refreshed, the corresponding Neo4j TLS does not get automatically refreshed
- After an IBM Match 360 service upgrade, you cannot see any results when you search your master data
- After upgrading IBM Match 360, Redis operands are at a lower level than the Redis operator
When the internal TLS secret used by the IBM Match 360 service is refreshed, the corresponding Neo4j TLS does not get automatically refreshed
Applies to: 5.2.0 and later
The secret mdm-<INSTANCE-ID>-neo4j-tls is created by using
data from the internal-tls secret. However, when
internal-tls-certificate is refreshed due to certificate expiry or any other
reason, the Neo4j TLS (mdm-<INSTANCE-ID>-neo4j-tls) does not
automatically get updated to reflect the changes from the regenerated internal-tls
secret.
- Resolving the problem
-
To resolve this issue, trigger the Neo4j TLS secret to regenerate itself:
- Delete the
mdm-<INSTANCE-ID>-neo4j-tlssecret.oc delete secret mdm-<INSTANCE-ID>-neo4j-tls -n ${PROJECT_CPD_INST_OPERANDS} - Perform a redundant update on the IBM Match 360 (
mdm-cr) to cause the MDM operator to reconcile.
Wait foroc patch mdm mdm-cr --type=merge -p '{"spec":{"onboard":{"timeout_seconds": "800" }}}'mdm-<INSTANCE-ID>-neo4j-tlsto be recreated. - Refresh the IBM Match 360 service pods by
deleting
them.
oc delete pods --wait -lapp.kubernetes.io/component=mdm-dataoc wait --for=condition=ready --timeout=30s pod -lapp.kubernetes.io/component=mdm-dataoc delete pods --wait -lapp.kubernetes.io/component=mdm-matchingoc wait --for=condition=ready --timeout=30s pod -lapp.kubernetes.io/component=mdm-matchingoc delete pods --wait -lapp.kubernetes.io/component=mdm-modeloc wait --for=condition=ready --timeout=30s pod -lapp.kubernetes.io/component=mdm-modeloc delete pods --wait -lapp.kubernetes.io/component=mdm-configurationoc wait --for=condition=ready --timeout=30s pod -lapp.kubernetes.io/component=mdm-configurationoc delete pods --wait -lapp.kubernetes.io/component=mdm-joboc wait --for=condition=ready --timeout=30s pod -lapp.kubernetes.io/component=mdm-joboc delete pods --wait -lapp.kubernetes.io/component=mdm-em-uioc wait --for=condition=ready --timeout=30s pod -lapp.kubernetes.io/component=mdm-em-uioc delete pods --wait -lapp.kubernetes.io/component=mdm-config-ui
Wait for the pods to be recreated.oc wait --for=condition=ready --timeout=30s pod -lapp.kubernetes.io/component=mdm-config-ui
- Delete the
After an IBM Match 360 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 Match 360 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 Match 360 instance:
- From the IBM Software Hub home page, go to .
- Click the link for the IBM Match 360 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 Match 360, Redis operands are at a lower level than the Redis operator
Applies to: 5.2.0 and later
After completing an upgrade of the IBM Match 360 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 Match 360 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 Match 360 service is ready to use.
- Run the following command to back up the
General
- After shutting down IBM Match 360, the OpenSearch cluster continues running
- Clicking Data types in the breadcrumb navigation bar might open a 404 error page
- Neo4j databases might enter quarantine mode, preventing normal IBM Match 360 operations
- For entity types that include a filter to select which records to use for matching, the total number of records might be incorrectly reported
- 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 Match 360 SDK can change without warning
After shutting down IBM Match 360, the OpenSearch cluster continues running
Applies to: 5.2.2
After shutting down the IBM Match 360 service
by using the command, the associated
OpenSearch cluster
(cpd-cli manage shutdownmdm-index-store-os) remains available. The OpenSearch cluster continues in an available state
after the IBM Match 360 CR
(mdm-cr) enters a shutdown state.
After the service shuts down, the mdm-index-store-os cluster should be in
Quiesced state.
- Resolving the problem
-
To work around this problem, patch the OpenSearch cluster to manually quiesce
mdm-index-store-os.Required role: To complete this task, you must be a cluster administrator.- Get the full name, including the instance ID, of the
mdm-index-store-oscluster:oc get cluster -n ${PROJECT_CPD_INST_OPERANDS} - Using the full cluster name and instance ID gathered in the previous step, run the following
command to quiesce
mdm-index-store-os-<INSTANCE-ID>:oc patch cluster mdm-index-store-os-<INSTANCE-ID> --type merge --patch '{"spec": {"quiesce": true}}' -n ${PROJECT_CPD_INST_OPERANDS}
- Get the full name, including the instance ID, of the
Clicking Data types in the breadcrumb navigation bar might open a 404 error page
Applies to: 5.2.0 and later
If you navigate to the IBM Match 360 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 Match 360 operations
Applies to: 5.2.0 and later
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 Match 360 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.
For entity types that include a filter to select which records to use for matching, the total number of records might be incorrectly reported
Applies to: 5.2.0 and later
When configuring an entity type's match settings (), you can optionally configure record selection filters that define which records to use for matching. If record selection is enabled, then you can see incorrect Total records statistics in your matching summary, match setup overview page, and anywhere else that entity and record statistics are reported.
There is currently no workaround available to resolve this issue.
Performance can degrade if attribute composition is configured to allow a list of values
Applies to: 5.2.0 and later
Due to a change in the way IBM Match 360 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 Match 360 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 Match 360
When you search for entity data in IBM Match 360 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 Match 360
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 Match 360 SDK can change without warning
Applies to: 5.2.0 and later
When the IBM Match 360 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 Match 360 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 Match 360 service. Where possible, these items provide instructions about how to work around the limitations.
In some IBM Match 360 API responses, an incorrect record number can be returned
Applies to: 5.2.0 and later
Some IBM Match 360 API responses include the
record_number field of a given record, often along with other record attributes.
Each record in IBM Match 360 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 Match 360 master data event streaming capability
Applies to: 5.2.0 and later
IBM Match 360 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 Match 360 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 Match 360
matching-mspods. - IBM Match 360 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 Match 360 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