<?xml version="1.0"?>
<!-- name="generator" content="blojsom v3.3" -->
<rss version="2.0" xmlns:wfw="http://wellformedweb.org/CommentAPI/">
    <channel>
        <title>Claudio Miranda</title>
        <link>http://www.claudius.com.br/blog/claudio</link>
        <description>Blog do Claudio Miranda</description>
        <language>pt</language>
        <image>
            <url>http://www.claudius.com.br/favicon.ico</url>
            <title>Claudio Miranda</title>
            <link>http://www.claudius.com.br/blog/claudio</link>
        </image>
        <docs>http://blogs.law.harvard.edu/tech/rss</docs>
		<generator>blojsom v3.3</generator>
		<managingEditor>claudio@claudius.com.br</managingEditor>
		<webMaster>claudio@claudius.com.br</webMaster>
		<pubDate>Mon, 19 Oct 2009 16:49:01 -0200</pubDate>

                        <item>
            <title>Geração de dumps (thread e memory) no WebSphere 6.x</title>
            <link>http://www.claudius.com.br/blog/claudio/2009/10/19/Geração-de-dumps-thread-e-memory-no-WebSphere-6-x</link>
            <description>&lt;p&gt;Segue uma dica de como extrair um dump de threads e memória do WebSphere, funciona tanto em unix como em windows.
&lt;/p&gt;
&lt;p&gt;Acessar a interface administrativa e configurar os parametros
&lt;/p&gt;
&lt;p&gt;Navegação
  &lt;br /&gt;
&lt;/p&gt;
&lt;pre&gt;Servers -&amp;gt; Application Servers -&amp;gt; Server1 -&amp;gt; Process Definition -&amp;gt; Java Virtual Machine -&amp;gt; Generic JVM arguments&lt;/pre&gt; Parâmetro:
&lt;pre&gt;-Xdump:system+heap+java:events=gpf+throw+user,filter=java/lang/OutOfMemoryError,request=exclusive+prepwalk&lt;/pre&gt; Navegação:
&lt;pre&gt;Servers -&amp;gt; Application Servers -&amp;gt; Server1 -&amp;gt; Process Definition &amp;gt; Environment Entries&lt;/pre&gt; Parâmetros:
&lt;pre&gt;IBM_HEAPDUMP=true
IBM_HEAPDUMP_OUTOFMEMORY=true
IBM_HEAPDUMPDIR=c:\temp
&lt;/pre&gt;
&lt;p&gt;Agora criar um atalho para facilitar o acesso ao script wsadmin, no diretório &lt;font face=&quot;courier new,courier,monospace&quot;&gt;WAS_HOME/bin&lt;/font&gt;.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Windows &lt;/strong&gt;
&lt;/p&gt;
&lt;pre&gt;* _wsadmin_comm.bat
wsadmin -conntype SOAP -user admin -password senha_do_admin %*
&lt;/pre&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Unix&lt;/strong&gt;
&lt;/p&gt;
&lt;pre&gt;* _wsadmin_comm.sh
wsadmin -conntype SOAP -user admin -password senha_do_admin $*
&lt;/pre&gt;
&lt;p&gt;Crie scripts JACL (script baseado em TCL) para invocação dos comandos.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Memory Dump&lt;/strong&gt;
  &lt;br /&gt;
