[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

Estava há mais de um dia tentando dar cast, convert, extract pra ano, mês e ano pra depois concatenar, e não estava conseguindo kkk

Pra mim aqui, só alterando o spoon.bat já deu certo!

Valeu demais pela dica!!!
Alexsandro Haag disse…
Que bom Guilherme que a postagem te ajudou.
Abraços!
Guaraci Falcao disse…
Cara, salvou a pátria!!!

Show!
Wendel Moreira disse…
Depois de horas procurando a solução do meu problema, achei esse post salvador!
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.
Alexsandro Haag disse…
Que bom Wendel!
Este post é de 2013, mas sempre tem ajudado nesses períodos.

Obrigado pelos comentários!
Guilherme Eccher disse…
Pessoal, parei aqui com o mesmo problema, mas rodando o Pentaho num servidor.

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.
tecopina disse…
Grl, se vocês estão procurando uma solução para o pentaho-server versão 9.2 ou superior rodando no Linux (Oracle Linux 9 e Ubuntu server 20.04 LTS), segue o que eu fiz e resolveu o problema....


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!

Postagens mais visitadas deste blog

[Openfire] - Ajuste de horário no cliente Spark

Verificar uso de disco em partição ASM do Oracle 11g no Linux

[Kettle] - Ajuste de Memória de Utilização