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.545 ]

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

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

VPN L2TP com Mikrotik

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

Leitura recomendada

Windows Vista x Samba

Como descobrir qual distribuição Linux que está instalada

Como executar automaticamente scripts na inicialização do SystemD Linux

Catálogo de Apps Educativos para Linux

Montagem automática de compartilhamentos Windows no Linux

  

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