HCL Commerce Version 9.1.13.0 or later

Collecte de données MustGather de recherche basées sur Elasticsearch pour les mises à jour en temps quasi réel (NRT)

Préparez les informations MustGather suivantes avant d'appeler le support HCL en vue d'une aide au processus de dépannage.

About this task

Ce MustGather peut être utilisé pour enquêter sur la cause des problèmes de NRT basés sur Elasticsearch. Si vous essayez de répondre à l’une des questions suivantes, voici le MustGather à utiliser :

  1. Pourquoi ne vois-je pas un changement qui a été apporté dans Management Center sur les objets du catalogue (SKU, variantes, produits, etc.) visibles en vitrine ?
  2. Pourquoi les modifications apportées au chargement de mon catalogue ne sont-elles pas visibles sur la vitrine ?
  3. Pourquoi les modifications apportées au chargement de mes données sur mon catalogue ne sont-elles pas visibles sur la vitrine ?

Procedure

  1. Abonnez-vous à la rubrique WCNifiDistributedMapCache dans Redis.
    [root@mymachine ~]# docker exec -it commerce_redis_1 bash I have no name!@c155d5fa5da1:/$ redis-cli 127.0.0.1:6379> subscribe {cache-auth-services/cache/WCNifiDistributedMapCache}-invalidation Reading messages... (press Ctrl-C to quit)
  2. Activez le traçage suivant sur le serveur Transaction.
    *=info:com.ibm.commerce.catalog.commands.*=all:com.ibm.commerce.catalog.facade.server.helpers.RuleBasedCategoryHelper=all:com.ibm.commerce.catalog.changehistory.*=all:com.ibm.commerce.foundation.internal.server.services.changehistory.*=all:com.ibm.commerce.foundation.server.services.changehistory.*=all:com.ibm.commerce.foundation.server.command.bod.BusinessObjectDocumentProcessor=all 
  3. Reproduisez votre problème de NRT. Enregistrez les étapes spécifiques que vous avez suivies pour reproduire le problème et tout détail qui pourrait être pertinent (par exemple, les valeurs catentryId pour les SKU, les variantes ou les produits modifiés, ou les valeurs catgroupId pour les catégories modifiées).
  4. Collectez les fichiers de trace générés dans le répertoire suivant sur votre serveur de transactions.
    /opt/WebSphere/AppServer/profiles/default/logs/container/{{container_name}}/
  5. Notez tous les messages signalés vers la rubrique WCNifiDistributedMapCache dans Redis.

What to do next

Examen des données

