Categorias
Java Java EE Programação

Obtenção de grande volume de dados em Jobs

Sempre que é feito um job,uma das preocupações do lado da aplicação é em como não levar todos os registros necessários para a memória. Existem algumas maneiras para se fazer isso, sendo que as duas mais comuns que vejo são queries limitadas e queries paginadas. Além dessas duas formas existe uma terceira que é limitando […]

Categorias
Banco de dados Java Java EE Oracle Programação

High CPU causado pelo método copyRowsAsNeeded do driver do Oracle

Algum tempo atrás me deparei com uma situação onde uma aplicação começava a utilizar muita CPU, o load da máquina física subia demais e o tempo de resposta da aplicação acabava piorando junto com o uso de cpu / load da máquina. Para identificar o que estava causando, colocamos um script na máquina física que […]

Categorias
Banco de dados Java Java EE Programação

Resolvendo “enq: TX – allocate ITL entry” com uma abordagem alternativa

Um dos problemas vistos num banco Oracle com muitos DML’s concorrentes é o evento de espera “enq: TX – allocate ITL entry”. O problema com esse evento é que as sessões fazendo os comandos de alteração nos registros demoram para executar, causando mais espera na aplicação. Existem alguns jeitos de resolver esse evento de espera, […]

Categorias
Banco de dados Java Java EE Programação

Chamadas remotas em contexto transacional de banco de dados

Um dos problemas que vejo acontecendo em diversos sistemas de produção é o pool de conexões com o banco de dados esgotar, através da exception abaixo: Geralmente, a primeira solução proposta é aumentar o pool de conexões. Só que após algum tempo o problema volta a ocorrer novamente. Olhando à partir do banco de dados […]

Categorias
Java EE

Freemarker + Sitemesh + Spring

Depois de muito tempo consegui fazer minha aplicação utilizando Freemarker (template engine) + Sitemesh (web page layout framework) + Spring (IOC, etc) funcionar. Basicamente, basta configurar no web.xml o filtro do Sitemesh (com.opensymphony.sitemesh.webapp.SiteMeshFilter), a servlet do Freemarker que vem com o Sitemesh (com.opensymphony.module.sitemesh.freemarker.FreemarkerDecoratorServlet) e a servlet do Spring MVC (org.springframework.web.servlet.DispatcherServlet). O filtro do Sitemesh é […]

Categorias
Java Programação

PDB Extractor

Ainda em relação ao post anterior, tive que extrair o conteúdo de um arquivo PDB (um formato de arquivo usado nos Palm’s). Encontrei a solução parcial neste post:http://www.neowin.net/forum/index.php?s=d21af43a292e783de98d0644c0824b70&showtopic=689476&pid=590047756&st=0&#entry590047756 A solução descrita não funcionou, mas após algumas alterações na solução, serviu para o que eu precisava: /*** * T3_allfiles * based upon T3_APR.java from Shadowmite’s forum […]

Categorias
Java Programação

Descompilando Java

Há algum tempo atrás, peguei um serviço pra fazer no qual o cliente não tinha o código fonte do sistema. Após alguns dias procurando um descompilador java, achei este: JD-Gui Este descompilador é muito bom, devido à diversas features, como por exemplo, poder descompilar um jar inteiro, fazer links entre os arquivos descompilados, etc.

Categorias
Java Programação Selenium

Selenium – Permission denied to get property Location.href

Hoje tive um problema no Selenium, no qual o mesmo não conseguia verificar a url do navegador, jogando uma exceção com a seguinte mensagem: Permission denied to get property Location.href Procurando no google, encontrei o seguinte blog: http://www.woloszyn.org/2008/04/22/selenium-and-the-permission-denied-to-get-property-locationhref-problem/ Este blog mencionava que o problema era causado por um redirect enviado pelo response do servidor. A […]

Categorias
Java Programação

Spring gerenciando as transações

Após duas longas semanas resolvi o problema que estava tendo com o Spring gerenciando as transações de banco de dados. O que acontecia é que nenhuma transação era aberta na classe marcada com a anotação “@Transactional”. Segue abaixo um exemplo de como utilizar o gerenciamento de transações do Spring: package br.com.test; public interface IService { […]

Categorias
Java EE Programação

PostBack no JSF

Um grande problema com o JSF é que na especificação 1.1 não existe algum método para saber se a página está sendo executada no postback (quando você reenvia os dados para ela mesma). Mas existe o seguinte workaround: package web.jsf.vh; import java.io.IOException; import java.util.Locale; import java.util.Map; import javax.faces.FacesException; import javax.faces.application.ViewHandler; import javax.faces.component.UIViewRoot; import javax.faces.context.FacesContext; public […]