AnsweredAssumed Answered

Problemas con lucene

Question asked by paulillo16 on Oct 17, 2014
Hola,

soy nuevo en esto de Alfresco y resulta que me ha tocado solucionar un problema con Alfresco Community 3.2 y no tengo ni idea.

La cosa es que tengo una aplicación que genera documentos y se encarga de almacenarlos en Alfresco a través del servicio web. Cada documento lleva asociada información adicional y entre esta, le indico un código de verificación electrónico único (CVE) que me servirá para realizar futuras búsquedas a través de consultas al servicio web de Alfresco.

Está aplicación lleva funcionando correctamente desde 2009, almacenando y consultando documentos sin problemas, hasta ahora. La cosa es que inexplicablemente (por lo menos para mi) las consultas por CVE a veces no localiza ningún documento. Lo raro es que esto no sucede siempre y tampoco con todos los documentos.

Digamos que existen algunos documentos 'problemáticos' que su localización por CVE no da problemas hasta que Alfresco lleva unas horas en ejecución. He llegado ha realizar más de 10.000 consultas satisfactorias consecutivas sin ningún tipo de problema, pero llega un momento en el que estas consultas empiezan a fallar de forma aleatoria. Cuando detecto el problema, reinicio Alfresco (tengo configurado el parámetro index.recovery.mode=AUTO) y todo vuelve a funcionar perfectamente hasta que pasadas unas horas, empieza a fallar de forma aleatoria.


El código que utilizo para realizar las pruebas es el siguiente:

   public static void main(String args[]) throws Exception {
      
      Store STORE = new Store(Constants.WORKSPACE_STORE, "SpacesStore");
      String user = "mi_usuario";
      String password = "mi_pasword";
      String endPoint = "http://localhost:8080/alfresco/api";
      int cont = 0;
      int resOk = 0;
      
      WebServiceFactory.setEndpointAddress(endPoint);
      
      AuthenticationUtils.startSession(user, password);
      
      while(1==1){

         System.out.println(" ");
         System.out.println(" =================== " + cont++);
         System.out.println(" ");
         
         RepositoryServiceSoapBindingStub repositoryService = WebServiceFactory.getRepositoryService(endPoint);
   
         String cve = "5NahR1uUT+KNsAGS9lAmIA";
         String consulta = "@e\\:publico:'true' AND @e\\:cve:'"+cve+"'";
         consulta = "ASPECT:\"{e.pau.model}aspecto\" AND " + consulta;
         
         Query query = new Query(Constants.QUERY_LANG_LUCENE, consulta);
         QueryResult queryResult = repositoryService.query(STORE, query, true);
         ResultSet resultSet = queryResult.getResultSet();
         ResultSetRow[] rows = resultSet.getRows();
         
         if (rows == null){
            System.out.println("OK = " + resOk);
            System.out.println("No query results found. " + new Date());
            resOk=0;
         }else {
            System.out.println("ok");
            resOk++;
         }
         
      }
   }

¿Estoy haciendo algo mal? ¿tengo que tener en cuenta alguna configuración que estoy pasando por alto?

Saludos.

Outcomes