Sincronização de índices
Diz-se que um índice está em um estado consistente quando representa fielmente o estado do banco de dados da entidade correspondente. Por exemplo, o índice “Order” é consistente se estiver atualizado em relação ao conteúdo da tabela YFS_ORDER_HEADER e das tabelas relacionadas. Nesse caso, o índice é uma representação fiel do estado do banco de dados, uma vez que uma consulta no índice retorna o mesmo conjunto de registros que as tabelas do banco de dados. Isso é fundamental para o bom funcionamento das APIs de pesquisa no Order Search. Se um pedido for atualizado por meio de uma API, mas o índice correspondente não for atualizado, o pedido poderá não ser retornado nas chamadas da API de pesquisa, pois a API de pesquisa depende do índice para recuperar os pedidos.
Como as operações de atualização do índice são realizadas de forma assíncrona após um pequeno atraso, e como existe a possibilidade de a operação falhar ao ser executada, o índice de pesquisa pode não estar estritamente consistente o tempo todo. No entanto, se você ativar o Sterling Search Index e ele estiver ativo, todas as operações de atualização do índice serão realizadas quase em tempo real. As falhas são notificadas e rastreadas por meio da YFS_Awaiting_Index tabela e, posteriormente, o SSI_DELAYED_SYNC agente tenta novamente a operação. Portanto, embora nem sempre seja estritamente consistente, se o Sterling Search Index estiver ativado, pode-se presumir que o índice está “sincronizado” com o banco de dados para todos os efeitos práticos em condições de uso normal.
No entanto, há situações em que o índice pode ficar consideravelmente desfasado. A seguir, apresentamos alguns desses cenários:
- Após uma atualização, há vários pedidos no sistema que ainda não foram indexados. Como esses pedidos foram criados quando o Sterling Search Index não estava ativo, eles não são rastreados em nenhum lugar, nem mesmo na
YFS_Awaiting_Indextabela. Portanto, o índice está desincronizado. - Pedidos já existentes: o recurso Índice de Pesquisa do Sterling é ativado após a criação de vários pedidos. Por exemplo, no caso de uma instalação nova, quando o recurso não está habilitado inicialmente.
- O modelo de esboço é modificado para adicionar mais atributos indexáveis. Se o novo atributo corresponder a uma coluna que já existe no banco de dados e tiver valores preenchidos para registros já existentes, o índice ficará desincronizado. Por exemplo, se o campo ADDRESS_ID for adicionado ao modelo de estrutura e se houver pedidos existentes com esse valor preenchido nesse campo, a pesquisa por pedidos com
ADDRESS_IDnos critérios de pesquisa poderá retornar apenas registros parciais. - O recurso Índice de Pesquisa do Sterling está desativado há algum tempo. Nesse caso, o Sterling Search Index não sabe quais pedidos foram criados quando o recurso estava desativado.
- Os pedidos são migrados para o sistema Sterling™ Order Management sem utilizar as APIs do sistema Sterling Order Management. Como o Sterling Search Index utiliza as APIs do sistem Sterling Order Management, ele não terá conhecimento dessas ordens. O índice fica desincronizado.
Para acompanhar os pedidos “em sincronia”, use a YFS_Index_Sync tabela de estatísticas. Como a entidade de ordem é específica de cada empresa, esta tabela contém o sinalizador “ ‘InSync’ ” para cada empresa e cada índice. Quando um índice fica desincronizado por qualquer motivo, as pesquisas a partir dele deixam de ser confiáveis. Você pode gerenciar o status de sincronização específico da empresa por meio do Console de Gerenciamento de Índices.
Em alguns casos, o sinalizador “ 'InSync' ” é definido automaticamente como “N” pelo Sterling Search Index. Nesses casos, siga estas etapas:
- Quando um aplicativo, agente ou servidor de integração é iniciado com o recurso Sterling Search Index desativado ( yfs.ssi.enabled =N), todas as empresas são marcadas como fora de sincronia para todos os índices. Isso ocorre porque, como o recurso Sterling Search Index está desativado, não é possível rastrear pedidos que são criados ou modificados e precisam ser indexados. Depois de ativar esse recurso, execute o
SSI_MASS_SYNCmodo “unindexed” para cada empresa no índice de pedidos e, em seguida, marque todas as empresas para sincronização por meio do Console de Gerenciamento de Índices. - Quando a definição do modelo de esboço é alterada para a entidade “pedido”, todas as empresas são marcadas como “não sincronizadas” para o índice de pedidos. Avalie o impacto da atualização da definição do modelo de estrutura para verificar quais empresas são afetadas por essa mudança. Para cada empresa afetada, execute o
SSI_MASS_SYNCagente no modo “versionsync” para essa empresa e esse índice, a fim de reindexar todos os pedidos dessa empresa com a nova definição do modelo de estrutura. Para cada empresa que não tenha sido afetada ou para a qual o agente tenha sido executado, marque a empresa como sincronizada usando o Console de Gerenciamento de Índices. - Quando um aplicativo, agente ou servidor de integração é iniciado pela primeira vez após uma atualização, todas as empresas são marcadas como fora de sincronia em todos os índices. Isso ocorre porque pode haver pedidos já existentes que precisam ser indexados. Execute o
SSI_MASS_SYNCagente no modo “não indexado” para todas as empresas (para o índice de pedidos) que possuam registros de pedidos pré-existentes. Em seguida, use o Console de Gerenciamento de Índices para marcar cada empresa para que seja sincronizada com o índice de pedidos.
Se for necessário marcar manualmente uma empresa como não sincronizada, você pode usar a opção “Marcar como não sincronizada” no Console de Gerenciamento de Índices. Pode ser necessário fazer isso em circunstâncias excepcionais, como, por exemplo, se um índice ficar corrompido e for preciso reconstruí-lo por completo. Basicamente, até que o índice seja reconstruído nesses casos excepcionais, uma tentativa de pesquisa a partir da Pesquisa de Pedidos não é confiável ou pode resultar em erros. Assim, os usuários podem usar o sinalizador “ ‘InSync’ ” como um indicador para decidir se uma pesquisa no “Order Search” é confiável ou se devem recuperar os dados do pedido diretamente do sistema “ Sterling Order Management ”. Uma implementação personalizada para garantir esse comportamento em um sistema de comércio eletrônico é uma boa solução para garantir que os resultados da pesquisa sejam sempre confiáveis.
- As operações de índice continuam independentemente do status do sinalizador “ 'InSync' ”. Isso serve como um indicador para que os aplicativos clientes confiem nos dados da Pesquisa de Pedidos.
- Se a opção “ 'InSync' ” for definida automaticamente como “N” pelo Sterling Search Index, você será notificado por meio de um alerta com o
SSI_WARN_01código de erro ouSSI_WARN_02.