&lt;/p&gt;
&lt;pre&gt;* heapdump.jacl
set jvm [$AdminControl queryNames type=JVM,*]
$AdminControl invoke $jvm generateHeapDump
&lt;/pre&gt;&lt;strong&gt; Thread dump&lt;/strong&gt;
&lt;pre&gt;* threaddump.jacl
set jvm [$AdminControl queryNames type=JVM,*]
$AdminControl invoke $jvm dumpThreads
&lt;/pre&gt;
&lt;p&gt; Para gerar os dumps basta invocar os comandos
&lt;/p&gt;
&lt;pre&gt;_wsadmin_comm.sh -f heapdump.jacl&lt;/pre&gt;
&lt;p&gt;Veja no diretório especificado em IBM_HEAPDUMPDIR ou no AppServer01 se os arquivos foram gerados em um deles.
&lt;/p&gt;
&lt;p&gt;Depois use ferramental adequado para analisar os dumps (&lt;a target=&quot;_blank&quot; href=&quot;http://eclipse.org/mat/&quot;&gt;Eclipse Memory Analyzer&lt;/a&gt;, &lt;a target=&quot;_blank&quot; href=&quot;http://www.alphaworks.ibm.com/tech/jca&quot;&gt;IBM Thread Dump Analyzer&lt;/a&gt;).
  &lt;br /&gt;
&lt;/p&gt;</description>
            <guid>http://www.claudius.com.br/blog/claudio/2009/10/19/Geração-de-dumps-thread-e-memory-no-WebSphere-6-x</guid>
			<pubDate>Mon, 19 Oct 2009 16:49:01 -0200</pubDate>
            <category>/Java/</category>
                                        <wfw:comment>http://www.claudius.com.br/commentapi/claudio/Java/2009/10/19/Geração-de-dumps-thread-e-memory-no-WebSphere-6-x</wfw:comment>
            <wfw:commentRss>http://www.claudius.com.br/blog/claudio/2009/10/19/Geração-de-dumps-thread-e-memory-no-WebSphere-6-x?page=comments&amp;flavor=rss2</wfw:commentRss>
                                </item>
                        <item>
            <title>Palestra Java vs .Net</title>
            <link>http://www.claudius.com.br/blog/claudio/2009/10/19/Palestra-Java-vs-Net</link>
            <description>&lt;p&gt;&lt;img src=&quot;/resources/claudio/bannereventojavaversusdotnetdf2009_728x90.gif&quot; alt=&quot;&quot; /&gt;
  &lt;br /&gt;
&lt;/p&gt;
&lt;div align=&quot;justify&quot;&gt;
  &lt;p align=&quot;left&quot;&gt;Irei participar do &lt;a href=&quot;http://www.javaversusdotnet.com.br&quot;&gt;evento &quot;Java vs .Net&quot;&lt;/a&gt;, que irá ocorrer em Brasília no dia 24 de outubro e 07 de novembro.
  &lt;/p&gt;
  &lt;p align=&quot;left&quot;&gt; Veja o &lt;a target=&quot;_blank&quot; href=&quot;http://www.javaversusdotnet.com.br&quot;&gt;site para maiores informações&lt;/a&gt;.
  &lt;/p&gt;
  &lt;p align=&quot;left&quot;&gt;Vou fazer uma palestra &lt;a target=&quot;_blank&quot; href=&quot;http://www.javaversusdotnet.com.br/Programacao.aspx#Tema2&quot;&gt;&quot;Linguagem de programação Java e certificação&quot;&lt;/a&gt; e participar de um debate com outro palestrante representante da tecnologia .Net.
  &lt;/p&gt;
  &lt;p align=&quot;left&quot;&gt;Achei um momento oportuno de participar de uma discussão como esta, pois parece ainda existir dúvidas sobre a adoção da tecnologia Java ou .Net. Sem dúvida JAVA !
  &lt;/p&gt;
  &lt;p&gt;Não vou repetir o que já existe na internet sobre a discussão sobre Java x .Net. Pesquisem e testem por sí mesmos.
    &lt;br /&gt;
  &lt;/p&gt;
  &lt;p align=&quot;left&quot;&gt;O que é importante é que a tecnologia Java é composto por um forte trio: plataforma, linguagem, bibliotecas. Que catapultaram &lt;a href=&quot;http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html&quot;&gt;Java para a linguagem de programação mais usada no mundo&lt;/a&gt;.
  &lt;/p&gt;
  &lt;p align=&quot;left&quot;&gt;Já &lt;a href=&quot;http://wiki.claudius.com.br/wiki/Curriculo&quot;&gt;trabalhei com diversos clientes e sistemas de uso massivo&lt;/a&gt;, e todos eles usavam Java (óbvio) e Unix no servidor, pelo simples fato da plataforma windows não conseguir escalar (depoimento do próprio cliente e por experiência própria) e por consequência o .net.
  &lt;/p&gt;
  &lt;p&gt;&lt;img src=&quot;/resources/claudio/duketuxjavaone2003tshirt2.jpg&quot; alt=&quot;&quot; /&gt;
    &lt;br /&gt;
  &lt;/p&gt;
  &lt;p&gt;Vejo algumas razões para alguém adotar .Net:
  &lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;Não querer/poder desprender da tecnologia .Net&lt;/li&gt;
    &lt;li&gt;API para desktop e integração com o windows&lt;/li&gt;
    &lt;li&gt;Contratos de fornecimento de software combinado em larga escala&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;Quem tive maior curiosidade participe do evento, confira a &lt;a target=&quot;_blank&quot; href=&quot;http://www.javaversusdotnet.com.br/Programacao.aspx&quot;&gt;programação de palestras&lt;/a&gt;.
  &lt;/p&gt;
  &lt;p&gt;Outros renomados palestrantes e profissionais do &lt;a href=&quot;http://www.javaversusdotnet.com.br/PalestrantesJava.aspx&quot;&gt;mundo Java&lt;/a&gt; irão participar do evento, assim como personalidades do &lt;a target=&quot;_blank&quot; href=&quot;http://www.javaversusdotnet.com.br/PalestrantesDotNet.aspx&quot;&gt;mundo .net&lt;/a&gt;.
  &lt;/p&gt;
  &lt;p&gt;Conheço alguns dos palestrantes: Daniel de Oliveira (DFJUG), João Paulo Viragine (RedHat), Rafael Benevides (RedHat), Marcelo Ancelmo (Lado Servidor), Paulo Jeronimo (Lado Servidor).
    &lt;br /&gt;
  &lt;/p&gt;
  &lt;p&gt;Veja a chamada do evento:
  &lt;/p&gt;
  &lt;blockquote&gt;
    &lt;blockquote&gt;
      &lt;p&gt;O evento “Plataforma Java x Plataforma .NET - Edição DF 2009” tem como objetivo promover debates técnicos abordando diversos temas. Na edição DF 2009, o evento conta com palestrantes de alto nível técnico para representarem as plataformas Java e .NET. Diversos parceiros estão apoiando o evento, incluindo empresas, grupos de usuários, instituições de educação superior, revistas e Web Sites. O evento é beneficente e todas as inscrições representam doações para um projeto social.
      &lt;/p&gt;
    &lt;/blockquote&gt;
  &lt;/blockquote&gt;
  &lt;p&gt;
    &lt;br /&gt;
  &lt;/p&gt;
  &lt;p align=&quot;left&quot;&gt;
    &lt;br /&gt;
  &lt;/p&gt;
&lt;/div&gt;</description>
            <guid>http://www.claudius.com.br/blog/claudio/2009/10/19/Palestra-Java-vs-Net</guid>
			<pubDate>Mon, 19 Oct 2009 16:25:35 -0200</pubDate>
            <category>/Java/</category>
                                        <wfw:comment>http://www.claudius.com.br/commentapi/claudio/Java/2009/10/19/Palestra-Java-vs-Net</wfw:comment>
            <wfw:commentRss>http://www.claudius.com.br/blog/claudio/2009/10/19/Palestra-Java-vs-Net?page=comments&amp;flavor=rss2</wfw:commentRss>
                                </item>
                        <item>
            <title>An internal error occurred while showing an internal error</title>
            <link>http://www.claudius.com.br/blog/claudio/2009/10/02/An-internal-error-occurred-while-showing-an-internal-error</link>
            <description>
&lt;p&gt;An internal error occurred while showing an internal error.&lt;/p&gt;

&lt;img src=&quot;/resources/claudio/20091002_eclipse_internal_error.png&quot; alt=&quot;Eclipse Internal Error&quot; /&gt;

&lt;p&gt;Tem coisas que só o Eclipse faz para você.&lt;/p&gt; 

</description>
            <guid>http://www.claudius.com.br/blog/claudio/2009/10/02/An-internal-error-occurred-while-showing-an-internal-error</guid>
			<pubDate>Fri, 2 Oct 2009 01:20:41 -0300</pubDate>
            <category>/Java/</category>
                                        <wfw:comment>http://www.claudius.com.br/commentapi/claudio/Java/2009/10/02/An-internal-error-occurred-while-showing-an-internal-error</wfw:comment>
            <wfw:commentRss>http://www.claudius.com.br/blog/claudio/2009/10/02/An-internal-error-occurred-while-showing-an-internal-error?page=comments&amp;flavor=rss2</wfw:commentRss>
                                </item>
                        <item>
            <title>Palestra na Universidade Catolica</title>
            <link>http://www.claudius.com.br/blog/claudio/2009/08/18/Palestra-na-Universidade-Catolica</link>
            <description>&lt;img src=&quot;/resources/claudio/20080817-logo_evento.png&quot; hspace=&quot;80&quot; align=&quot;right&quot; border=&quot;0&quot; style=&quot;float: right;&quot;/&gt;

&lt;p&gt;Dia 19 de agosto - quarta-feira - vou à Universidade Católica em Taguatinga, para participar do evento &quot;&lt;a target=&quot;_blank&quot; href=&quot;http://portal.ucb.br/erico/&quot;&gt;Encontro Regional de Informática do Centro-Oeste I&lt;/a&gt;&quot;, fui convidado para participar com uma palestra. Irei falar sobre &quot;&lt;a target=&quot;_blank&quot; href=&quot;http://portal.ucb.br/erico/programacaoBrasilia.php&quot;&gt;&lt;strong&gt;Gerenciamento de Memória pela Maquina Virtual Java&lt;/strong&gt;&lt;/a&gt;.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;Pretendo mostrar como funciona a alocação de memória e a limpeza automática (vulgo Garbage Collector), seus algoritmos e algumas boas práticas para o programador exercer um bom trabalho.
&lt;/p&gt;
&lt;p&gt;O evento será na Universidade Católica, Campus Taguatinga, Auditório Central do Prédio São João Batista de La Salle. O horário é 21h.
&lt;/p&gt;
&lt;p&gt;O evento conta com outras palestras sobre os temas: processamento de imagens, Datawarehouse e OLAP, processamento de sinais, Cloud Computing, Gestão de Segurança, Computação de Alto Desempenho, Computação Invisível.
&lt;/p&gt;
&lt;p&gt;Os minicursos também fazem parte do evento: Data Mining, PlayStation 3 em computação de alto desempenho, Ruby on Rails, Criptografia, Linux.
  &lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Update: &lt;/em&gt;
  A palestra está &lt;a href=&quot;http://www.slideshare.net/claudius/gerenciamento-de-memria-pela-jvm-1888672&quot;&gt;disponível para olhar ou copiar&lt;/a&gt;.
&lt;/p&gt;
&lt;div style=&quot;width:425px;text-align:left&quot; id=&quot;__ss_1888672&quot;&gt;&lt;a style=&quot;font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;&quot; href=&quot;http://www.slideshare.net/claudius/gerenciamento-de-memria-pela-jvm-1888672&quot; title=&quot;Gerenciamento de Memória pela JVM&quot;&gt;Gerenciamento de Memória pela JVM&lt;/a&gt;&lt;object style=&quot;margin:0px&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=cm-200908-ucb-090820220117-phpapp02&amp;rel=0&amp;stripped_title=gerenciamento-de-memria-pela-jvm-1888672&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;/&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;embed src=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=cm-200908-ucb-090820220117-phpapp02&amp;rel=0&amp;stripped_title=gerenciamento-de-memria-pela-jvm-1888672&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style=&quot;font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;&quot;&gt;View more &lt;a style=&quot;text-decoration:underline;&quot; href=&quot;http://www.slideshare.net/&quot;&gt;documents&lt;/a&gt; from &lt;a style=&quot;text-decoration:underline;&quot; href=&quot;http://www.slideshare.net/claudius&quot;&gt;Claudio Miranda&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;</description>
            <guid>http://www.claudius.com.br/blog/claudio/2009/08/18/Palestra-na-Universidade-Catolica</guid>
			<pubDate>Tue, 18 Aug 2009 20:16:54 -0300</pubDate>
            <category>/Java/</category>
                                        <wfw:comment>http://www.claudius.com.br/commentapi/claudio/Java/2009/08/18/Palestra-na-Universidade-Catolica</wfw:comment>
            <wfw:commentRss>http://www.claudius.com.br/blog/claudio/2009/08/18/Palestra-na-Universidade-Catolica?page=comments&amp;flavor=rss2</wfw:commentRss>
                                </item>
                        <item>
            <title>Como reduzir espaço em disco do JDK em ambiente servidor</title>
            <link>http://www.claudius.com.br/blog/claudio/2009/03/06/Como-reduzir-espaço-em-disco-do-JDK-em-ambiente-servidor</link>
            <description>&lt;p&gt;No decorrer dos anos, as novas vers&amp;otilde;es do JDK estavam acompanhadas de novas funcionalidades, bibliotecas, etc.&lt;/p&gt;
&lt;p&gt;E sempre existiram coment&amp;aacute;rios na comunidade, sobre o tamanho do JDK e o espa&amp;ccedil;o ocupado pelo JDK, ap&amp;oacute;s a instala&amp;ccedil;&amp;atilde;o.&lt;/p&gt;
&lt;p&gt;Pois vou dar uma dica de como remover arquivos desnecess&amp;aacute;rios do JDK em ambiente servidor. Na maioria das vezes, isso s&amp;oacute; ser&amp;aacute; necess&amp;aacute;rio se uma economia de 100MB for importante. Ou instala&amp;ccedil;&amp;otilde;es em rede com imagem, para poupar tempo de download para outras esta&amp;ccedil;&amp;otilde;es.&lt;/p&gt;
&lt;p&gt;A dica &amp;eacute; baseada em um ambiente Linux 32 bits, com uma instala&amp;ccedil;&amp;atilde;o padr&amp;atilde;o do JDK 6 update 12.&lt;/p&gt;
&lt;p&gt;A instala&amp;ccedil;&amp;atilde;o padr&amp;atilde;o ocupa um espa&amp;ccedil;o de 239 MB. Veja a ocupa&amp;ccedil;&amp;atilde;o de espa&amp;ccedil;o nas vers&amp;otilde;es anteriores do JDK.&lt;/p&gt;
&lt;pre&gt;
82M     j2sdk1.4.2_18
141M    jdk1.5.0_16
239M    jdk1.6.0_12
&lt;/pre&gt;
&lt;p&gt;Uma boa evolu&amp;ccedil;&amp;atilde;o no espa&amp;ccedil;o ocupado.&lt;/p&gt;
&lt;p&gt;Veja os arquivos que podem ser removidos, e o tamanho que ser&amp;aacute; economizado em disco.&lt;/p&gt;
&lt;pre&gt;
7.9M    sample/
20M     demo/
19M     src.zip
4.3M    db/demo/
18M     db/docs/
2.1M    db/javadoc/
96K     db/lib/derbyLocale_cs.jar
100K    db/lib/derbyLocale_de_DE.jar
92K     db/lib/derbyLocale_es.jar
100K    db/lib/derbyLocale_fr.jar
96K     db/lib/derbyLocale_hu.jar
92K     db/lib/derbyLocale_it.jar
108K    db/lib/derbyLocale_ja_JP.jar
104K    db/lib/derbyLocale_ko_KR.jar
96K     db/lib/derbyLocale_pl.jar
92K     db/lib/derbyLocale_pt_BR.jar
120K    db/lib/derbyLocale_ru.jar
96K     db/lib/derbyLocale_zh_CN.jar
96K     db/lib/derbyLocale_zh_TW.jar
23M     lib/visualvm/
&lt;strong&gt;94M     total&lt;/strong&gt;
&lt;/pre&gt;
&lt;p&gt;Uma economia de 94 MB&lt;/p&gt;
&lt;p&gt;Estes arquivos n&amp;atilde;o s&amp;atilde;o necess&amp;aacute;rios em ambiente servidor. Com exce&amp;ccedil;&amp;atilde;o de alguns arquivos do visualvm, que possui as bibliotecas nativas para efetuar profiling remoto, mas isso geralmente n&amp;atilde;o &amp;eacute; necess&amp;aacute;rio em ambiente servidor de testes ou produ&amp;ccedil;&amp;atilde;o, ou algu&amp;eacute;m faz prifiling em produ&amp;ccedil;&amp;atilde;o ?&lt;/p&gt;
&lt;p&gt;No caso dos arquivos de i18n do &lt;tt&gt;derby&lt;/tt&gt;, prefiro usar os termos em ingl&amp;ecirc;s, pois acho conveniente que os termos t&amp;eacute;cnicos sejam em ingl&amp;ecirc;s (&lt;a href=&quot;http://www.claudius.com.br/blog/claudio/2008/04/19/Tradu%C3%A7%C3%A3o-de-aplica%C3%A7%C3%B5es&quot;&gt;meu ponto de vista sobre o caso&lt;/a&gt;).&lt;/p&gt;</description>
            <guid>http://www.claudius.com.br/blog/claudio/2009/03/06/Como-reduzir-espaço-em-disco-do-JDK-em-ambiente-servidor</guid>
			<pubDate>Fri, 6 Mar 2009 01:22:02 -0300</pubDate>
            <category>/Java/</category>
                                        <wfw:comment>http://www.claudius.com.br/commentapi/claudio/Java/2009/03/06/Como-reduzir-espaço-em-disco-do-JDK-em-ambiente-servidor</wfw:comment>
            <wfw:commentRss>http://www.claudius.com.br/blog/claudio/2009/03/06/Como-reduzir-espaço-em-disco-do-JDK-em-ambiente-servidor?page=comments&amp;flavor=rss2</wfw:commentRss>
                                </item>
                        <item>
            <title>Geração de heap dump no linux 64 bits</title>
            <link>http://www.claudius.com.br/blog/claudio/2008/10/02/Geração-de-heap-dump-no-linux-64-bits</link>
            <description>&lt;p&gt;Estou em um trabalho para um cliente envolvendo melhorias de performance na aplicação e no ambiente operacional (appserver, sistema operacional, jvm).&lt;/p&gt; 
  &lt;p&gt;O ambiente é Linux 64 bits (RedHat, kernel 2.6.18 SMP), JDK 5 e Glassfish v2 ur2.&lt;br /&gt;&lt;/p&gt; 
  &lt;p&gt;Em um dado momento, precisei gerar um heap dump, mas ocorreu um erro&amp;nbsp; &lt;font face=&quot;monospace&quot;&gt;sun.jvm.hotspot.debugger.UnmappedAddressException&lt;/font&gt;. &lt;/p&gt; 
  &lt;pre&gt;# /usr/local/jdk/jdk1.6.0_07/bin/jmap -J-d64 -F -dump:file=java_dump_10791.hprof  10791
Attaching to process ID 10791, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 10.0-b23
Dumping heap to java_dump_10791.hprof ...
Exception in thread &quot;main&quot; java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at sun.tools.jmap.JMap.runTool(JMap.java:178)
        at sun.tools.jmap.JMap.main(JMap.java:110)
Caused by: sun.jvm.hotspot.debugger.UnmappedAddressException
        at sun.jvm.hotspot.debugger.PageCache.checkPage(PageCache.java:208)
        at sun.jvm.hotspot.debugger.PageCache.getData(PageCache.java:63)
        at sun.jvm.hotspot.debugger.DebuggerBase.readBytes(DebuggerBase.java:205)
        at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal.readCInteger(LinuxDebuggerLocal.java:471)
        at sun.jvm.hotspot.debugger.DebuggerBase.readAddressValue(DebuggerBase.java:442)
        at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal.readOopHandle(LinuxDebuggerLocal.java:431)
        at sun.jvm.hotspot.debugger.linux.LinuxAddress.getOopHandleAt(LinuxAddress.java:115)
        at sun.jvm.hotspot.oops.Oop.getKlassForOopHandle(Oop.java:222)
        at sun.jvm.hotspot.oops.ObjectHeap.newOop(ObjectHeap.java:348)
        at sun.jvm.hotspot.utilities.HashtableEntry.literal(HashtableEntry.java:53)
        at sun.jvm.hotspot.memory.SymbolTable.symbolsDo(SymbolTable.java:106)
        at sun.jvm.hotspot.utilities.HeapHprofBinWriter.writeSymbols(HeapHprofBinWriter.java:830)
        at sun.jvm.hotspot.utilities.HeapHprofBinWriter.write(HeapHprofBinWriter.java:396)
        at sun.jvm.hotspot.tools.HeapDumper.run(HeapDumper.java:56)
        at sun.jvm.hotspot.tools.Tool.start(Tool.java:221)
        at sun.jvm.hotspot.tools.HeapDumper.main(HeapDumper.java:77)

&lt;/pre&gt; 
  &lt;p&gt;Tentei gerar o dump através de:&lt;/p&gt; 
  &lt;ul&gt; 
    &lt;li&gt;-XX:+HeapDumpOnCtrlBreak and kill -3&lt;br /&gt;&lt;/li&gt; 
    &lt;li&gt;jmap -heap:format=b&lt;/li&gt; 
    &lt;li&gt;gcore utility&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;Com isso decidi usar o JDK 6 u7 (&lt;a href=&quot;http://dlc-cdn-rd.sun.com/c1/jdk6/6u10/promoted/b32/changes/JDK6u10.list.html?e=1222914889&amp;amp;h=690498eeec8731f49945b4c6b8ddcbd7&quot;&gt;changelog&lt;/a&gt;), mas ocorreu o mesmo problema.&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: A stacktrace mostrada acima, mostra a invocação de um comando jmap do JDK 6 u7, para uma VM 6 u7.&lt;br /&gt; &lt;strong&gt;UPDATE&lt;/strong&gt;: Anteriormente, quando estava com JDK 5 u12, tentei rodar o jmap a partir de uma VM 5 u12, mas o mesmo erro ocorreu&lt;br /&gt; &lt;strong&gt;UPDATE&lt;/strong&gt;: A VM não está com a opção &lt;font face=&quot;courier new,courier,monospace&quot;&gt;-Xrs&lt;/font&gt; option.&lt;br /&gt; &lt;strong&gt;UPDATE&lt;/strong&gt;: O usuário que iniciou o processo é o mesmo que usei para invocar o comando jmap, root.&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: &lt;a href=&quot;http://blogs.sun.com/alanb/&quot;&gt;Alan Bateman&lt;/a&gt;, explicou sobre o uso da opção -F &amp;quot;&lt;em&gt;&lt;strong&gt;A opção -F faz como que a ferramenta se conecte no processo de uma maneira não colaborativa e pode causa a geração de um dump inconsistente. Em outras palavras, não há garantia de que será um bom heap dump ao usar a opção -F&lt;/strong&gt;&lt;/em&gt;&amp;quot;, veja este comentário em inglês na seção de comentários abaixo. &lt;br /&gt;&lt;/p&gt; 
  &lt;p&gt;Então encontrei um bug corrigido &lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6480383&quot;&gt;&amp;quot;&lt;font&gt;Throws UnmappedAddressException while reading address from core file in shared area.&lt;/font&gt;&amp;quot;&lt;/a&gt;, entao decidi usar o &lt;a href=&quot;http://java.sun.com/javase/downloads/ea.jsp&quot;&gt;JDK 6 u10 RC&lt;/a&gt;.&lt;/p&gt; 
  &lt;p&gt;Coloquei a opção &lt;font face=&quot;monospace&quot;&gt;-Xshare:off&lt;/font&gt;&lt;/p&gt; 
  &lt;p&gt;E funcionou muito bem,o processo não foi derrubado e a aplicação funcionou normalmente.&lt;/p&gt; 
  &lt;p&gt;Não esqueça que no momento do heap a JVM paralisa todas as threads e o arquivo gerado será tão grande (ou um pouco menor) como a memória RSS usada pelo processo.&lt;/p&gt; 
  &lt;p&gt;Então, se for gerar heap dump em linux 64 bits, use o JDK 6 u10 RC com a opção &lt;font face=&quot;monospace&quot;&gt;-Xshare:off.&lt;/font&gt;&lt;/p&gt; 
  &lt;p&gt;&lt;font face=&quot;monospace&quot;&gt;&lt;/font&gt;Ao final da geração do heap dump, as mensagens abaixo foram impressas&lt;/p&gt; 
  &lt;p&gt;&amp;quot;&lt;font face=&quot;monospace&quot;&gt;Finding object size using Printezis bits and skipping over...&lt;/font&gt;&amp;quot;&lt;/p&gt; 
  &lt;p&gt;Obrigado &lt;a href=&quot;http://blogs.sun.com/tony/&quot;&gt;Tony&lt;/a&gt;, pelo seu trabalho no HotSpot.&lt;br /&gt;&lt;/p&gt;</description>
            <guid>http://www.claudius.com.br/blog/claudio/2008/10/02/Geração-de-heap-dump-no-linux-64-bits</guid>
			<pubDate>Thu, 2 Oct 2008 01:28:59 -0300</pubDate>
            <category>/Java/</category>
                                        <wfw:comment>http://www.claudius.com.br/commentapi/claudio/Java/2008/10/02/Geração-de-heap-dump-no-linux-64-bits</wfw:comment>
            <wfw:commentRss>http://www.claudius.com.br/blog/claudio/2008/10/02/Geração-de-heap-dump-no-linux-64-bits?page=comments&amp;flavor=rss2</wfw:commentRss>
                                </item>
                        <item>
            <title>Ferramentas de diagnóstico em performance na prática</title>
            <link>http://www.claudius.com.br/blog/claudio/2008/09/09/Ferramentas-de-diagnóstico-em-performance-na-prática</link>
            <description>&lt;img align=&quot;right&quot;  src=&quot;/resources/claudio/080909_executivethree.jpg&quot; alt=&quot;3&quot; border=&quot;0&quot; hspace=&quot;80&quot;/&gt;

&lt;p&gt;Tenho efetuado a palestra sobre diagnóstico em problemas de performance, desde 2006 em diversos eventos.&lt;/p&gt; 
  &lt;p&gt;Pelo feedback que recebo, percebo que este é um assunto de interesse para um numeroso grupo de profissionais.&lt;/p&gt; 
  &lt;p&gt;Então, é por isso que você que é interessado em entender mais sobre performance, garbage collector, thread pools, thread dumps e memory dumps, deve comparecer no próximo dia 12 (sexta-feira) as 9h no Senac, onde ocorre o JustJava. Pois irei realizar um workshop na prática sobre este assunto. &lt;/p&gt; 
  &lt;p&gt;O nome é &amp;quot;&lt;a href=&quot;http://www.soujava.org.br/display/v/Grade+de+Palestras&quot; linktext=&quot;Diagnóstico e Resolução de Problemas de Performance em Java|Resumos#9010&quot; linktype=&quot;raw&quot;&gt;Diagnóstico e Resolução de Problemas de Performance em Java&lt;/a&gt;&amp;quot;, é requerido trazer o laptop para máximo aproveitamento.&lt;/p&gt; 
  &lt;p&gt;O workshop (hands-on lab), será um misto de palestra com exercícios sobre o tema. Será seguido (tentativa) o seguinte roteiro:&lt;br /&gt;&lt;/p&gt; 
  &lt;ul&gt; 
    &lt;li&gt;Explicação sobre um tópico&lt;/li&gt; 
    &lt;li&gt;Demonstração&lt;/li&gt; 
    &lt;li&gt;Fazer com que os atendentes resolvem um exercício&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;Os tópicos serão&lt;/p&gt; 
  &lt;ul&gt; 
    &lt;li&gt;Gerenciamento de memória do Java&lt;br /&gt;&lt;/li&gt; 
    &lt;li&gt;Ferramentas para diagnóstico&lt;/li&gt; 
    &lt;li&gt;Thread Dumps&lt;/li&gt; 
    &lt;li&gt;Memory Dumps&lt;/li&gt; 
    &lt;li&gt;Ferramentas para profiling&lt;br /&gt;&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;Para um máximo rendimento para o atendente, é necessário seguir alguns pontos:&lt;br /&gt;&lt;/p&gt; 
  &lt;ul&gt; 
    &lt;li&gt;Usar sistema operacional Linux (pode ser em uma VM)&lt;/li&gt;
    &lt;li&gt;Ter interface wireless funcionando&lt;br /&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;strong&gt;Trazer instalado e funcionando&lt;/strong&gt; os seguintes sistemas&lt;/li&gt; 
    &lt;ul&gt; 
      &lt;li&gt;&lt;a href=&quot;http://java.sun.com/javase/downloads/index.jsp&quot;&gt;Sun JDK 6 Update 10 RC&lt;/a&gt; (invoque o bin/jvisualvm e instale todos os plugins)&lt;br /&gt;&lt;/li&gt; 
      &lt;li&gt;&lt;a href=&quot;http://download.netbeans.org/netbeans/6.1/final/&quot;&gt;NetBeans 6.1&lt;br /&gt;&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt;&lt;a href=&quot;https://glassfish.dev.java.net/downloads/v2ur2-b04.html&quot;&gt;Glassfish v2 ur 2&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt;&lt;a href=&quot;http://www.alphaworks.ibm.com/tech/heapanalyzer&quot;&gt;IBM Heap Analyzer&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt;&lt;a href=&quot;http://www.alphaworks.ibm.com/tech/jca&quot;&gt;IBM Thread Dump Analyzer&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt;&lt;a href=&quot;https://tda.dev.java.net/#download&quot;&gt;Thread Dump Analyzer&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt;&lt;a href=&quot;http://jakarta.apache.org/site/downloads/downloads_jmeter.cgi&quot;&gt;Apache JMeter&lt;/a&gt;&lt;/li&gt; 
      &lt;li&gt;&lt;br /&gt;&lt;/li&gt;  
    &lt;/ul&gt;
  &lt;/ul&gt;Configurem as variáveis JAVA_HOME e PATH=$JAVA_HOME/bin&lt;br /&gt;&lt;br /&gt;
  &lt;p&gt;O uso do Linux não é obrigatório, mas &lt;strong&gt;facilita muito&lt;/strong&gt;, e irei basear meus exemplos nele.&lt;br /&gt;&lt;/p&gt; 
  &lt;p&gt;Note, que o tempo do workshop não será prejudicado, por aqueles que não possuem os sistemas instalados. Pois o tempo é curto para muito conteúdo de não fácil absorção.&lt;/p&gt;
  &lt;p&gt;Não posso esperar pela próxima sexta, para divertir com thread dumps, pools estourando e memória escorrendo pelos buracos do laptop.&lt;br /&gt;&lt;/p&gt;</description>
            <guid>http://www.claudius.com.br/blog/claudio/2008/09/09/Ferramentas-de-diagnóstico-em-performance-na-prática</guid>
			<pubDate>Tue, 9 Sep 2008 02:57:58 -0300</pubDate>
            <category>/Java/</category>
                                        <wfw:comment>http://www.claudius.com.br/commentapi/claudio/Java/2008/09/09/Ferramentas-de-diagnóstico-em-performance-na-prática</wfw:comment>
            <wfw:commentRss>http://www.claudius.com.br/blog/claudio/2008/09/09/Ferramentas-de-diagnóstico-em-performance-na-prática?page=comments&amp;flavor=rss2</wfw:commentRss>
                                </item>
            </channel>
</rss>
