Múltiplas instâncias do Pentaho (BI) em base dados hsql no mesmo computador

Publicado por Natália Vaz Silva em 20/09/2011

[ Hits: 9.544 ]

Blog: http://linuxnatyworking.wordpress.com

 


Múltiplas instâncias do Pentaho (BI) em base dados hsql no mesmo computador



Pode parecer algo muito simples, mas já vi em muitos lugares o uso de várias máquinas para o software em questão e a justificativa de não ser possível executar mais de uma instância ao mesmo tempo.

Me deparei com este problema recentemente, depois de muita busca no nosso amigo Google e consulta a pessoas que trabalham com as ferramentas, consegui solucionar este 'problemão', que não passa de conflito de portas entre o Tomcat e o hsql, utilizados pelo Pentaho.

Como tive dificuldade em encontrar informações específicas sobre este problema na rede, resolvi compartilhar a solução, espero que seja útil! ;)

Configuração das aplicações

Como a incompatibilidade é gerada pelas uso das mesmas portas, a solução encontrada foi alterar todas as portas comuns aos serviços.

Obs.: Na alteração das portas do Tomcat, adotamos o padrão de adicionar uma unidade a cada centena da porta. Por exemplo, a porta padrão do Tomcat 8080 é alterada para 8180.

Padrão de portas:

Tomcat:
  • Server port: 8005
  • Connector port (HTTP): 8080
  • Redirector port: 8443
  • Connector port (AJP): 8009

HSQL: 9001

Nos exemplos a tag <home_app> indica o caminho de instalação da aplicação.

Bom, vamos ao trabalho:

1. Alterar no arquivo <home_app>\biserver-ce\tomcat\conf\server.xml, as portas:

<Server port="<b>8105</b>" shutdown="SHUTDOWN">

<Connector port="<b>8180</b>" maxHttpHeaderSize="8292"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="<b>8543</b>" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" />

<Connector port="8109"
               enableLookups="false" redirectPort="<b>8543</b>" protocol="AJP/1.3" />

2. No arquivo <home_app>\biserver-ce\tomcat\conf\server-minimal.xml configurar as portas seguintes de acordo com as alterações feitas no Tomcat.

<Connector port="8180" />
<Connector port="8109" protocol="AJP/1.3" />

3. No arquivo <home_app>\biserver-ce\tomcat\webapps\pentaho\WEB- INF\web.xml, adicionar a porta do Tomcat ao parâmetro:

<param-value>http://localhost:8180/pentaho/</param-value>

Obs.: A porta informada deve ser a mesma configurada anteriormente no Tomcat.

4. Criar o arquivo <home_app>\biserver-ce\data\servers.properties com o seguinte conteúdo:

server.port=9998
server.database.0=file:<home_app>/biserver-ce/data/hsqldb
server.dbname.0=sampledata

server.database.1=file:<home_app>/biserver-ce/data/hsqldb
server.dbname.1=hibernate

server.database.2=file:<home_app>/biserver-ce/data/hsqldb
server.dbname.2=quartz

Obs.: Este arquivo precisa ser criado em todas as instâncias do Pentaho configuradas na máquina, inclusive na instância que utiliza as portas padrão. O parâmetro <i>server.port</i> determina a porta usada pelo HSQL.

5. No arquivo <home_app>\biserver-ce\data\stop_hypersonic.bat adicionar a porta do HSQL, configurada no servers.properties, na linha:

"%_PENTAHO_JAVA%" -cp %tempclasspath% org.hsqldb.util.ShutdownServer -url "jdbc:hsqldb:hsql://localhost:9998/%1" -user "SA" -password ""

6. No arquivo <home_app>\biserver-ce\pentaho-solutions\system\hibernate\hibernate- settings.xml altere o parâmetro config-file conforme exemplo:

<config-file>system/hibernate/hsql.hibernate.cfg.xml</config-file>

7. No arquivo <home_app>\biserver-ce\pentaho- solutions\system\hibernate\hsql.hibernate.cfg.xml altere as seguintes propriedades:

