Analytics and Automation Software : Cisco Tidal Enterprise Scheduler

Planificador maré da empresa: Obtenha uma descarga da pilha das Javas usando o “jstack”

19 Setembro 2015 - Tradução por Computador
Outras Versões: Versão em PDFpdf | Inglês (22 Agosto 2015) | Feedback


Índice


Introdução

Este documento descreve como obter uma descarga da pilha das Javas usando o comando do jstack das Javas. Este processo é válido em Windows, Linux, e UNIX, e todos os sistemas maré usando a versão 1.6+ das Javas de Sun do Oracle.

Pré-requisitos

Requisitos

Cisco recomenda que você tem o conhecimento das Javas e o conhecimento do sistema operacional em que a Java é executado. Também, a versão 1.6+ das Javas JDK (Java Development Kit) deverá ser instalada no sistema.

Componentes Utilizados

  • Javas JRE 1.6+ de Sun

  • Javas JDK 1.6+ de Sun

Convenções

Consulte as Convenções de Dicas Técnicas da Cisco para obter mais informações sobre convenções de documentos.

Problema

Ocasionalmente, necessidades do apoio de capturar os dados de baixo nível da linha que não estão nos logs mestres.

Solução

A fim capturar uma descarga da pilha das Javas que usa a ferramenta do jstack forneceu pelo Oracle Sun, termina estas etapas.

Nota: O processo das Javas deve executar as Javas 1.6+ de Sun a fim executar o comando do jstack, e o JDK deve ser instalado no sistema. Transfira o Oracle Sun JDK aquileavingcisco.com .

  1. Encontre o número de identificação do processo na máquina que executa o processo das Javas.

    • Em uma máquina de Windows, você pode usar o gerenciador de tarefa para encontrar o número de identificação do processo.

      http://www.cisco.com/c/dam/en/us/support/docs/cloud-systems-management/tidal-enterprise-scheduler/113122-java-stack-dump-using-jstack-01.gif

      Especificamente, o PID é o número de identificação do processo. Se você não vê esta coluna, vista seleta > colunas >PID (identificador do processo) a fim adicionar-la.

    • Em UNIX/Linux, você pode emitir o ps - ef | comando de UnixMaster do grep a fim obter o processo ID:

      root@sunts06:/# ps -ef | grep UnixMaster
        root 5452 5423 0 14:43:21 pts/14 0:00 grep UnixMaster
        root 1868    1 0   Jun 09 ?     31:49 /usr/bin/java -DN=UnixMaster -DTI
      DAL_HOME=/opt/TIDAL/master/bin/.. -Xms256m -Xm
      root@sunts06:/#
  2. Uma vez que você tem o número de identificação que do processo você precisa, vai ao diretório bin onde o Sun JDK é instalado e emita o comando where do jstack {PID} {PID} é o número de identificação do processo. Isto imprimirá a informação da pilha das Javas à tela.

    C:\Program Files\Java\jdk1.6.0_25\bin>jstack 3724
    2011-06-30 20:07:37
    Full thread dump Java HotSpot(TM) 64-Bit Server VM (20.0-b11 mixed mode):
    
    "Swing-Shell" daemon prio=6 tid=0x0000000006cce800 nid=0x1bd8 waiting on conditi
    on [0x000000000843f000]
       java.lang.Thread.State:WAITING (parking)
            at sun.misc.Unsafe.park(Native Method)
            - parking to wait for  <0x00000000fb38ace8> (a java.util.concurrent.lock
    s.AbstractQueuedSynchronizer$ConditionObject)
            at java.util.concurrent.locks.LockSupport.park(Unknown Source)
            at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
    .await(Unknown Source)
            at java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
            at java.util.concurrent.ThreadPoolExecuter.getTask(Unknown Source)
            at java.util.concurrent.ThreadPoolExecuter$Worker.run(Unknown Source)
            at sun.awt.shell.Win32ShellFolderManager2$ComInvoker$3.run(Unknown 
    Source)
            at java.lang.Thread.run(Unknown Source)
    
    "Thread-2" prio=6 tid=0x0000000006cd0800 nid=0xe6c waiting on condition [0x00000
    0000833f000]
       java.lang.Thread.State: TIMED_WAITING (sleeping)
            at java.lang.Thread.sleep(Native Method)
  3. A fim reorientar a informação da pilha a um arquivo, emita o mesmo comando com a opção da criação do arquivo que funcionará em Windows e em Linux/UNIX:

    jstack {PID} > [filename.out]
    

Discussões relacionadas da comunidade de suporte da Cisco

A Comunidade de Suporte da Cisco é um fórum onde você pode perguntar e responder, oferecer sugestões e colaborar com colegas.


Informações Relacionadas


Document ID: 113122