C3P0 com Pentaho
Jonas Abreu em 19/08/2013Mais 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 pastabiserver-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 arquivopentaho-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.