Linux, Open-source, Programação e Produtividade

C3P0 com Pentaho

Jonas Abreu em 19/08/2013

Mais um problema bobo que acho que já deveria vir resolvido.

Você prepara o BI Server, testa, vê que está tudo funcionando. Vai dormir e no dia seguinte vê que ele não consegue se conectar com o banco de dados. Ele simplesmente te dá uma mensagem simples e esclarecedora:

java.net.SocketException: Broken pipe 

Se você usa hibernate faz algum tempo, já sabe exatamente o que é isso. Você esqueceu de configurar um connection pool decente nele (aparentemente eles preferem um connection pool que para de funcionar do que um que sempre cria uma conexão nova. Vai entender...).

Para resolver esse problema, você pode simplesmente fazer o seu BI Server usar o C3P0, que é um ótimo connection pool.

Para quem não quer clicar no link acima ou prefere em português (as versões podem ter mudado quando você ler este post):

  • Baixe o C3P0 (c3p0-0.9.2.1.bin.zip)
  • Descompacte ele
  • Copie o arquivo c3p0-0.9.2.1.jar para a pasta biserver-ce/tomcat/lib do seu BI Server
  • Copie o arquivo mchange-commons-java-0.2.3.4.jar para a mesma pasta do seu BI Server
  • Cole o seguinte trecho de xml no seu arquivo pentaho-solutions/system/hibernate/mysql5.hibernate.cfg.xml (se você usa outro banco de dados é só colar no arquivo equivalente), logo após a tag <session-factory> org.hibernate.connection.C3P0ConnectionProvider 3 10 5 75 0 25200 select 1 true
  • Reinicie o BI Server
  • Se pergunte porque isso não veio feito por padrão.
Creative Commons License
C3P0 com Pentaho de Jonas Abreu está licenciado sob Creative Commons License.