Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Índice
maxLevel2


Objetivo 


O objetivo

...

deste documento é demonstrar como

...

Este projeto de ambiente local utiliza o servidor de aplicação progress e banco de dados da rede disponibilizado para o ambiente http:\\gales:8280\menu-html

Passo a Passo

Passo 1 - Criar uma pasta com o nome treinamento no diretório de usuários

...

Aviso
  • Esta etapa de utilizar o c:\Users é obrigatório para quem utilizar o Docker Toolbox (para compartilhamento de pastas).
  • Quem utilizar o Docker for Windows pode utilizar qualquer pasta da máquina.

Passo 2 - Criar novas pastas dentro da pasta treinamento

...

Passo 3 - Acessar o diretório  do servidor jv-fwk-dev02

...

Passo 4 - Copiar arquivos do servidor jv-fwk-dev02

...

Passo 5 - Edição do arquivo tomcat.sh.

Nesta etapa devemos remover a função  wait_for_appserver. Ela não será necessária para este projeto.

...

Remover do código a função:

...

function wait_for_appserver {
echo Waiting for AppServer...
while [ ! -s /usr/wrk/datasul-1217-progress-8080.server.000001.log ]
do
sleep 2
done
sleep 5
}

...

configurar o arquivo context.xml do Tomcat conforme as necessidades do ambiente

As configurações são armazenadas no banco de dados e criamos a figura do agrupador de propriedades para tratar as propriedades que serão distintas a cada Tomcat utilizado.



Painel
borderColordarkgrey
borderStyledashed

Se não existe a necessidade de propriedades específicas por servidor Tomcat usando o mesmo banco de dados as únicas configurações necessárias são:


Chave Valor
totvs.appserverIndica o endereço do appserver utilizado
totvs.license.ambient.typeTipo do ambiente Normal/Demonstration/Test
totvs.license.portporta do servidor de licença (opcional para Demonstration)
totvs.license.serverhost do servidor de licença (opcional para Demonstration)



Painel
borderColordarkgrey
borderStyledashed

Abaixo exemplo do arquivo:

<Context crossContext="true">

...

    <Environment name="totvs.appserver" value="AppServer://host_appserver:5132/NovoFrame"

...

function start_tomcat {
echo Starting Tomcat...
/usr/local/tomcat/bin/startup.sh
}
function stop_tomcat {
echo Stopping Tomcat...
/usr/local/tomcat/bin/shutdown.sh
exit 0;
}
start_tomcat
#!/usr/bin/env bash
echo Running...
trap stop_tomcat SIGTERM
while true; do
sleep 1;
done

Passo 6 - Edição do arquivo .env

...

PROJECT_PATH=C:\Users\<SEU USUARIO>\treinamento
PROJECT=tomcat-local
WEB_PORT=8280
DI_PORT=8780
TOMCAT_VERSION=9.0.0.M17-jre8

Passo 7 - Edição do arquivo docker-compose.yml

Neste projeto utilizamos apenas o serviço webserver, desta maneira não é necessário configurar os serviços database e appserver.

A área de volumes não será necessária para este exemplo e também será removida.

...

Bloco de código
languagetext
# Configuracoes Gerais do Ambiente
#
# Projeto tomcat-local container tomcat 
# com o produto Datasul (Novo Framework)
#
# 1. APPSERVER:
#   1.1 Appserver da rede - ambiente Gales 8280 
# 2. BANCO DE DADOS:
#   1.1 Banco de dados da rede - ambiente Gales 8280
#

version: "3"
services:  
  webserver:
    image: tomcat:${TOMCAT_VERSION}
    container_name: ${PROJECT}-webserver
    ports:
     - "${WEB_PORT}:8080"
     - "${DI_PORT}:${DI_PORT}"
    volumes:
     - ${PROJECT_PATH}/${PROJECT}/scripts:/scripts
     - ${PROJECT_PATH}/${PROJECT}/scripts/webserver/context.xml:/usr/local/tomcat/conf/context.xml
     - ${PROJECT_PATH}/${PROJECT}/scripts/webserver/server.xml:/usr/local/tomcat/conf/server.xml
     - ${PROJECT_PATH}/${PROJECT}/scripts/webserver/catalina.properties:/usr/local/tomcat/conf/catalina.properties
     - ${PROJECT_PATH}/${PROJECT}/scripts/webserver/logging.properties:/usr/local/tomcat/conf/logging.properties
     - ${PROJECT_PATH}/${PROJECT}/scripts/webserver/webapps:/usr/local/tomcat/webapps
     - ${PROJECT_PATH}/${PROJECT}/temp/tomcat:/usr/local/tomcat/logs         
    environment:
      TZ: "Brazil/East"
    command: /bin/bash /scripts/webserver/tomcat.sh

Passo 8 - Copiar os arquivos web

  • 1- Copiar (Não recortar) todo o conteúdo do diretório \\JV-FWK-DEV02\users\treinamento\webapps para o diretório C:\Users\<SEU USUÁRIO>\treinamento\tomcat-local\scripts\webserver\webapps

Passo 9 - Editar arquivo context.xml

...

languagetext

...

type="java.lang.String" />

...

    <Environment

...

name="totvs.license.ambient.type"

...

value="

...

Normal"

...

type="java.lang.String" />

...

    <Environment

...

name="totvs.

...

license.

...

port"

...

value="

...

5555"

...

type="java.lang.String" />

...

    <Environment

...

name="totvs.

...

license.server

...

"

...

value="

...

Ribanceira"

...

type="java.lang.String" />

...

...

</Context>


Agrupadores de Propriedades



A partir da versão 12.1.28 do produto DATASUL, disponibiliza a funcionalidade de agrupadores de propriedades, que visa facilitar a criação, gerenciamento e redução dos recursos necessários para os ambientes.

O agrupador permite que um mesmo banco de dados de foundation armazene as configurações dos diversos ambientes Tomcat.

Para utilizar o agrupador de propriedades de inserir no arquivo de configuração context.xml a seguinte configuração:

<Environment name="totvs.

...

envprop.

...

group"

...

value="

...

Servidor_teste"

...

type="java.lang.String" />

Objetivo das propriedades informadas:

...

Em que Servidor_teste é o seu agrupador, pode-se utilizar o nome que melhor irá identificar o uso desse servidor Tomcat.

Quando estiver usando esse servidor toda a configuração de foundation feita nele não se propaga aos outros servidores que usam o mesmo banco de dados.


Para saber que está usando um agrupador no ambiente foi colocado o nome do agrupador na barra de status, vejam na imagem o destaque em vermelho.

No exemplo foi alterada a cor de fundo do menu para verde e essa configuração só será utilizada nos servidores com agrupador Servidor_teste.

Se no mesmo banco de dados estiverem configurados diversos servidores sem o agrupador quando alterar uma configuração, da cor por exemplo, todos os servidores que não tem o agrupador serão afetados, os que tem agrupador não.

Caso precise desfazer as configurações específicas do agrupador posso fazer isso através das propriedades de ambiente descritas nesse documento CFG - Ambiente .

Image Added



Arquitetura


É possível utilizar várias configurações de ambiente com mais de um Tomcat e Appserver por conjunto de bancos.






Neste exemplo, o ambiente está distribuído entre TomcatsAppservers e conjunto da bancos diferentes para demonstrar as possibilidades:


Image Added




SITUAÇÃO TOMCAT 1:

Configuração:

O arquivo context.xml contém apenas as propriedades citadas acima (totvs.appserver, totvs.license.ambient.type

...

, totvs.license.port, totvs.license.server).

Comportamento:

Utiliza as propriedades default e não é afetado pelas alterações de propriedade dos Tomcats com agrupador (Tomcat 2 no exemplo).

Cuidados:

O Tomcat 3 não tem agrupador caso altere uma propriedade nesse servidor ela se propagará para esse, mesmo sendo outro appServer, pois o banco é o mesmo e é lá que ficam as configurações.

Caso tenha valores diferentes para as propriedades do license que ficam no context.xml (totvs.license.ambient.type, totvs.license.port, totvs.license.server), sempre que fizer a carga do ambiente essa informação de propagará para os ambientes que compartilham esse grupo de propriedades.


SITUAÇÃO TOMCAT 2:

Configuração:

O arquivo context.xml contém apenas as propriedades citadas acima (totvs.appserver, totvs.license.ambient.type, totvs.license.port, totvs.license.server) e mais a propriedade do agrupador totvs.envprop.group.

Comportamento:

As propriedades alteradas nesse servidor são exclusivas, elas não se propagam para os Tomcats 1 e 3, o Tomcat 4 usa outro conjunto de bancos e não é afetado.

Cuidados:

Caso não tenha feito a alteração de uma propriedade, customizando ela para esse servidor, e essa propriedade for alterada nos servidores Tomcat 1 ou 3 essa alteração afetará esse servidor.

Não é o caso do exemplo, mas caso tenha diversos Tomcats com agrupadores diferentes e queira alterar a configuração de todos deverá alterar em cada um deles.

Caso tenha valores diferentes para as propriedades do license que ficam no context.xml (totvs.license.ambient.type, totvs.license.port, totvs.license.server), sempre que fizer a carga do ambiente essa informação de propagará para os ambientes que compartilham esse grupo de propriedades.


SITUAÇÃO TOMCAT 3:

Configuração:

O arquivo context.xml contém apenas as propriedades citadas acima (totvs.appserver, totvs.license.ambient.type, totvs.license.port, totvs.license.server).

Como o appserver desse servidor é diferente o valor de totvs.appserver deve ser alterado.

Comportamento:

Apesar de utilizar um appserver diferente ele usa as mesmas configurações do Tomcat 1, lembre-se as configurações ficam no banco de dados, e para esse caso ele é o mesmo.

Cuidados:

O Tomcat 1 não tem agrupador caso altere uma propriedade nesse servidor ela se propagará para esse.

Caso tenha valores diferentes para as propriedades do license que ficam no context.xml (totvs.license.ambient.type, totvs.license.port, totvs.license.server), sempre que fizer a carga do ambiente essa informação de propagará para os ambientes que compartilham esse grupo de propriedades.


SITUAÇÃO TOMCAT 4:

Configuração:

O arquivo context.xml contém apenas as propriedades citadas acima (totvs.appserver, totvs.license.ambient.type, totvs.license.port, totvs.license.server).

Como o appserver desse servidor é diferente o valor de totvs.appserver deve ser alterado, e o appserver deve utilizar um outro conjunto de bancos.

Comportamento:

Como as configurações ficam no banco de dados esse servidor não é afetado por nenhuma alteração de configuração de outros servidores

Cuidados:

Caso mude alguma configuração que afete todos os seus ambientes terá que alterar em todos os ambientes.

Passo 10 - Docker-compose

...

Creating tomcat-local-webserver ... done
Attaching to tomcat-local-webserver
tomcat-local-webserver | Starting Tomcat...
tomcat-local-webserver | Tomcat started.
tomcat-local-webserver | Running...

...

  1. Acessar o endereço http:\\<IP-VM>:8280\totvs-menu
  2. Acessar com usuário super e senha super@123

...

  • Acessar o diretório do projeto C:\Users\<SEU USUÁRIO>\treinamento\tomcat-local utilizando o CMD ou Docker client
  • Executar o comando docker-compose down

...