Magic xpi/xpa: Ajustando o JAVA para o “Horário de Verão”

 

Vamos falar de verão, mesmo prestes a entrar no inverno.

Veja como configurar corretamente o Java do seu Magic, para o “Horário de Verão” brasileiro.

O Horário de Verão brasileiro vigorou recentemente de 1985 a 2018, e tinha uma lista conhecida de datas pré-definidas do seu início e fim, incluindo anos futuros.

Isso não gerava muitos problemas e era assunto razoavelmente já dominado.

Mas em Abril/2019 ele foi “cancelado”, e isso começou a trazer algumas situações novas, especialmente no nosso amigo “Java“.

Isso porque a JRE/JDK vem com uma lista “fixa” (estática) de controle do “Horários de Verão” de vários países mundo afora.

Se em nosso ambiente Magic (DEV, QA ou PROD), possuímos uma versão do Java liberada (released) antes de Abril/2019, e ela se mantém original (não foi atualizada), então é quase certo que este “Java” não sabe que não há mais horário de versão ativo aqui no Brasil.

Considerando que tanto o Magix xpa quanto o Magic xpi fazem uso em menor ou maior escala destes JDKs/JREs, ter esta tabela de controle desatualizada pode causar tanto transtornos simples, como um “log” com data/hora errada (+1h em relação ao horário real), quanto problemas mais complexos como schedulers ativados fora de horário esperado, ou loops baseados em diferença de tempos com ciclos de conclusão de duração inesperada.

Não dá para prever se haverá problemas, ou qual sua gravidade.

Mas dá para não arriscar.

Por isso, a ORACLE disponibiliza uma ferramenta chamada TZUpdater:

https://www.oracle.com/java/technologies/javase/tzupdater-readme.html

 

Essa ferramenta detecta a sua atual (ativa) versão do Java com base na variável “JAVA_HOME” do SO (ex: Windows), e atualiza esta tabela de horários a partir de uma tabela pré-definida, ou de um site on-line com esta lista atualizada.

Ex:

java -jar tzupdater.jar <options>

 

É normal que no ambiente existam duas pastas distintas, para cada versão do Java instalada: uma pasta para o “JDK” e outra para o “JRE“.

Esta ferramenta deve ser utilizada para cada uma destas “HOMEs”, ajustando a cada vez a variável Windows “JAVA_HOME” para apontar onde deve haver a atualização.

 

Ex:

set JAVA_HOME=C:\Program Files (x86)\Java\jre1.8.0_261
set PATH=%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
java -jar tzupdater.jar -v -l https://www.iana.org/time-zones/repository/tzdata-latest.tar.gz
*Nota: Tecnicamente, "tzupdater.jar" busca a pasta do "java.exe" que o está executando, para saber onde (pastas JDK/JRE) atualizar. Ajustar 'JAVA_HOME" e "PATH" só ajuda a escolher (apontar) o "java.exe" a usar.
Excute este comando sempre como "Administrador" do SO.

 

Veja no exemplo abaixo:

 

Em “amarelo” está impressa a atual versão da tabela de controle em uso, dos horários de verão.

Em “verde“, qual será a nova versão após a atualização.

 

Se por acaso ao final for impressa uma exceção como esta abaixo:

 

Não se assuste. É apenas uma forma (do jeito Java de ser) de dizer que a tabela já está atualizada com a última versão disponível no site (https://www.iana.org/time-zones/repository/tzdata-latest.tar.gz).

 

Você pode baixar esta ferramenta deste link no FTP da Magic, que inclui um “CMD” para facilitar o seu uso (se necessário).

Supondo que seu JDK esteja na pasta “D:\Program Files (x86)\Java\jdk1.8.0_291” e o JRE na pasta “D:\Program Files (x86)\Java\jre8291”, utilize-o assim:

 

  1. Descompacte o conteúdo do ZIP na pasta %TEMP%\TZUpdater
  2. Abre o promtp do DOS como “Administrador
  3. Entre na pasta do utilitário, com o comando: CD /d %TEMP%\TZUpdater
  4. Execute o .CMD 2 vezes, uma para cada pasta do JAVA:
"TZUpdater-2.3.2 (Run as ADMIN).cmd" "D:\Program Files (x86)\Java\jdk1.8.0_291"

e

"TZUpdater-2.3.2 (Run as ADMIN).cmd" "D:\Program Files (x86)\Java\jre8291"

 

Agora você já tem o Java do seu Magic devidamente ajustado, sem ter trocado a versão.

Por fim, feche o prompt do DOS (pq ele alterou o JAVA_HOME e PATH temporariamente).

 

Manoel Frederico Silva – Gerente de Tecnologia e Evangelista MAGIC – Magic Brasil
Manoel Frederico Silva – Evangelista MAGIC – Magic Brasil

 

Para receber os artigos do Blog Magic Brasil em primeira mão no seu email, registre-se aqui

Deixe um comentário

O seu endereço de e-mail não será publicado.