Como ativar JMX no servidor Glassfish remoto para acesso com jconsole?

votos
4

Gostaria de monitorar servidor remoto GlassFish. Tenho habilitado conexão JMX em domain.xml:

<jmx-connector accept-all=true address=0.0.0.0 auth-realm-name=admin-realm enabled=true name=system port=8686 protocol=rmi_jrmp security-enabled=false>

Mas isso não ajuda. Eu ainda não consigo conectar ao servidor com JConsole. Então eu encontrei solução - eu preciso especificar as propriedades da JVM em domain.xml para abrir 8686 de porta para conexão remota. Então eu adicionei estas linhas em java-config seção:

<jvm-options>-Dcom.sun.management.jmxremote</jvm-options>
<jvm-options>-Dcom.sun.management.jmxremote.port=8686</jvm-options>
<jvm-options>-Dcom.sun.management.jmxremote.local.only=false</jvm-options>
<jvm-options>-Dcom.sun.management.jmxremote.authenticate=false</jvm-options>

Mas agora, quando estou começando servidor, eu estou ficando seguintes erros:

Não foi possível carregar LogManager java.lang.ClassNotFoundException com.sun.enterprise.server.logging.ServerLogManager: com.sun.enterprise.server.logging.ServerLogManager em java.net.URLClassLoader $ 1.run (URLClassLoader.java:200) em java.security.AccessController.doPrivileged (Método nativo) em java.net.URLClassLoader.findClass (URLClassLoader.java:188) em java.lang.ClassLoader.loadClass (ClassLoader.java:307) em sun.misc.Launcher $ AppClassLoader .loadClass (Launcher.java:301) em java.lang.ClassLoader.loadClass (ClassLoader.java:252) em java.util.logging.LogManager $ 1.run (LogManager.java:166) em java.security.AccessController.doPrivileged (Método nativo) em java.util.logging.LogManager. (LogManager.java:156) em java.util.logging.Logger.getLogger (Logger.java:273) em sun.management.snmp.util.MibLogger. (MibLogger .Java: 57) em sun.management.snmp.util.MibLogger (MibLogger.java:42) em sun.management.jmxremote.ConnectorBootstrap (ConnectorBootstrap.java:760) em sun.management.Agent.startAgent (agente... java: 127) a t sun.management.Agent.startAgent (Agent.java:239) javax.management.JMRuntimeException: Falha ao carregar MBeanServerBuilder com.sun.enterprise.admin.server.core.jmx.AppServerMBeanServerBuilder classe: java.lang.ClassNotFoundException: com. sun.enterprise.admin.server.core.jmx.AppServerMBeanServerBuilder em javax.management.MBeanServerFactory.checkMBeanServerBuilder (MBeanServerFactory.java:480) em javax.management.MBeanServerFactory.getNewMBeanServerBuilder (MBeanServerFactory.java:511) em javax.management.MBeanServerFactory. newMBeanServer (MBeanServerFactory.java:298) em javax.management.MBeanServerFactory.createMBeanServer (MBeanServerFactory.java:213) em javax.management.MBeanServerFactory.createMBeanServer (MBeanServerFactory.java:174) em sun.management.ManagementFactory.createPlatformMBeanServer (ManagementFactory.java : 302) em java.lang.management.ManagementFactory.getPlatformMBeanServer (ManagementFactory.java:504) em sun.management.jmxremote.ConnectorBootstrap.initialize (ConnectorBootstrap. java: 392) em sun.management.Agent.startAgent (Agent.java:127) em sun.management.Agent.startAgent (Agent.java:239) Causada por: java.lang.ClassNotFoundException: com.sun.enterprise.admin .server.core.jmx.AppServerMBeanServerBuilder em java.net.URLClassLoader $ 1.run (URLClassLoader.java:200) em java.security.AccessController.doPrivileged (Método nativo) em java.net.URLClassLoader.findClass (URLClassLoader.java:188 ) em java.lang.ClassLoader.loadClass (ClassLoader.java:307) em sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:301) em java.lang.ClassLoader.loadClass (ClassLoader.java:252) em javax .management.MBeanServerFactory.loadBuilderClass (MBeanServerFactory.java:423) em javax.management.MBeanServerFactory.checkMBeanServerBuilder (MBeanServerFactory.java:465) ... 9 mais Exceção acionada pelo agente: javax.management.JMRuntimeException: Falha ao carregar MBeanServerBuilder classe com.sun.enterprise.admin.server.core.jmx.AppServerMBeanServerBuilder: java.lang.ClassNotFoundException: com.sun.ente rprise.admin.server.core.jmx.AppServerMBeanServerBuilder

Como posso resolver o problema?

Desde já, obrigado.

Publicado 05/08/2009 em 09:26
fonte usuário
Em outras línguas...                            


5 respostas

votos
3

Ainda comportamento mística, mas com estes 4 configurações que você pode se conectar à JVM em execução Glassfish (adicionar aos domain.xml no console de administração, é necessário reiniciar)

-Djava.rmi.server.hostname=yourhost
-Dcom.sun.management.jmxremote.port=8686
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

Cuidado ! Esta não é seguro, como qualquer um pode agora ligar uma jconsole a ele!

IMO esta não é a maneira Glassfish, que está a utilizar o conector JMX.

(Acima trabalha em GF 3.1)

Respondeu 18/11/2011 em 05:49
fonte usuário

votos
3

Passos para resolver o problema são: configurações padrão 1. uso 2. Adicione -Djava.rmi.server.hostname = nas opções de JVM da instância do GlassFish.

Respondeu 31/08/2009 em 08:38
fonte usuário

votos
2

I acabou definindo a seguinte opção para garantir que JMX com Glassfish é firewall amigável:

<jvm-options>-Dcom.sun.aas.jconsole.server.cbport=XXXX</jvm-options>

Onde XXXX é o número da porta que você usa no firewall juntamente com o número da porta JMX configurado servidor de aplicação (geralmente 8686).

Leia mais em este blogpost . Note que este recurso requer uma versão mais recente do Glassfish. Eu usei-o com sucesso com Glassfish 2.1.1.

Respondeu 18/03/2010 em 14:42
fonte usuário

votos
0

Se executar o aplicativo dentro de servidor de aplicações Glassfish, simplesmente execute o seguinte comando asadmin, você precisa reiniciar todos os servidores que executam para que a alteração tenha efeito.

./asadmin permitir-seguro-admin

Há configurações de servidor Glassfish extras para permitir ainda mais a segurança, veja mais em Conectar remotamente para Glassfish através de JMX .

Você precisa fazer para seguir os passos sobre as opções de JVM, estas são instruções para aplicativos Java em geral. Para uma aplicação Java que roda com servidor de aplicação GlassFish, simplesmente usando o comando asadm. Isso me salvou muito tempo!

** Outra nota, com apenas as configurações usando opções de JVM, Glassfish não seria suficiente para começar com as exceções de tempo de execução acima. ** Eu estou usando GF3.1.2 e acima, e Java 7.

Respondeu 20/03/2015 em 22:57
fonte usuário

votos
0

Não é questão GlassFish 1409 ?

Respondeu 06/08/2009 em 14:51
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more