vista previa

Manejo de excepciones

El índice Sterling Search cuenta con algunas funciones integradas para la gestión de excepciones.

Dado que el servicio de pedidos se ha implementado fuera del sistema de « Sterling™ Order Management », es posible que surjan problemas con el tiempo. Por ejemplo, es posible que el servicio de pedidos no funcione o no esté disponible. También pueden producirse errores de validación en la búsqueda de pedidos o problemas específicos de « Elasticsearch », como que algunos de los fragmentos del índice no estén disponibles o que el nodo «master» aún no haya sido elegido. Esto puede provocar fallos en las operaciones de índice.

Esto nos lleva a plantearnos las siguientes consideraciones:
  • Dado que el servidor de índices de búsqueda se utiliza principalmente para agilizar las búsquedas y mejorar la visibilidad de los datos, su indisponibilidad o los fallos en los índices no deberían tener ningún impacto funcional. Por este motivo, Sterling Search Index se ha diseñado con la solidez necesaria para sortear estos problemas y ofrecer una funcionalidad empresarial sin fisuras.
  • Es necesario realizar un seguimiento de las actualizaciones de índices fallidas o perdidas y volver a intentarlas.
  • Se le deben notificar las actualizaciones de índices fallidas para que pueda tomar las medidas correctivas necesarias, si fuera preciso.

Gestión de actualizaciones de índices fallidas o perdidas

Como se ha explicado brevemente en la sección anterior, YFS_Awaiting_Index almacena una referencia a cada intento de indexación, lo que da lugar a las siguientes situaciones:
  1. JVM bloqueo: dado que la operación de actualización del índice se realiza de forma asíncrona a través del PeriodicBatchIndexer servicio, si JVM se bloquea o se cierra de forma forzada, se pierden algunas de las actualizaciones.
  2. Errores intermitentes de indexación: la operación de indexación falla de forma intermitente debido a problemas con el servidor de índices de búsqueda, la red, etc.
  3. Errores recurrentes en la indexación: debido a algunos problemas, la operación de indexación falla de forma continua y reproducible.

En los casos 2 o 3, se te notificará la excepción. Dependiendo del problema, es posible que tengas que tomar medidas correctivas para solucionarlo. En cualquiera de estos casos, los registros de la YFS_Awaiting_Index tabla identifican el registro de la entidad que debe reindexarse. La reindexación la lleva a cabo el SSI_DELAYED_SYNC agente, que se activa automáticamente de forma periódica.

Notificación de excepción

Cualquier excepción que se produzca durante una operación de indexación debe notificársele. Además de los casos excepcionales ya mencionados, Sterling Search Index cuenta también con otros mecanismos preventivos. Por ejemplo, si se producen fallos continuos en el índice, desactiva por completo la operación correspondiente hasta que se tomen medidas correctivas. Además, si se ha realizado algún cambio en la plantilla de estructura del índice, es posible que el índice de Search Index Server se encuentre en un estado incoherente, ya que los datos antiguos no incluyen los atributos que ahora se han añadido a la plantilla de estructura. Es posible que estas decisiones, tomadas automáticamente por Sterling Search Index, requieran que usted tome medidas correctivas. En el primer ejemplo, debes solucionar el problema subyacente y volver a habilitar la operación de indexación. En el segundo caso, hay que valorar si es necesario ejecutar el SSI_MASS_SYNC agente. Si es necesario, marca el índice para que se encuentre en estado sincronizado. Por lo tanto, también es necesario notificar estos mensajes.

Estas excepciones o advertencias pueden clasificarse, a grandes rasgos, de la siguiente manera:
  • Mensajes de estado del índice
  • Índice de avisos operativos
  • Errores inesperados
  • Problemas de conectividad
Nota: Algunas de las excepciones, principalmente aquellas que se producen durante el proceso de creación de índices, se registran con el nombre de o IndexManager PeriodicBatchIndexer. Esto se debe a que las operaciones de indexación no las realiza el usuario que creó o modificó el pedido en el sistema, sino que se activan desde clases Java con IndexManager el nombre o PeriodicBatchIndexer en un subproceso independiente del servidor de pedidos ( JVM ).

Las excepciones y advertencias del Índice de Búsqueda Sterling se publican de cualquiera de las siguientes formas:

  • Al dar la voz de alarma
  • Al organizar un evento

