Forzar el HOST en JMX (RMI) para Alfresco ECM

En algunas ocasiones necesitamos forzar el HOST para las conexiones JMX vía RMI de Alfresco.

En la configuración (alfresco-shared.properties) encontramos dos propiedades que son las siguientes:

alfresco.rmi.services.port=50500
alfresco.rmi.services.host=localhost

Pero en realidad hacen referencia a la parte de «virtualización» de servidor de Alfresco y no de los servicios que este proporciona. Para ello hay que recurrir a una propiedad en la llamada a la JVM que es java.rmi.server.hostname

En efecto, si necesitamos forzar una IP determinada de «escucha» para conectar alguna consola tipo jconsole, VisualVM, etc. necesitaremos hacer uso de esta variable.

Lo mejor es ponerla en el script de arranque de Alfresco, por ejemplo en Linux, esta sería una forma:

[…]
export IP_ADDR=»`hostname -i`»
export JAVA_OPTS=»-Xms256m -Xmx524m -Xss128k -XX:PermSize=196m -XX:MaxPermSize=196m -server»
export JAVA_OPTS=»${JAVA_OPTS} -Dalfresco.home=${ALF_HOME} -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=${IP_ADDR} -Djava.rmi.server.port=50500″
[…]

Ahora solo queda arrancar y probar que se está listando correctamente el puerto y desde la dirección IP adecuada con:

netstat -putan | grep java

Y el resultado sería algo así:

tcp        0      0 ::ffff:192.168.1.112:50500  :::*                        LISTEN      5560/java          
tcp        0      0 ::ffff:127.0.0.1:8005       :::*                        LISTEN      5560/java          
tcp        0      0 :::50501                    :::*                        LISTEN      5560/java          
tcp        0      0 :::50502                    :::*                        LISTEN      5560/java          
tcp        0      0 :::55142                    :::*                        LISTEN      5560/java          
tcp        0      0 :::50503                    :::*                        LISTEN      5560/java          
tcp        0      0 :::50504                    :::*                        LISTEN      5560/java          
tcp        0      0 :::8009                     :::*                        LISTEN      5560/java          
tcp        0      0 :::50505                    :::*                        LISTEN      5560/java          
tcp        0      0 :::50506                    :::*                        LISTEN      5560/java          
tcp        0      0 :::50507                    :::*                        LISTEN      5560/java          
tcp        0      0 :::139                      :::*                        LISTEN      5560/java          
tcp        0      0 :::50508                    :::*                        LISTEN      5560/java          
tcp        0      0 :::53453                    :::*                        LISTEN      5560/java          
tcp        0      0 :::8080                     :::*                        LISTEN      5560/java          
tcp        0      0 :::41715                    :::*                        LISTEN      5560/java          
tcp        0      0 :::38324                    :::*                        LISTEN      5560/java          
tcp        0      0 :::445                      :::*                        LISTEN      5560/java          
tcp        0      0 ::ffff:127.0.0.1:42540      ::ffff:127.0.0.1:3306       ESTABLISHED 5560/java          
tcp        0      0 ::ffff:127.0.0.1:42541      ::ffff:127.0.0.1:3306       ESTABLISHED 5560/java          
tcp        0      0 ::ffff:127.0.0.1:42542      ::ffff:127.0.0.1:3306       ESTABLISHED 5560/java          
tcp        0      0 ::ffff:127.0.0.1:42543      ::ffff:127.0.0.1:3306       ESTABLISHED 5560/java          
tcp        0      0 ::ffff:127.0.0.1:42544      ::ffff:127.0.0.1:3306       ESTABLISHED 5560/java          
tcp        0      0 ::ffff:127.0.0.1:42545      ::ffff:127.0.0.1:3306       ESTABLISHED 5560/java          
tcp        0      0 ::ffff:127.0.0.1:42546      ::ffff:127.0.0.1:3306       ESTABLISHED 5560/java          
tcp        0      0 ::ffff:127.0.0.1:42547      ::ffff:127.0.0.1:3306       ESTABLISHED 5560/java          
tcp        0      0 ::ffff:192.168.1.112:50508  ::ffff:192.168.1.103:53427  ESTABLISHED 5560/java          
tcp        0      0 ::ffff:192.168.1.112:50508  ::ffff:192.168.1.103:53428  ESTABLISHED 5560/java          
udp        0      0 :::137                      :::*                                    5560/java          
udp        0      0 :::7500                     :::*                                    5560/java          
udp        0      0 :::7500                     :::*                                    5560/java

2 respuestas en “Forzar el HOST en JMX (RMI) para Alfresco ECM”

  1. Buenas,
    Has probado que no te falle por una interfaz de red que no sea la de servidor? una sub-interfaz?

    en un redhat con la última versión enterpriese obtengo:
    ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[172.172.0.3].[/alfresco]] (main) Exception sending context initialized event to listener instance of class org.alfresco.repo.webdav.WebDAVSessionListener
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'avmRemoteService' defined in class path resource [alfresco/remote-services-context.xml]: Invocation of init method failed; nested exception is java.rmi.server.ExportException: internal error: ObjID already in use

    Caused by: java.rmi.server.ExportException: internal error: ObjID already in use

    No he conseguido forzarlo. Es muy interesante para aislar varios Alfresco en distintas instancias JBoss.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *