Ir al contenido principal

Entradas

Mostrando entradas de diciembre, 2010

Administración de usuarios/grupos en alfresco (I)

Debido a que la administración de usuarios y grupos en alfresco no ofrece demasiadas posibilidades , estuve indagando un poco en la forma de realizar tareas que eran muy repetitivas con ayuda de javascript. He de agredecer a Pedro Jimenez Caracuel que fue quien me ayudó en un comienzo con esto (estaba bastante perdido....). De modo que voy a mostrar una serie de scripts que en mi caso son bastante útiles (algunos más que otros). - anade_user_group.js (añade un usuario a un grupo, puede parecer una tontería, pero nos servirá para extenderlo a varios usuarios y ver de una manera más clara su funcionamiento): //Variables a completar var nombregrupo="Nombre del Grupo"; var user="Nombre del usuario"; var groupPrefix="GROUP_"; //Fichero de log var logFile = space.childByNamePath("documento_salida.txt"); if (logFile == null) { logFile = space.createFile("documento_salida.txt"); } logFile.content =""; var log = ""; //Obten

Variables jvm

A raíz de una auditoría realizada sobre varios entornos de Alfresco, nos aconsejaron una serie de valores a indicar en la máquina virtual de java. Aprovecho para aclarar algunas de estas variables. Una posible configuración: JAVA_OPTS='-Xms1024m -Xmx1536m -Xmn256m -Xss128k -server -d64 -Xloggc:/opt/alfresco/tomcat/logs/gc.log -Xcheck:jni -Xconcurrentio -XX: +UseParNewGC -XX:+CMSPermGenSweepingEnabled -Dsun.rmi.dgc.server.gcInterval=600000 -Dsun.rmi.dgc.client.gcInterval=600000 -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=31 -XX:+UseParNewGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled' Significado: -server , solo puede haber una opción en la variable, de esta manera activamos Server Hotspot VM. -d32/-d64 , activa el modelo de datos de 32/64bits, por lo que en un entorno de pruebas puede confirmarse la mejor configuración para nuestros entornos con una JVM, recomendable siempre la última revisión (para solución de incidencias detectadas

Decompilador Java

Por si tenéis que decompilar algún class de java.... http://jdec.sourceforge.net/ Lo descomprimís en alguna carpeta y le dais permiso de ejecución a su contenido, luego ejecutáis ./Jdec-UI.sh Hay unos parámetros que se tienen que cambiar, una vez abierta la aplicación, presionad Alt+Mays+A, y en el listado podéis poner algo así: Output_Mode file Log_Mode file Output_Folder_Path /home/rafa/Escritorio Output_File_Extension java LOG_LEVEL 2 Log_File_Path /opt/jdec/log.txt UI_LOG_FILE_PATH /opt/jdec/log2.txt JAVA_CLASS_FILE /opt/jdec/ JAR_FILE_PATH /opt/jdec/ Show_Imports true JDec_Option dc Temp_Dir /home/rafa/Escritorio Inner_Depth 2 Inline_Anonymous_Inner_Class_Content false Interpret_Exception_Table false Interpret_Non_ASCII true Force_Non_ASCII true Skip_Class_Version_Check true int_local_var_prefix aInt byte_local_var_prefix aByte short_local_var_prefix aShort char_local_var_prefix aChar float_local_var_prefix aFloat double_local_var_prefix aDouble long_local_var_prefix aLong boolean

Volcado de memoria (hprof)

Debido a los errores de memoria cada vez más frecuentes (tipo java.lang.OutOfMemoryError: PermGen space failure) en las aplicaciones java que administramos en entornos de producción y a que en la mayoría de los casos se debe a un error de programación, java nos da la posibilidad de añadir una variable para realizar un volcado de la memoria. Con esto obtenemos en un fichero una copia exacta del contenido de la memoria de la jvm en el momento del error. Este fichero nos servirá para tener una base sobre la cual estudiar el origen del problema (hay herramientas para procesar este tipo de ficheros, como jvisualvm). Dicha variable sería: -XX:HeapDumpPath=/ruta/donde/guardar/el/fichero/ -XX: +HeapDumpOnOutOfMemoryError Sólo es factible sobre la versión de java 1.6 (por lo que no se podría aplicar a todas las aplicaciones). Este fichero puede ser analizado con distintas herramientas: JVisualVM, Eclipse Memory Analyzer... Si además quieres que ser avisado por correo cuando esto se produzca, s

alf_bootstrap_lock

Se trata de un error muy típico de Alfresco (al menos en versiones 2.1) cuando se produce alguna complicación de actualización o un reinicio inesperado. Es una medida de seguridad que deja bloqueado el sistema mostrando el siguiente mensaje de error: Caused by: org.alfresco.error.AlfrescoRuntimeException: A previous schema upgrade failed. Revert to the original database before attempting the upgrade again. Si se ha producido por algún reinicio inesperado, la solución es simplemente elminar la tabla: alf_bootstrap_lock Tras esto, arrancaremos alfresco sin ningún problema.