Événement de l'historique des modifications
Lorsqu'une modification est apportée à un catalogue dans Management Center ou qu'un chargement de données/catalogue est exécuté, un événement d'historique des modifications est généré afin de suivre cette modification. Par exemple, j'ai modifié le produit « Hawthorne Towel » (catentryId 14503 dans notre catalogue par défaut) pour le renommer « Hawthorne Towel TEST123 ». La recherche de la requête ChangeCatalogEntry BOD affichera la nouvelle définition de ce produit à utiliser :
[7/6/23 16:41:52:073 GMT] 000000f6 BusinessObjec > com.ibm.commerce.foundation.server.command.bod.BusinessObjectDocumentProcessor processBusinessObjectDocument(BusinessObjectDocumentType, String) ENTRY <?xml version="1.0" encoding="UTF-8"?> <_cat:ChangeCatalogEntry xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:_cat="http://www.ibm.com/xmlns/prod/commerce/9/catalog" xmlns:_wcf="http://www.ibm.com/xmlns/prod/commerce/9/foundation" xmlns:oa="http://www.openapplications.org/oagis/9" releaseID="9.0" versionID="7.0.0.0"> <oa:ApplicationArea xsi:type="_wcf:ApplicationAreaType"> <oa:CreationDateTime>2023-07-06T16:41:52.071Z</oa:CreationDateTime> <oa:BODID>01fa58b0-1c1c-11ee-945e-8330646aed01</oa:BODID> <_wcf:BusinessContext intent="Authoring"> <_wcf:ContextData name="timeZoneId">GMT</_wcf:ContextData> <_wcf:ContextData name="locale">en_US</_wcf:ContextData> <_wcf:ContextData name="storeId">11</_wcf:ContextData> </_wcf:BusinessContext> </oa:ApplicationArea> <_cat:DataArea> <oa:Change> <oa:ActionCriteria> <oa:ActionExpression actionCode="Change" expressionLanguage="_wcf:XPath">/CatalogEntry[1]/Description[1]</oa:ActionExpression> </oa:ActionCriteria> </oa:Change> <_cat:CatalogEntry> <_cat:CatalogEntryIdentifier> <_wcf:UniqueID>14503</_wcf:UniqueID> </_cat:CatalogEntryIdentifier> <_cat:Description language="-1"> <_cat:Name>Hawthorne Towel TEST123</_cat:Name> </_cat:Description> <_wcf:SEOURL> <_wcf:ParentStoreIdentifier> <_wcf:UniqueID>11</_wcf:UniqueID> </_wcf:ParentStoreIdentifier> </_wcf:SEOURL> </_cat:CatalogEntry> </_cat:DataArea> </_cat:ChangeCatalogEntry> com.ibm.commerce.catalog 
Pour confirmer qu'un événement d'historique des modifications a été créé pour cette modification, vous pouvez rechercher la sortie de traçage de EchoBusinessObjectChangeHistoryDelegateMediatorImpl.createChangeHistory(). Par exemple, voici le traçage de la création d'événements d'historique des modifications pour la mise à jour du produit « Hawthorne Towel » ci-dessus.
[7/6/23 16:41:52:819 GMT] 000000f6 EchoBusinessO 1 com.ibm.commerce.foundation.server.services.changehistory.mediator.EchoBusinessObjectChangeHistoryDelegateMediatorImpl createChangeHistory The change history record to be created is: com.ibm.commerce.foundation.internal.server.services.changehistory.beans.TaskGroupChangeHistoryDataSet@a87cbc8e objectId = 14503 ui_object_name = Product objectType = CatalogEntry objectCode = MPHBA031_3103 MEMBER_ID = -1000 LASTUPDATE = 2023-07-06 16:41:52.793 ACTION = U STOREENT_ID = 12001 WORKSPACE = IBM_WC_BASE TASKGRP = IBM_WC_BASE TASK = null 
Pour confirmer qu'un message Redis a été généré pour l'événement d'historique des modifications, vous pouvez rechercher la sortie de traçage de EchoBusinessObjectChangeHistoryDelegateMediatorImpl.sendRedisChangeHistoryEvent(). Par exemple, voici le traçage pour le message envoyé à Redis pour l'événement d'historique des modifications ci-dessus.
[7/6/23 16:41:52:863 GMT] 000000f6 EchoBusinessO 1 com.ibm.commerce.foundation.server.services.changehistory.mediator.EchoBusinessObjectChangeHistoryDelegateMediatorImpl sendRedisChangeHistoryEvent [{"workspace":"IBM_WC_BASE","objectCode":"MPHBA031_3103","catalogId":"11001","changeHistoryId":"10544","languageId":"-1","action":"U","nounName":"CatalogEntry","storeId":"12001","changeHistoryEventId":"1688661712825","objectId":"14503","taskGroup":"IBM_WC_BASE","actionDetail":{"updateSEOURL":"true"}}] 
Messages Redis
Si vous êtes abonné à la rubrique WCNifiDistributedMapCache dans Redis, vous verrez des messages envoyés vers cette rubrique pour signaler qu'un événement NRT s'est produit et qu'un pipeline Ingest est sur le point d'être lancé pour intégrer ces modifications. Par exemple, voici le message lié à la mise à jour effectuée dans Management Center.
[root@mymachine ~]# docker exec -it commerce_redis_1 bash I have no name!@c155d5fa5da1:/$ redis-cli 127.0.0.1:6379> subscribe {cache-auth-services/cache/WCNifiDistributedMapCache}-invalidation Reading messages... (press Ctrl-C to quit) 1) "message" 2) "{cache-auth-services/cache/WCNifiDistributedMapCache}-invalidation" 3) "[p:3e8153eee071;t:1688661712872]> {\"workspace\":\"IBM_WC_BASE\",\"objectCode\": \"MPHBA031_3103\",\"catalogId\":\"11001\",\"changeHistoryId\":\"10544\",\"languageId\": \"-1\",\"action\":\"U\",\"nounName\":\"CatalogEntry\",\"storeId\":\"12001\",\"changeHistoryEventId\": \"1688661712825\",\"objectId\":\"14503\",\"taskGroup\":\"IBM_WC_BASE\",\"actionDetail\": {\"updateSEOURL\":\"true\"}}"
Si vous apportez une modification qui affectera vos espaces de travail, vous y verrez également un message WorkspaceEvent similaire à ce qui suit :
1) "message" 2) "{cache-auth-services/cache/WCNifiDistributedMapCache}-invalidation" 3) "[p:616516a9bc98;t:1688661761125]> {\n\t\"nounName\": \"WorkspaceEvent\",\n\t\"storeId\": \"12001\",\n\t\"languageId\": \"-1\",\n\t\"catalogId\": \"11001\",\n\t\"workspace\": \"IBM_WC_BASE\",\n\t\"taskGroup\": \"IBM_WC_BASE\",\n\t\"objectId\" : \"14503\",\n\t\"runId\" : \"wn-b345b49e-40e2-4806-a391-d84a022d4c12\",\n\t\"workspaceEventDetails\": {\n\t\t\"workspaceEventMasterCatalogId\": \"11001\",\n\t\t\"workspaceEventSupportedCatalog\": \"11001,11502,11501\",\n\t\t\"workspaceEventDefaultCatalog\": \"\",\n\t\t\"workspaceEventConnectorName\": \"auth.product.cas\"\n\t}\n}"