Árvore de páginas

 Manual de Instalação - CCT Server ( Java 17 e Wildfly)

Produto:

PIMS Cana

Versões:


Ocorrência:

Manual de instalação do CCT Server para o servidor Wildfly 28.0.0.Final

Ambiente:

PIMS Cana

Passo a passo:

1. Objetivo

A partir da versão 12.1.2412 do aplicativo Pesagem Offline (SPA_OFF), houve sua modernização para o Java 17 e servidor de aplicação Wildfly.

Este manual tem como objetivo fornecer os passos necessários para instalação e configuração do aplicativo CCTServer. As instruções apresentadas contemplarão desde a instalação dos softwares necessários, como o SDK Java na versão 17 e Servidor de Aplicações Wildfly 28.0.0.Final, bem como a implantação da aplicação nestes ambientes em plataforma Windows.


2.          JDK

a.      Instalação

O aplicativo CCTServer foi modernizado para o Java 17 da OpenJDK, podendo ser baixado neste link https://jdk.java.net/archive/ a versão 17.0.2 (build 17.0.2+8) para Windows 64-bit.

Crie o diretório C:\totvs\jdk para receber o arquivo compactado da JDK e descompacte a pasta. Será descompacta a pasta jdk-17.0.2:


b.      Variáveis de Ambiente

Defina as variáveis de ambiente abaixo como sendo do sistema:

         JAVA_HOME=C:\totvs\jdk

         Path = %JAVA_HOME%\bin


c.      Teste da instalação

Teste a configuração do Java acessando o Prompt de Comando do Windows digitando o comando java –version, podendo ser visualizado as informações da versão instalada. Para fins de exemplo, está sendo demonstrado o Java 17.0.12.


d.      Problemas na instalação

Caso ocorra algum problema na instalação e configuração, consulte os manuais da própria OpenJDK para a resolução e em segundo nível o suporte da TOTVS.


3.  Instalação do Servidor de Aplicações Wildfly 28.0.0.Final

Como resultado da modernização, foi homologado o servidor de aplicações Wildfly 28.0.0.Final para a execução do CCTServer.

O WildFly 28.0.0.Final oferece várias melhorias de desempenho. Sua arquitetura modular permite inicialização mais rápida e menor uso de memória contando com atualizações de segurança mais modernas e ferramentas avançadas de gerenciamento e um sistema de mensageria mais eficiente.

Apesar de estar gratuitamente disponível para download no site do fornecedor, a obtenção do instalador do Wildfly para o CCTServer deve ser feita pelos canais TOTVS, pois já estará pré-configurado com o necessário para o funcionamento do CCTServer.


a.      Instalação

                                                             

         I – Requisitos de espaço em disco

  Para a instalação do Wildfly 28.0.0.Final, no mínimo 1 GB deve estar disponível no disco de instalação.


         II- Requisitos de Software

  É necessário que se tenha a OpenJDK devidamente instalada e configurado no ambiente.


         III – Início da Instalação

  Obtido o pacote do Wildfly pré-configurado, a instalação consistes em descompacta-lo no diretório de instalação C:\totvs e estará concluída. Nas seções seguintes serão apresentadas algumas configurações e uma breve apresentação dos principais recursos do servidor;


         IV – Variáveis de ambiente

  Uma vez instalado o Wildfly será necessário definir a variável de ambiente JBOSS_HOME como sendo do sistema, sendo o valor da variável o caminho para o diretório de instalação do servidor:

Nome da Variável: JBOSS_HOME

Valor da variável: C:\totvs\wildfly-28.0.0.Final


Acessando o diretório <diretório-wildfly>\bin, será possível encontrar o arquivo standalone.bat, responsável pela execução do servidor em ambiente em ambiente Windows.


         V – Teste da instalação

   Para testar a instalação execute o arquivo standalone.bat. Isso irá inicializar o servidor em modo standalone. Observe os logs no prompt de comando. Ao final do log é possível constatar o tempo de inicializar do servidor.

   Para comprovar que o servidor está realmente sendo executado, acesse o endereço http://localhost:8080/ .

        VI. Encerrando o modo standalone

Basta digitar na janela do Promp de Comand o camndo CTRL+C ou fechar a janela que está em execução.


                                                           

         VII – Ajustando Parâmetros de Memória

Se for necessário alterar a quantidade de memória disponível para a JVM (Java Virtual Machine) utilizado pelo Wildfly, devemos editar o arquivo standalone.conf.bat que está no <diretório-wildfly>\bin.


Neste arquivo, procure por uma linha como a seguinte:

set "JBOSS_JAVA_SIZING=-Xms768M -Xmx768M -Xrs"


Os parâmetros -Xms e -Xmx determinam, respectivamente, a quantidade inicial e a quantidade máxima de memória que pode ser utilizada pelo servidor e, por questões de desempenho, devem ser configuradas para o mesmo valor. Neste caso (do exemplo) a configuração determina 768MB de memória, que pode ser aumentado de acordo com a necessidade e disponibilidade de recursos do servidor.


b.     Configurando a Instância Padrão do PIMSCS no Wildfly


Um dos parâmetros esperados pela aplicação Server é a instância padrão que deve ser utilizada para consultas na base de dados do PIMSCS. Esta configuração deve ser feita no arquivo standalone.conf.bat (para ambientes Windows) ou standalone.conf (para ambientes Linux).

Nestes arquivos, procure a parte que é responsável pela passagem de parâmetros de memória para a JVM, como a seguir:


set "JBOSS_JAVA_SIZING=-Xms768M -Xmx768M -Xrs"

set "JAVA_OPTS=%JAVA_OPTS% -XX:+UseG1GC -Duser.language=pt -Duser.country=BR -Duser.timezone=GMT-3"

set "JAVA_OPTS=%JAVA_OPTS% -Dinstancia_default=ALBER -Dversao.jboss=W28 -Djms.servers.ips=127.0.0.1 -Djms.servers.port=8080"


O parâmetro -Dinstancia_default=ALBER neste exemplo está com valor ALBER e deve ser substituído pelo nome da instância em questão. Um ponto de atenção é que o nome da instância deve ser escrito em caixa alta (letras maiúsculas) pois é assim que são configurados na base de dados do PIMSCS.

O parâmetro -Dversao.jboss deve ser configurado com o valor do servidor de aplicação que está sendo utilizado, no caso W28 se refere ao Wildfly 28.0.0.Final.

O parâmetro -Djms.servers.ips deve ser configurado com o IP do host, e o -Djms.servers.port com a porta a ser utilizada.


NOTA:

1 - O nome da instância não tem nenhuma relação com os nomes dos diretórios de configuração do Wildfly.

2 - Para quando o código da instância conter espaço ex: CIA I, no argumento do Wildfly -Dinstancia_default deverá ser trocado o espaço por @. Ex -Dinstancia_default=CIA@I

Internamente a aplicação irá trocar @ por espaço.


É bom salientar que, caso mais de uma instância do Wildfly seja inicializada como serviço na mesma instalação, será necessário ter um arquivo standalone.bat e standalone.conf.bat (standalone.sh e standalone.conf, em caso de plataformas Linux) para cada instância de serviço do Wildfly. Mais detalhes na seção 3.


c.      Configurando o Wildfly para executar como serviço do Windows

Passo 1:

Navegue até o <diretório-wildfly>\docs\contrib\scripts e copie a pasta service para o diretório <diretório-wildfly>\bin.


Passo 2:

Agora, ao acessar a pasta service no diretório \bin, edite com o Notepad++ o arquivo service.bat. O arquivo service.bat contém as configurações para a execução do serviço. Dentre as configurações encontradas neste arquivo existe uma que define o nome pelo qual o serviço do Wildfly será identificado. Esta configuração pode ser vista no trecho abaixo:


set SHORTNAME=Wildfly

set DISPLAYNAME=WildFly

set DESCRIPTION=WildFly Application Server


O parâmetro SHORTNAME representa o nome do serviço e deve ser único. O parâmetro DISPLAYNAME é o nome de exibição e o parâmetro DESCRIPTION a descrição, podendo ser modificados para os nomes que melhor atender a sua necessidade.



NOTA: Caso sejam criados múltiplos serviços do Wildfly, será necessário diferenciá-los no SHORTNAME.

OPCIONAL: Para evitar problemas de perda de memória, pode ser aumentada a memória disponibilizada para a JVM no arquivo standalone.conf.bat, como exemplo:


Padrão: JBOSS_JAVA_SIZING=-Xms768M -Xmx768M –Xrs

Aumento de memória: JBOSS_JAVA_SIZING=-Xms1024M –Xmx1024M –Xrs


Passo 3: 

Instale o serviço Windows.

  1. Abra o Prompt de Comando como Administrador;
  2. Defina o diretório <diretório-wildfly>\bin\service para a execução do bat no CMD executando o seguinte comando $ service install. Caso seja instalado com sucesso, a tela ficará conforme a imagem abaixo:


