Buenas!!
Estoy mirando a ver cómo configurar en la versión 5.1 alguna tarea para que, pasado cierto tiempo, se elimine contenido del directorio contentstore.deleted pero no logro ver los ficheros de configuración para definir, por ejemplo, la variable orphanProtectDays, tal y como se puede hacer en Alfresco 3.4.
¿En Alfresco 5.1 no se puede?
¿Se hace de otra manera?
¡Muchas gracias de antemano!
Jorge
En Alfresco 5.1 se realiza exactamente igual, puedes incluir los siguientes valores en alfresco-global.properties
# Decide if content should be removed from the system immediately after being orphaned.
# Do not change this unless you have examined the impact it has on your backup procedures.
system.content.eagerOrphanCleanup=false
# The number of days to keep orphaned content in the content stores.
# This has no effect on the 'deleted' content stores, which are not automatically emptied.
system.content.orphanProtectDays=14
# The action to take when a store or stores fails to delete orphaned content
# IGNORE: Just log a warning. The binary remains and the record is expunged
# KEEP_URL: Log a warning and create a URL entry with orphan time 0. It won't be processed or removed.
system.content.deletionFailureAction=IGNORE
# The CRON expression to trigger the deletion of resources associated with orphaned content.
system.content.orphanCleanup.cronExpression=0 0 4 * * ?
De manera complementaria siempre puedes purgar el contentstore.deleted via cronjob de sistema operativo.
Saludos.
--C.
Hola Ángel,
he definido esos valores como has comentando, indicando el system.content.orphanProtectDays=1 y tras esperar todo el fin de semana no he visto que el fichero que hay en la papelera se haya movido (sigue apareciendo).
Además otro fichero que eliminé de la papelera (y que está en el contentstore.deleted) sigue apareciendo en alf_node, por lo que tampoco veo que el proceso nodeServiceCleanupJobDetail definido en tomcat/webapps/alfresco/WEB-INF/classes/alfresco/scheduled-jobs-context.xml se esté ejecutando.
¿Qué estoy haciendo mal en ambos casos?
¡Un saludo!
Jorge
Hay un artículo "clásico" de Tony que deberías leer: https://blyx.com/2014/08/18/understanding-alfresco-content-deletion/
Explica cómo funciona el ciclo de borrado en Alfresco al detalle.
En tu caso: los contenidos de la papelera no se borran nunca, a menos que el usuario lo borre efectivamente o se realice de manera administrativa con algún proceso (por ejemplo trash can cleaner). Por otra parte, el servicio que borra los contenidos del deleted store es nodeServiceCleanupJobDetail.
La imagen y en concreto en "DM Content Deletion" es el mejor resumen, perfectamente ilustrativa del ciclo de borrado del contenido en Alfresco.
Saludos.
--C.
Hola Ángel,
¿cómo puedo saber si corre o no el servicio nodeServiceCleanupJobDetail? ya que el directorio contentstore.deleted sigue conteniendo el documento que eliminé desde la papelera hace dos días (ví que se movía desde contentstore a contentsotre.deleted y en la tabla alf_node el campo node_deleted=1.
¿Se debe activar de alguna manera? Por recordar, os indico que en al alfresc-global.properties tengo definido lo siguiente:
system.content.eagerOrphanCleanup=true
system.content.orphanProtectDays=1
system.content.deletionFailureAction=IGNORE
system.content.orphanCleanup.cronExpression=0 0 4 * * ?
Jorge,
El trabajo se ejecuta cada dia a las 4:00 AM según la configuración que tienes más arriba.
Y está activo porque te lo ha movido al contentstore.deleted.
Saludos.
--C.
Hola Cesar,
en realidad en cuanto elimino de la papelera, automáticamente el documento se mueve desde el contentstore al contentstore.deleted. Según leo en el ciclo de vida del documento, debería estar aún en contentstore hasta que el servicio contentStoreCleaner, definido para que se ejecute a las 4:00 AM lo mueva al contentstore.deleted.
¿Por qué lo mueve directamente desde la papelera?
He probado a hacer esta misma prueba (crear documento, eliminarlo moviendolo a la papelera y eliminarlo de la papelera) pero comentando en el alfresco-global.properties las línea anteriores, y el resultado es el mismo, lo mueve directamente al contentstore.deleted.
Lo que no entiendo es que una vez que el documento está en el contentstore.deleted, se supone que, por la configuración anterior, tras pasar 1 día, se deberían eliminar las referencias en alf_node, pero éstas continúan, por lo que no puedo eliminar a mano el fichero en el filesystem.
¿Qué puede estar pasando?
¡Muchas gracias de antemano!
¡Un saludo!
Jorge
Hola:
- Suena muy raro eso que dices. Cuando eliminas de la papelera, hay un tiempo de retención controlado por la propiedad (system.content.orphanProtectDays=1). En este caso 1 dia y tras este el cronjob lo traslada del contentstore al contenstore.deleted. No puede ir directamente al contentstore.deleted.
- Si te pasa eso que dices, te diría que tienes un error en la configuración de las variables dir.root y dir.contentstore, y dir.contentstore.deleted
- Por último, las referencias en la base de datos permanecen 30 días. El contenido y las referencias son procesos por separado.
Saludos.
--C.
Discussions about Alfresco Content Services and Alfresco Process Services in Spanish
Related:
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.