[Kettle] - Ajuste de problema com horário de verão
Me deparei hoje com um problema de divergência de horário nos campos de data no Kettle, para datas que se encaixam no período do horário de verão, principalmente no dia 20/10/2013.
Olha só abaixo...
Tentei resolver forçando com a função trunc() do Oracle o campo de data, porém mesmo assim, o driver jdbc insiste em trazer o campo com o horário 01:00:00 ao invés de 00:00:00.
Pesquisando um pouco na internet encontrei no fórum pentahobr alguém que teve o mesmo problema, aqui neste link...
A solução proposta ali, após muita discussão, foi acrescentar nos parâmetros de incialização do Kettle a seguinte instrução: "-Duser.timezone=GMT-3"
Fiz isso, um tanto descrente, mas realmente funcionou. Acrescentei esta instrução nos arquivos spoon.bat, kitchen.bat, pan.bat e carte.bat. Imediatamente abaixo da declaração da variável OPT redeclarei acrescentando esta instrução.
Ficou assim:
set OPT="%PENTAHO_DI_JAVA_OPTIONS% "-Djava.library.path=%LIBSPATH%" "-DKETTLE_HOME=%KETTLE_HOME%" ...
set OPT=%OPT% "-Duser.timezone=GMT-3"
Redefini a variável OPT com ela mesma mais a instrução do timezone, pois esta linha já estava bastante extensa. Mas claro, não haveria problema em apenas acrescentar esta instrução do timezone no final da primeira declaração da OPT.
Depois disso reiniciei o Kettle testando novamente e as datas ficaram com horário zerado, como esperado.
Abaixo uma cópia de tela para contextualizar melhor...
Aqui novamente o resultado da consulta após o ajuste. Repare que a hora agora aparece correta:
Comentários
Pra mim aqui, só alterando o spoon.bat já deu certo!
Valeu demais pela dica!!!
Abraços!
Show!
Vi vários posts falando pra apenas voltar a versão do conector, porém não era uma opção pra mim, pois um dos bancos de dados não funcionava também com conector antigo.
Isso aí resolveu pra mim.
Este post é de 2013, mas sempre tem ajudado nesses períodos.
Obrigado pelos comentários!
No meu Dockerfile haviam os seguintes comandos:
ENV JAVA_HOME /usr/lib/jvm/java-1.8-openjdk
ENV PENTAHO_JAVA_HOME $JAVA_HOME
ENV TIMEZONE "America/Sao_Paulo"
ENV SKIP_WEBKITGTK_CHECK true
USER root
RUN echo $TIMEZONE >/etc/timezone
O que fiz foi acessar o bash do Docker e mudar o /etc/timezone para GMT-3 e resolveu.
fui na pasta onde esta o arquivo start-pentaho.sh (geralmente fica na raiz do pentaho-server), abri o mesmo e dentro do arquivo vai ter uma variavel chamada "CATALINA_OPTS" provavelmente vai estar algo em torno disto:
CATALINA_OPTS="-Xms2048m -Xmx5120m -XX:MaxPermSize=256m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dfile.encoding=utf8 -DDI_HOME=\"$DI_HOME\""
é só adicionar o foi recomendado no post no final da declaração da variavel, no meu caso ficou assim:
CATALINA_OPTS="-Xms2048m -Xmx5120m -XX:MaxPermSize=256m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dfile.encoding=utf8 -DDI_HOME=\"$DI_HOME\" -Duser.timezone=GMT-3"
salvar e reiniciar o pentaho-server ( eu reiniciei o servidor Linux, mas fica a sua escolha) e voilá já fica com o horário correto e sem horário de verão.
espero ter ajudar e Muitissimo obrigado ao dono do post por ajudar com o comando!