generación de alertas

Las alertas generadas por Sterling Search Index son como cualquier otra alerta generada por excepciones operativas. Todas las excepciones se registran con « ExceptionType=’IndexException’ » y las advertencias con « ExceptionType=’Warning_Message’ ». Se crean en la tabla YFS_Inbox, en el mismo segmento de base de datos que el registro de la entidad correspondiente. Estas alertas no están dirigidas a ningún usuario ni a ninguna cola de alertas, y no se consolidan.

Puedes mostrar las alertas en la consola de alertas especificando el tipo de alerta como « IndexException » o «Warning_Message». Es posible que estas alertas no sean específicas de la empresa, por lo que es mejor evitar utilizar « ‘EnterpriseCode’ » como criterio de búsqueda.

Organización de eventos

Las excepciones operativas y las transiciones de estado de Sterling Search Index pueden publicarse activando el evento ON_FAILURE definido para la transacción SSI_INDEX_NOTIFICATION, que se encuentra en el repositorio de tipos de proceso generales.

Si activas este evento, podrá publicar la información tal y como se muestra en la siguiente plantilla:

Index IndexName="" EnterpriseCode="" SearchWorking="" IndexWorking="" ErrorCode="" ErrorDescription="" Reason="" Comments="" ReferenceName="" ReferenceValue="" SearchCriteria=""> <StackTrace/> </Index>

Esto se puede configurar. La plantilla del evento « SSI_INDEX_NOTIFICATION.ON_FAILURE.xml » se encuentra en el<NSTALL_DIR>/repository/xapi/template/merged/event directorio.

Sterling Order Management El sistema no ofrece ningún controlador de eventos, como condiciones, acciones o servicios, para activar un proceso cuando se produce este evento. Sin embargo, ofrece los siguientes atributos del generador de condiciones que te ayudan a crear una condición para los datos publicados por el evento.

Atributos del generador de condiciones Utiliza este atributo para crear una condición
EnterpriseCode Para obtener más información, visita EnterpriseCode
IndexName Para obtener más información, visita IndexName
IsIndexingWorking Para realizar un seguimiento de la transición del atributo « IndexWorking »

Para personalizar los atributos del generador de condiciones en función de otros atributos publicados por el evento, utilice la función « {Enter Your Own Attribute} ».

Puedes definir acciones para publicar los resultados del evento en una base de datos, crear una alerta, enviar un correo electrónico, etc. Puedes definir controladores de eventos especificando las condiciones que determinan los tipos de acciones que se llevan a cabo cuando se produce este evento.

En la siguiente tabla se describen los atributos que se publican para las excepciones del índice de búsqueda de Sterling:

Atributos Descripción
IndexName El nombre del índice, por ejemplo, «Pedido».
EnterpriseCode La información EnterpriseCode publicada, si estaba disponible en el momento en que se produjo la excepción.
IndexWorking Si IndexWorking se establece este valor en N, el sistema lo cambia a N y no se realiza ninguna otra operación de indexación en el índice.
ErrorCode El código de error correspondiente al error.

En el sistema « Sterling Order Management » puede consultar la descripción y el motivo de estos errores, así como las medidas para solucionarlos.

ErrorDescription Descripción del código de error.
Razón Si aparece un error del servidor de índice de búsqueda, este campo ofrece información detallada sobre el fallo. En caso de notificación, este campo muestra el mensaje de notificación.
Comentarios Proporciona información adicional sobre el escenario, ya sea un escenario de excepción o un escenario de notificación.
ReferenceName Proporciona información adicional. Por lo general, contiene el nombre de la entidad de referencia. Por ejemplo, YFS_ORDER_HEADER o YFS_AWAITING_INDEX.
ReferenceValue Proporciona información adicional. Por lo general, contiene el valor de la referencia entityKey. Por ejemplo, el valor de OrderHeaderKey o AwaitingIndexKey. Indica que se produjo una excepción al procesar la clave correspondiente.
StackTrace El seguimiento completo de la pila de la excepción. Esto no aparece en la plantilla que proporciona la aplicación para el ON_FAILURE evento. Puedes ampliar la plantilla para que también se publique el seguimiento de la pila en la salida del evento.