<property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
<property name="connection.url">jdbc:hsqldb:hsql://localhost:9998/hibernate</property>
<property name="dialect">org.hibernate.dialect.HSQLDialect</property>

8. No arquivo <home_app>\biserver-ce\tomcat\webapps\pentaho\META- INF\context.xml adicionar a porta de conexão do banco nas seguintes urls de conexão:

             Resource Name: jdbc Hibernate
             driverClassName="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:hsql://localhost:9998/hibernate"

             Resource Name: jdbc Quartz
             driverClassName="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:hsql://localhost:9998/quartz

9. Deixar o arquivo <home_app>\biserver-ce\pentaho-solutions\system\applicationContext- spring-security-hibernate.properties com o seguinte conteúdo:

jdbc.driver=org.hsqldb.jdbcDriver
jdbc.url=jdbc:hsqldb:hsql://localhost:9998/hibernate
jdbc.username=hibuser
jdbc.password=password
hibernate.dialect=org.hibernate.dialect.HSQLDialect

10. No arquivo <home_app>\biserver-ce\pentaho-solutions\system\applicationContext-spring- security-jdbc.xml adicionar a porta da base de dados à url de conexão:

<bean id="dataSource"
   class="org.springframework.jdbc.datasource.DriverManagerDataSource">
   <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
   <b> <property name="url" value="jdbc:hsqldb:hsql://localhost:9998/hibernate" /> </b>
   <property name="username" value="hibuser" />
   <property name="password" value="password" />
</bean>

11. No arquivo <home_app>\biserver-ce\pentaho-solutions\system\simple- jndi\jdbc.properties, alterar a porta da base de dados nas seguintes urls de conexão:

SampleData/url=jdbc:hsqldb:hsql://localhost:9998/sampledata
Hibernate/url=jdbc:hsqldb:hsql://localhost:9998/hibernate
Quartz/url=jdbc:hsqldb:hsql://localhost:9998/quartz
Shark/url=jdbc:hsqldb:hsql://localhost:9998/shark
SampleDataAdmin/url=jdbc:hsqldb:hsql://localhost:9998/sampledata

Outras dicas deste autor

Personalizar logos no Zimbra

Redundância na VPN com Mikrotik

Configuração de máquina Linux no domínio Windows (AD)

VPN L2TP com Mikrotik

Squid-Graph no CentOS com controle de acesso por usuários do AD

Leitura recomendada

Modificando arquivos do Windows com live-CD do GNU/Linux

Como documentar seu servidor GNU/Linux

Problemas com seu som?

Compilando o swi-prolog

Projeto Spider - Estendendo o Synfig

  

Comentários
[1] Comentário enviado por lhcd em 20/09/2011 - 18:27h

Ola nati, ja me deparei com este problema, mas a coisa e mais complicada, eu ja havia subido duas instancias mudando as portas, mas o problema é o cache do pentaho, se você tiver ambientes com publicações diferentes ele aceita apenas uma sempre a do ultimo tomcat que foi levantado, fiz vários testes e ainda não consegui dar solução para este problema.

[2] Comentário enviado por nataliavaz em 20/09/2011 - 22:08h

Ei Luiz!!! Então, tivemos esse problema na empresa, a equipe implantou essa solução e não obtiveram problema com as instâncias. São muitas portas pra alterar, as vezes não alterou todas da base de dados.

[3] Comentário enviado por lperozin em 15/12/2011 - 16:18h

O Natália

Muito bom você ter postado esse tutorial, vai ajudar muita gente ai!

Precisei usar o seu tutorial para acertar um servidor e notei que ficou faltando um arquivo a ser configurado, que esta logo abaixo:

pentaho-solutions/system/dialects/hsqldb/applicationContext-spring-security-hibernate.properties

Uma outra coisa é o arquivo que deve ser criado para definir as propriedades do Hsqldb deve ser server.properties e não servers.properties.


Att

L Perozin






Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts