Só se perde ou se ganha quando se realiza
Pentaho BI Server perda de Conexão MySQL
Esse é o meu primeiro artigo mais técnico que posto aqui no blog, também é o primeiro artigo em que trato da ferramenta de BI Pentaho. Não vou me prolongar muito e ficar explicando todos os conceitos e todas as funcionalidades da ferramenta, justamente pelo fato de que muita gente já fez isso e a internet está cheio de informação, inclusive em português. Para saber mais acessem Prof Coruja, já citado em post anterior onde falava do meu trabalho e tudo mais. Reservo-me apenas a descrever situações vividas por mim e que possam auxiliar outras pessoas que por ventura possam ter passado pelos mesmos apuros durante o desenvolvimento e adaptação essas e outras ferramentas que eu venha a utilizar.
Dado a devida introdução, como diz o título, irei falar sobre a lib c3p0. Sim para muitos esse nome é conhecido como nada mais nada menos que aquele andróide do universo de Star Wars que falava milhões de línguas e falava pelos cotovelos. Na verdade ele chama c-3PO, mas é quase igual então prefiro pensar que se inspiraram nele.
Mas enfim, afinal para que serve essa biblioteca. Bom eu também acho que não vou fazer um texto complexo e descritivo do que se trata a biblioteca, eu simplesmente posso dizer em como ela ajudou a solucionar um dos problemas que a nova versão do Pentaho estava causando.
Situação Atual
Após migrar o Pentaho para a nova versão estável 3.5.2 eu optei por fazer toda sua configuração com base no MySQL. Desde os usuários até as configurações estão todas dentro do MySQL e não mais usando a base padrão que acompanha a versão do sistema. Também alterei o arquivo de start para que não mais carregasse essa base de dados padrão do Pentaho.
O Problema
Percebi na manhã do dia seguinte a migração que as analises não estavam carregando. Todo o resto funcionava com exceção as analises e os relatórios, demorei a perceber que o problema era a conexão com o banco de dados que após um período padrão de 8 horas que o sistema ficasse sem uso a conexão com o banco era encerrada, fazendo com que o Tomcat se perdesse e não mais carregasse as analises e os relatórios.
A Solução
Após uma rápida consulta ao Oráculo<google>, obtive algumas respostas, coisas como a criação de scripts que ficassem testando a conexão de tempos em tempos para que ela não mais deixasse de existir, então pensei que isso não seria má idéia a não ser pelo fato que me parecia uma gambiarra e não uma solução. Foi então que encontrei a lib c3p0 que no caso faz à mesma coisa, mas tem um nome bonito e legal e se integra ao Pentaho perfeitamente. =D
Como Funciona
Primeiro faça o download da biblioteca:
http://sourceforge.net/projects/c3p0
Depois descompacte os arquivos em um diretório qualquer, o que importa é o arquivo c3p0-0.9.1.2.jar. Pelo menos nesse caso claro, ele se encontra dentro da pasta lib. Feito isso copie o arquivo para a seguinte pasta:
/biserver-ce/tomcat/webapps/pentaho/WEB-INF/lib
Agora deveram alterar o arquivo mysql5.hibernate.cfg.xml, que se encontro na seguinte pasta:
/biserver-ce/pentaho-solutions/system/hibernate
Após abrir o arquivo você deverá adicionar o código que segue abaixo depois da linha <session-factory> e antes da linha <property name=”cache.provider_class”>org.hibernate.cache.EhCacheProvider</property>.
Código a ser adicionado:
<!– hibernate c3p0 settings –>
<property name=”connection.provider_class”>org.hibernate.connection.C3P0ConnectionProvider</property>
<property name=”hibernate.c3p0.acquire_increment”>3</property>
<property name=”hibernate.c3p0.idle_test_period”>10</property>
<property name=”hibernate.c3p0.min_size”>5</property>
<property name=”hibernate.c3p0.max_size”>75</property>
<property name=”hibernate.c3p0.max_statements”>0</property>
<property name=”hibernate.c3p0.timeout”>25200</property>
<property name=”hibernate.c3p0.preferredTestQuery”>select 1</property>
<property name=”hibernate.c3p0.testConnectionOnCheckout”>true</property>
<!– hibernate cache settings –>
Feito isso reinicie seu BI server e a solução já está funcionando. Pelo que percebi o c3p0 irá testar a conexão JDBC de tempos em tempos para que a mantenha funcionando, tal qual faria o script gambiarra que citei no começo do artigo. Mas assim ficou muito mais bonito de se ver.
Segue o site da biblioteca c3p0, lá você encontrará toda a documentação e todas as coisas fantásticas que possivelmente ela deva fazer. (risos)
http://www.mchange.com/projects/c3p0/index.html
This post has been viewed 4767 times.
| Imprimir artigo | Este artigo foi escrito por Thiago Anunciação em 27/07/2010 às 12:43 pm, e está arquivado em BI, Dicas, Nerd, Pentaho, TI, Tutoriais. Siga quaisquer respostas a este artigo através do RSS 2.0. Você pode deixar uma resposta ou fazer um trackback do seu próprio site. |

há 1 ano atrás
Muito bom, parabéns pela pesquisa.
O post também ficou muito divertido.