Após a configuração é possível ver o serviço disponível como qualquer outro serviço do Windows. Configure-o para inicialização automática e reinicie o servidor, para que o serviço possa ser iniciado (isto pode ser necessário caso o usuário em execução não tenha permissão para inicialização de serviços).


Passo 4:

A última configuração deve ser modificada para ser acessível por todos os endereços IP, caso seja necessário.

Edite com o Notepad++ o arquivo de configuração standalone-full-ha.xml que está no <diretorio-wildfly>\standalone\configuration e  procure pela tag <interfaces> e altere na tag <interface name="public"> conforme o modelo abaixo. Por padrão, este campo estará fazendo referência ao IP 127.0.0.1, mas liberaremos para todos os IPs alterando para 0.0.0.0:


d.      Configurando Várias Instâncias do Wildfly para executar como serviço do Windows

Passo 1:

Quando houver a necessidade de instalar várias instâncias do Wildfly como serviço do Windows, deve ser realizada uma cópia do diretório standalone e renomeá-lo para a instância a ser utilizada. No exemplo abaixo, a nova instância criada tem o nome de standalone-novainstancia:


Passo 2:

No diretório da nova instância, edite com o Notepad++ o arquivo standalone-full-ha.xml em \standalone-novainstancia\configuration. Com o arquivo aberto, procure pela tag de nome socket-binding-group e edite o campo port-offset="${jboss.socket.binding.port-offset:0} para definir o incremento do valor das portas na inicialição do serviço. No exemplo abaixo, será incrementado em 100:


Por exemplo, a porta padrão 8080 será a porta 8180 na nova instância e assim em diante, sendo o incremento realizado sobre o valor definido no campo port-offset="${jboss.socket.binding.port-offset:0}.


Passo 3:

Será necessário também criar cópias dos arquivos standalone.bat e standalone.conf.bat do diretório \bin e do service.bat do diretório \bin\service, e renomeá-los para identificar a instância que será utilizada. Por exemplo: standalone_novainstancia.bat, standalone_novainstancia.conf.bat e service_novainstancia.bat.          

Isto é necessário para que as configurações de memória, IP e porta possam ser configuradas individualmente para cada instância.

Estes arquivos citados referenciam-se uns aos outros, sendo necessário alterar os nomes nestes locais de acordo com o que for definido. Por exemplo, no arquivo standalone_novainstancia.bat, os locais que referênciam o arquivo standalone.bat, standalone.conf.bat e o diretório \standalone, passariam a referenciar os arquivos standalone_novainstancia.bat, standalone_novainstancia.conf.bat e o diretório \standalone-novainstancia.


Exemplos:

  • Arquivo standalone_novainstancia.bat:

     Será necessário alterar o parâmeto DEBUG_PORT_VAR, pois o valor padrão 8787 já estará sendo utilizado por alguma outra instância:

  • Arquivo service_novainstancia.bat:

      Além dos campos do novo diretório e arquivos, será necessário alterar o parâmetro SHORTNAME do serviço (que deve ser único), e o parâmetro CONTROLLER, pois como definimos o incremento das portas em 100, o padrão que era 9990 passou a ser 10090:


No arquivo service_novainstancia.bat, os locais que referenciam o diretório \standalone e o arquivo standalone.bat devem referenciar o diretório da nova instancia \standalone-novainstancia e o novo arquivo standalone_novainstancia.bat.



4.      Configurações de Firewall

A aplicação CCTServer tem como cliente a aplicação CCTDesktop, que é um cliente remoto executado, geralmente, fora da rede onde o servidor será instalado.

Para ambientes que possuem um firewall entre o ambiente externo e o servidor é necessário que sejam liberadas algumas portas de serviços que serão acessados pela aplicação CCTDesktop.

Os serviços acessados pela aplicação cliente, e suas respectivas portas, são:


Conector HTTP

Porta: 8080

Java Message Service (JMS)

Porta:5445


Importante notar que estas são as portas acessadas pela aplicação cliente a partir da rede externa. No entanto o servidor de aplicações Wildfly abre sockets em portas aleatórias para seu processamento  interno. Caso haja conflitos pode ser necessário a liberação de um range de portas acima de 4000.


5.      Ajustando a Quantidade de Threads no Servidor

Em certas ocasiões se faz necessário o ajuste da quantidade de threads que o servidor mantém para atender às requisições.

