Vazamento de memória JAXBContext.newInstance
Após uma implantação recente no teste do sistema, um de nossos servlets foi atingido com muito mais força do que o normal e notamos que a memória começou a subir e o weblogic acabaria morrendo. Meu estagiário, fiquei muito orgulhoso, descobriu a fonte do vazamento de memória.
Sempre que uma solicitação chega, essa linha é chamada:
JAXBContext jc = JAXBContext.newInstance(“ruby.oracle_servlet.schemas”);
Por alguma razão, o objeto nunca recebe lixo coletado. Depois de torná-lo estático e mudar para onde o inicializamos, nosso vazamento de memória desapareceu.
Outro de nossos desenvolvedores colocou essa linha em um loop while em um aplicativo java independente e também viu a memória subir e subir.
Alguém tem alguma idéia de por que esse objeto não coleta lixo?
obrigado