GovernIB / gusite

3 stars 2 forks source link

Error indexació completa de microsites #96

Closed sgelabert-dgtic closed 6 years ago

sgelabert-dgtic commented 7 years ago

La indexació completa de microsites no acaba. Endemés s'engeguen el job d'indexació automàtica no té en compte si ja hi ha altres indexacions amb execució Adjunt captura de pantalla archivo20170801 Remet log d'indexació per correu electrònic

sgelabert-dgtic commented 6 years ago

La indexació completa no va finalitzar, pareix que el Jboss va caure dia 13/11/2017 i els arxius de log estan danys.... Us adjunt log de la indexació de l'aplicació archivo_total.txt Hem reiniciat el servidor i he tornat a llançar la indexació completa. Us dic coses.

sgelabert-dgtic commented 6 years ago

El procés d'indexació total no es completa per manca de recursos sobre l'entorn de PREproducció. Es sol·licita revisar el procés d'indexació de GUSITE per veure si es pot optimitzar. S'envien log del servidor d'aplicacions per correu electrònic.

sgelabert-dgtic commented 6 years ago

Heu pogut avançar amb aquest tema ? Necessitem fer una indexació completa a PROducció dels microsites, ja que tenim errors en el cercador de de WEBCAIB per URLs mal construides. Exemple: adreça indexada: http://www.caib.es/3jornadaadministracio/ca/programa-15384 adreça real: http://www.caib.es/sites/3jornadaadministracio/ca/programa-15384)

slromero-indra commented 6 years ago

Acabamos de comitear los cambios que incluyen:


  El primer campo especifica el tiempo en minutos de espera entre un proceso y otro de indexación mientras que el segundo bloque indica cuantos microsites indexa en cada bloque. Al realizar en bloques, evita el problema de memoria, siendo los thread más cortos y dando tiempo al garbage collector.
 - Incluido un botón para ver un resumen básico del estado de los microsites y ver cuantos hay indexados y cuantos faltan por indexar.
 - Nuevo botón para marcar todos los microsites como no indexados (de esa manera, se puede volver a realizar una indexación completa).
 - Actualizado el controller del search y el indexado, ahora da igual si buscas desde GUSITE o WEBCAIB, la url está correcta.

Por cierto, que valor tiene el siguientes parámetr? Debería ser un valor pequeño para evitar problemas de memoria (está indicado en MB, y no debería de pasar de 20 MB e incluso ser menor):
`es.caib.gusite.maxclob.solr = 20`
sgelabert-dgtic commented 6 years ago

La indexació completa ha tornat a fallar. Us remet per correu logs del servidor d'aplicacions fins que el Jboss ha deixat de donar servei. La instància de PRE té 1.5GB assignats en comparació als 2GB de PRO. Intentaran ampliar-ho però no m'ho poden assegurar. Pel que fa als canvis introduits a la pantalla d'indexació són poc funcionals. Pensau que hi ha un 750 microsites i es genera un fitxer de log per cada 5 microsites, la qual cosa implica la revisió de 150 fitxers per saber si hi ha algun error o no... Endemés no es paginen els resultats amb la qual cosa només podem veure els 11 darrers. Malgrat la indexació es faci per blocs, no podeu agrupar el resultat en un sol fitxer de log ? image Us remet també per correu el darrer fitxer de log de l'aplicació on va quedar enganxat.

slromero-indra commented 6 years ago

Respecto a la compartimentación del proceso total de indexación hemos modificado la implementación para que a nivel de la pantalla de indexación solo se vea un único job y log. Ahora en la pantalla de indexación además se ve el progreso (num de microsites indexados). Como es tanto volumen de información el que se tiene que indexar, lo que hemos hecho es compartimentar el proceso de forma que la indexación total se realice en bloques de microsites y entre cada bloque se le dé un tiempo al servidor para que se recupere (tanto el número de microsites por bloque como el tiempo de espera es configurable via propiedades).

En resumen, al iniciar un proceso total se lanzará un proceso que indexará el primer bloque de microsites y dejará programado la indexación del siguiente bloque, permitiendo así en teoría al servidor recuperarse. En caso de error, si se volviese a lanzar el proceso se retomaría la indexación desde el último bloque de microsites indexado.

