Árvore de páginas

Versões comparadas

Chave

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

Índice
maxLevel

...

2

...

...


Objetivo 


O objetivo deste documento é demonstrar como 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" 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" />

...

Arquitetura

...

...

</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" />

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 Modified

...




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.

Para informar para o Tomcat qual o Appserver será utilizado, é preciso definir uma tag Environment, dentro do arquivo .../TOMCAT/conf/context.xml, que conterá a propriedade "totvs.appserver" e a URL de conexão do AppServer, conforme o exemplo abaixo:

...

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

Neste outro exemplo, existem os seguintes ambientes: produção, desenvolvimento e testes.

O ambiente de produção está apontando para um único servidor Appserver e servidor de banco de dados.

Já o ambiente de desenvolvimento e testes podem apontar para um servidor Appserver diferente, onde cada um terá o seu próprio PROPATH, e cada servidor Appserver poderá apontar para o mesmo servidor de banco de dados.

Image Removed

Neste formato, onde é possível manter vários servidores appserver, utilizando o arquivo .../TOMCAT/conf/context.xml, pode-se especificar propriedades diferentes em cada servidor, por exemplo:

- No Tomcat de desenvolvimento, existe o licenciamento do tipo "normal", já no Tomcat de homologação o licenciamento do tipo "test".

Então concluí-se que no o arquivo .../TOMCAT/conf/context.xml, podem existir propriedades diferenciadas para os ambientes, onde os valores especificados ficarão "fixos" dentro desses ambientes.

...

Context

Por meio do arquivo context.xml é possível sobrescrever as propriedades do produto DATASUL, o arquivo fica localizado na pasta conf, onde foi instalado o Tomcat. Para realizar o procedimento basta adicionar um nova Environment no arquivo context.xml.

Exemplo de propriedade sobrescrevendo a porta do License:

...

Quando adicionada uma propriedade no context.xml, está "sobrescrevendo" (em tempo de execução) o valor desta propriedade, onde o valor já existente no banco de dados será ignorado e será desconsiderado qualquer valor especificado na tela HTML de Propriedades do Sistema. Este recurso é muito útil quando existem ambientes de homologação, desenvolvimento e produção, pois cada um poderá ter o seu próprio AppServer e as suas propriedades customizadas.

Informações

Todos as propriedades são do tipo java.lang.String

...

Agrupadores de Propriedades

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

Um exemplo interessante de utilização dos agrupadores, seria em um ambiente de homologação e de desenvolvimento, onde utilizando os agrupadores pode-se configurar propriedades com valores diferenciados entre eles. Com isso é possível utilizar o mesmo servidor Appserver e o mesmo servidor de banco de dados.

Image Removed

Nesse exemplo, as configurações do arquivo context.xml serão as seguintes:

  • Ambiente de Desenvolvimento

Bloco de código
<?xml version="1.0" encoding="UTF-8"?>
<Context crossContext="true">
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
    <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>

    <Environment name="totvs.appserver" value="AppServer://servidorApp:5162/totvs-brk1" type="java.lang.String" />
    <Environment name="totvs.envprop.group" value="desenv" type="java.lang.String" />
    <Environment name="totvs.license.ambient.type" value="normal" type="java.lang.String" />
</Context>
  • Ambiente de Homologação

Bloco de código
<?xml version="1.0" encoding="UTF-8"?>
<Context crossContext="true">
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
    <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>

    <Environment name="totvs.appserver" value="AppServer://servidorApp:5162/totvs-brk1" type="java.lang.String" />
    <Environment name="totvs.envprop.group" value="homolog" type="java.lang.String" />
    <Environment name="totvs.license.ambient.type" value="test" type="java.lang.String" />
</Context>

...

Lista de propriedades

...

.