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