Respecto al log, no hemos visto que dé ningún error de memoria ni nada parecido que haga caer al servidor. Únicamente vemos errores de que Solr no puede procesar ciertos ficheros, pero ya es un error del parser de Solr al procesar el contenido del fichero.

Las propiedades para compartimentar el indexado total de los microsites son las siguientes:

Num de microsites por bloque de indexacion

es.caib.gusite.solr.descanso.microsites=25

Espera en minutos entre bloques de indexacion

es.caib.gusite.solr.descanso.minutos=10

También hemos mejorado el proceso de limpieza de la tabla de JOBS de SOLR para evitar que se almacene demasiada información, por lo que ahora se realizará una limpieza acorde a una propiedad que indicará el nº de días que puede estar en la tabla: es.caib.gusite.diasjobs.solr = 10

Hemos incluido varios campos nuevos en la BBDD, incluidos en el fichero a ejecutar gusite_update_schema_from_1.4.2_to_1.4.3.sql

sgelabert-dgtic commented 6 years ago

He enviat a PREproducció la darrera versió commitada. Us dic coses quan hagi acabat la indexació total. Caldria fer una reorganització les les propietats de GUSITE que afecten a SOLR, tant pel que fa a utilitat com a nomenclatura:

Corregiume si m'equivoc però crec que no tenim documentació sobre el procés d'indexació amb GUSITE, llevat del document d'anàlisi de la tasca. Convindria crear-lo.

slromero-indra commented 6 years ago

Buenas, respecto a las propiedades, las reviso y te comento las propiedades que se han tenido que cambiar para adecuarse a 'es.caib.gusite.solr'.

Respecto al documento, un documento como el realizado para SIA no existe pero si se desea podemos mirar de hacerlo aunque sería más correcto en una issue a parte para no mezclar temas.

Cuando termine la indexación total en PRE nos avisas.

sgelabert-dgtic commented 6 years ago

La indexació completa pareix que ha acabat indexant la totalitat dels microsites: image El que no veig per enlloc és com treure el log d'indexació

slromero-indra commented 6 years ago

Buenas, se debe pulsar 'veure informació de les tasques' y posteriormente seleccionar el log. El botón de 'ver info dels microsites indexats' es para ver la información de manera rápida y resumida para ver el estado de la indexación.

Si te parece correcto, además de la revisión de las propiedades de solr, vamos a proceder a realizar un documento sobre el proceso de indexación que se hablará de:

sgelabert-dgtic commented 6 years ago

