Estou tendo um problema para fazer com que o JConsole se conecte aos meus processos Java. Vamos começar com o básico ...
Como você pode ver no caminho abaixo, estamos executando a Informatica com Java empacotado.
E:\Informatica.1.0\java\bin>java.exe -version
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01, mixed mode)
Nossos processos java são gerados a partir de um serviço do Windows executado como "UserX". Aqui estão dois dos comandos do processo, como mostrado por wmic process list
.
E: \ Informatica \ 9.1.0 \ java \ bin \ java -XX: GCTimeRatio = 9 -Xmx512M -passe de caminho da chamada E: \ Informatica \ 9.1.0 \ services \ shared \ jars \ infatomcatbootstrap.jar; : \ Informatica \ 9.1.0 \ tomcat \ bin \ bootstrap.jar -Dcatalina.base = E: \ Informatica \ 9.1.0 \ tomcat \ temp_AdminConsole -Dcatalina.home = E: \ Informatica \ 9.1.0 \ tomcat -Djava. io.tmpdir = E: \ Informatica \ 9.1.0 \ tomcat \ temp_AdminConsole \ temp -Djava.util.logging.config.file = E: \ Informatica \ 9.1.0 \ tomcat \ temp_AdminConsole \ conf \ logging.properties -DINFA_HOME = E: \ Informatica \ 9.1.0 -DINFA_DOMAINS_FILE = E: \ Informatica \ 9.1.0 \ domains.infa -Duser.dir = E: \ Informatica \ 9.1.0 \ tomcat \ bin -Dcom.informatica.imf.encryption.provider = com.informatica.imf.icore.impl.IEncryptionProviderImpl -Djava.util.logging.manager = org.apache.juli.ClassLoaderLogManager com.informatica.isp.tools.tomcatstarter.InfaTomcatBootstrap start
E: \ Informatica \ 9.1.0 \ java \ bin \ java -Xmx4096m -Djava.awt.headless = true -Dfile.encoding = UTF-8 -XX: MaxPermSize = 512 m -classpath E: \ Informatica \ 9.1.0 \ services \ shared \ jars \ infatomcatbootstrap.jar; E: \ Informatica \ 9.1.0 \ tomcat \ bin \ bootstrap.jar -Dcatalina.base = E: \ Informatica \ 9.1.0 \ tomcat \ temp \ AS_GProd -Dcatalina.home = E: \ Informatica \ 9.1.0 \ tomcat -Djava.io.tmpdir = E: \ Informatica \ 9.1.0 \ tomcat \ temp \ AS_GProd \ temp -Djava.util.logging.config.file = E : \ Informatica \ 9.1.0 \ tomcat \ temp \ AS_GProd \ conf \ logging.properties -DINFA_HOME = E: \ Informatica \ 9.1.0 -DINFA_DOMAINS_FILE = E: \ Informatica \ 9.1.0 \ domains.infa -Duser.dir = E: \ Informatica \ 9.1.0 \ tomcat \ bin -Dcom.informatica.imf.encryption.provider = com.informatica.imf.icore.impl.IEncryptionProviderImpl -Djava.util.logging.manager = org.apache.juli.ClassLoaderLogManager com.informatica.isp.tools.tomcatstarter.InfaTomcatBootstrap start
Quando abro o JConsole (como UserX), vejo todos os meus processos Java, mas eles ficam esmaecidos com uma mensagem de O agente de gerenciamento não está habilitado neste processo . Eu entendo o significado da mensagem, mas eu não entendo por que o agente de gerenciamento não está sendo executado . Meu entendimento é que todos os processos do Java SE 6+ têm um agente de gerenciamento "anexável" por padrão e que não é necessário ativá-lo manualmente. O que estou perdendo?
Não tenho certeza se isso é relevante, mas estou me conectando à máquina remotamente e nossa política de grupo de pastas Administrativas Modelos \ Componentes do Windows \ Serviços de Terminal \ Pastas Temporárias está configurada para que eu obtenha um diretório temporário exclusivo. Por exemplo: Temp \ 2 ou Temp \ 3. Eu tenho que mudar isso para Temp \ em um terminal e lançar o JConsole desse terminal para que o JConsole encontre os arquivos pid que o JMV cospe.
Tags java monitoring