Inicializar o HSQLDB independentemente do Pentaho BA
Autor: cjrocha | Publicado: 2014-11-01T08:00:00-02:00


Hoje vamos demandar uma dica simples. Quando fazemos a opção pela mudança do banco de metadados do Pentaho BA, independendo do Sistema Gerenciador de Banco de Dados (SGBD) escolhido para a substituição, perdemos de certa forma, o acesso ao Data Wherehouse (DW) de teste, o "SampleData", que acompanha a solução.

Por que isso ocorre? O Hypersonic SQL Database (HSQLDB) é o SGBD que dá suporte aos bancos "hibernate", "quartz" e "SampleData". Logo, quando os bancos de metadados são desabilitados, conforme sugerido na documentação da Pentaho, o "SampleData" fica indisponível.



Para a solução deste problema, as opções são, popular um novo banco "SampleData" no SGBD adotado, utilizando dumps/SQL encontrados na internet, ou de forma rápida e eficiente, inicializar de forma independente o HSQLDB, conforme mostrarei neste post.

1 - Configurando o HSQLDB
Criar uma pasta "hsqldb".
~# mkdir /opt/hsqldb
~# cd ./biserver-ce/data/
~# cp -rv ./*.bat ./*.sh ./hsqldb ./lib /opt/hsqldb

Configurar o script de inicialização
Editar o script "start_hypersonic.sh" e comentar apenas os comandos correspondentes à inicialização dos bancos do hibernate e do quartz, que não serão mais utilizados.
"$_PENTAHO_JAVA" -cp $THE_CLASSPATH org.hsqldb.Server -database.0 $DIR_REL/hsqldb/sampledata -dbname.0 sampledata
# -database.1 $DIR_REL/hsqldb/hibernate -dbname.1 hibernate -database.2 $DIR_REL/hsqldb/quartz -dbname.2 quartz 

Configurar o script de finalização
Editar
 o script "stop_hypersonic.sh" e comentar apenas os comandos 
correspondentes à finalização dos bancos do hibernate e do quartz.
"$_PENTAHO_JAVA" -cp $THE_CLASSPATH org.hsqldb.util.ShutdownServer -url "jdbc:hsqldb:hsql://localhost/sampledata" -user "SA" -password ""# "$_PENTAHO_JAVA" -cp $THE_CLASSPATH org.hsqldb.util.ShutdownServer -url "jdbc:hsqldb:hsql://localhost/hibernate" -user "SA" -password ""# "$_PENTAHO_JAVA" -cp $THE_CLASSPATH org.hsqldb.util.ShutdownServer -url "jdbc:hsqldb:hsql://localhost/quartz" -user "sa" -password "" 

2 - Inicializando ou parando o serviço hsqldb
Inicializando o HSQLDB
~# cd /opt/hsqldb
~# ./start_hypersonic.sh &amp;

Para ver se o SGBD foi inicializado, execute o comando "netstat", coforme citado abaixo.
A porta utilizada pelo HSQLDB é 9001, default para o serviço.
~# netstat -nap | grep 901
tcp6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 :::9001&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :::*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OUÇA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -


Parando o HSQLDB
~# cd /opt/hsqldb
~# ./stop_hypersonic.sh &amp;

3 - Configuração do Sampledata no HSQLDB
No Pentaho BA, crie uma nova "Conexão de Fonte de dados", com as informações a seguir e realize o teste de conexão:
- Connection Name: SampleData
- Database Type: Hypersonic
- Host Name: localhost
- Database Name: SampleData
- Port Number:9001
- User Name: pentaho_user
- Password: [Deixar sem preencher]&nbsp;
Faça o teste de conexão. 
Finalizado, o SampleData já pode ser utilizado.