Esta configuração pode ser encontrada no arquivo <diretorio-wildly>\standalone\configuration\standalone-full-ha.xml. Neste arquivo o trecho responsável por esta configuração está na definição na tag <subsystem xmlns="urn:jboss:domain:ejb3:10.0"> entre as tags <thread-pools> </thread-pools>:

Sobre <thread-pools> e sua configuração:

É usado para configurar os pools de threads utilizados por invocações assíncronas, temporizadores e invocações remotas.

max-threads especifica o número máximo de threads no pool de threads. É um atributo obrigatório e o valor padrão é 10.

core-threads especifica o número de threads principais no pool de threads. É um atributo opcional e o valor padrão é o valor de max-threads.

keepalive-time especifica o tempo que as threads não principais podem ficar ociosas antes de se tornarem elegíveis para remoção. É um atributo opcional e o valor padrão é 60 segundos.


Maiores informações podem ser encontradas na documentação oficial do Wildfly em https://docs.wildfly.org/28/Admin_Guide.html#Messaging.


6.  Instalação e Configuração da Aplicação CCT Server

A aplicação CCTServer é desenvolvida em Java, como um componente que deve ser implantado no servidor de aplicações Wildfly.

O arquivo da aplicação disponibilizado para implantação chama-se PIMSServer.ear.

Durante a implantação, ou então quando for necessário realizar uma atualização da aplicação, este arquivo deverá ser copiado para o diretório deployments, cujo caminho está descrito a seguir:

<diretorio-wildfly>\standalone\deployments


NOTA: quando for realizar a atualização da aplicação, tenha certeza de ter realizado uma cópia de segurança da versão que está sendo substituída, com uma cópia do arquivo em local adequado antes de sua remoção para a substituição pelo novo arquivo.


         A. Datasource para conexões com o banco de dados.

Para que a aplicação funcione adequadamente, é necessário configurar o acesso a alguns datasources  configurados no arquivo standalone-full-ha.xml. O arquivo em questão está no diretório \standalone\configuration. Os datasources são: PIMSCSDS, PIMSLTDS, PIMSSLDS e PIMSIFDS.

Nestes arquivos devem ser informados o IP (ou nome de rede) do servidor onde está configurado o banco de dados, a porta de conexão, o nome da instância, usuário e senha de acesso. O exemplo abaixo, (específico para o Oracle e com dados fictícios) apresenta estas informações em destaque:

          B. Arquivos de Log e Verbosidade de Logs

         Os logs do CTT-Server passaram a ser gerenciados pelo servidor de aplicação no campo <subsystem xmlns="urn:jboss:domain:logging:8.0">


Os logs gerados são disponibilizados no <diretório-wildfly>\standalone\log com o nome de server.log. O level dos logs para gravação no arquivo são definidos no campo <periodic-rotating-file-handler>:

Mas o campo que habilita a geração dos logs com level WARN, INFO, ERROR ou DEBUG é o campo <root-logger>:


7.  Configuração de Sincronização entre Servidor Local e Datacenter

Inicialmente os servidores devem estar parados.

Na tabela de schedules, alterar o valor da coluna ENABLED para "S" na linha que contém o service_name "SincronizacaoDadosSchedulable". Isso fará com que a schedule de sincronização entre os servidores esteja habilitada. Definir os tempos desejados para que a schedule seja executada em uma das colunas disponíveis, são elas: YEAR, MONTH, DAY_OF_MONTH, HOUR, MINUTE e SECOND.


No diretório da instância do servidor local, acessar o diretório deploy. Clicar com o botão direito sobre o arquivo PIMSServer.ear e abrir o arquivo compactado (Aconselhado o uso do 7Zip para abrir arquivos compactados). No arquivo compactado, abrir no diretório CCTModule → properties, o arquivo parametros.properties.

Neste arquivo alterar as propriedades http.server.ip e http.server.port com os dados do Datacenter. Exemplo:

http.server.ip=10.11.26.25

http.server.port=8080


Após alterar as propriedades, salve e feche o arquivo parametros.properties. Será mostrada uma janela de pergunta do Windows perguntando se deseja atualizar o arquivo parametros.properties dentro do arquivo compactado. Pressionar "Ok".

Feche o arquivo compactado. Será novamente aberta uma tela de pergunta para atualizar o jar CCTModule dentro do arquivo compactado. Pressione "Ok". O Pacote será atualizado com a nova configuração.

Agora é só subir novamente os servidores local e datacenter.