El que em comentes ja ho havia provat però pareix que no hi ha el log d'indexació complet (si t'hi fixes només hi ha el log d'ahir a les 2.00h). T'adjunt captura de pantalla i log d'ahir archivo_12122017.txt image Respecte al document, ok. També convindria incloure un apartat més técnic sobre les classes involucrades en la indexació i l'ús bàsic de la llibreria client solr-api-web (si ho preferiu, aquesta darrera part d'ús de la lliberia es pot documentar sobre le projecte solr-api-web).

slromero-indra commented 6 years ago

Si te parece más correcto, incluirá una breve explicación sobre el solr-api-web y, en un documento extra, incluirá una explicación más profunda sobre solr-api-web e irá en ese proyecto.

Sobre el log, debido a la ejecución errónea de la indexación anterior que generaba muchas tareas (cada 5 microsites) provoca problemas de ahí que no se vea bien el log (principalmente, coge una tarea no finalizada y le incluye el log de ejecución, como hay tantos, parece que el log está incompleto). Para tener un log más completo y más sencillo de leer, se debería de borrar los jobs ejecutados ejecutando la siguiente sql:

DELETE FROM GUS_SOLJOB;

Luego, para repetir la indexación completa de todos los microsites, hay que pulsar el botón 'Marcar el microsites como no indexats' (esto marca todos los microsites como no indexados para que puedan ser indexados) y posteriormente pulsar el botón 'indexar tots els no indexats'.

sgelabert-dgtic commented 6 years ago

La indexació completa ha acabat i després de fer el delete de la taula GUS_SOLJOB sobre PREproducció, s'ha generat correctament el log de la indexació. Els resultats son els següents: Dels 2 microsites en total, eren indexables 752 dels quals 727 han estat correctes i 25 estat incorrectes. A banda de modificar el missatge "Dels 2 microsites en total," pareix que els errors es deuen fonamentalment a dues causes:

Remet per correu log d'aplicació i log del servidor

slromero-indra commented 6 years ago

Hemos mejorado los mensajes de indexación, además de actualizar el mensaje del txt erróneo, hemos mejorado el formulario de indexación y ahora el botón de 'Ver info dels microsites indexats' devuelve más información para depurar.

También hemos actualizado un bug de la fecha de caducidad en lla indexación de noticias mientras se realizaba pruebas en el entorno de proves.caib. Se debería volver indexar de nuevo els microsites (primero se debe pulsar el botón de marcar todos los microsites como no indexados y posteriormente pulsar el botón de indexar els microsites no indexats).

sgelabert-dgtic commented 6 years ago

La indexació completa amb la incorporació dels darrers canvis no ha acabat per caiguda del servidor. Us remet per correu, log del servidor d'aplicacions.

sgelabert-dgtic commented 6 years ago

La indexació completa segueix sense acabar sobre l'entorn de PREproducció. Pendents de monitoritzar l'ús de memòria i rediment del servidor, cal efectuar les següents correccions:

slromero-indra commented 6 years ago

Hemos realizado los siguientes cambios:

Respecto al cierre de tareas y la indexación, hay que tener en cuenta lo siguiente:

slromero-indra commented 6 years ago

Incoporado los cambios en las propiedades además de las mejoras comentadas por email:

slromero-indra commented 6 years ago

Ya están comiteado los cambios comentados por email, se debería de volver a indexar de nuevo.

sgelabert-dgtic commented 6 years ago

Hem redesplegat la versió (d6390a5) i ens dóna els mateix error quan picam "Veure Informació de les Tasques" en la indexació d'un únic microsite.

2018-01-30 09:51:52,766 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/sacmicroback].[action]] (http-10.215.9.207-18080-5) Servlet.service() para servlet action lanzó excepción
java.lang.NoSuchMethodError: es.caib.gusite.micromodel.SolrPendienteJob.setDescripcion(Ljava/sql/Clob;)V
    at es.caib.gusite.microback.action.IndexarMicrositeAction.verListaJobs(IndexarMicrositeAction.java:71)
    at es.caib.gusite.microback.action.IndexarMicrositeAction.doExecute(IndexarMicrositeAction.java:58)
    at es.caib.gusite.microback.action.BaseAction.execute(BaseAction.java:46)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
    at es.caib.gusite.microback.utils.espera.LongWaitRequestProcessor.processActionPerform(LongWaitRequestProcessor.java:104)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at es.caib.gusite.microback.utils.EncodingFilter.doFilter(EncodingFilter.java:36)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:183)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:534)
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95)
    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
    at es.caib.loginModule.auth.FormResourcesValve.invoke(FormResourcesValve.java:31)
    at es.caib.loginModule.auth.ClientIPValve.invoke(ClientIPValve.java:60)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.internalProcess(ActiveRequestResponseCacheValve.java:74)
    at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:47)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:599)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:451)
    at java.lang.Thread.run(Thread.java:745)
slromero-indra commented 6 years ago

Buenas, para esa versión ese método ya no existía por lo que dicho error no debería de haberse producido, seguramente producido por algún problema al generar el ear.

Igualmente, hemos vuelto a realizar un nuevo commit, limpiando alguna clase que ya no es necesaria porque ya no se utiliza la clase java.sql.Clob. Por favor, volver a desplegar la versión, realizando antes un clean del proyecto.

slromero-indra commented 6 years ago

Tras subirse a producción, se han revisado los logs, tanto del resumen de la indexación como de los logs de jboss, y no se ha encontrado ningún error fuera de lo normal más allá de problemas controlados de TIKA (problemas de SOLR con ficheros de tipo Word/Excel) o de ficheros que no existen.