Á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

...

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

...

   

Na versão do produto que utiliza Web Service JBoss, existem vários arquivos de propriedades (datasul_framework.properties, config.xml, di.properties, etc.), que acabam dificultando o gerenciamento.  Na nova arquitetura, o tratamento de propriedades do sistema foi alterado, onde as mesmas foram colocadas dentro de banco de dados para facilitar o gerenciamento e manutenção, com isso houve uma centralização das propriedades. Agora, as telas de Propriedades do Sistema são em HTML, facilitando o acesso e manutenção do ambiente.

A única configuração obrigatória em arquivo é a URL de conexão no AppServer, que está contida no arquivo .../TOMCAT/conf/context.xml.
Para informar ao Tomcat qual deverá ser o Appserver que será utilizado, utilizá-se a tag Environment, conforme o exemplo abaixo:

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

...

...

...

NovoFrame" type="java.lang.String" />

...

Arquitetura

É possível esquematizar vários formatos de ambientes quando se trabalha com servidores Tomcat, conforme abaixo:

Neste exemplo, o ambiente de produção está distribuído entre vários Tomcats e Appservers, onde todos se conectam ao mesmo servidor de bancos de dados de produção.

Image Removed

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:

    <Environment name="totvs.license.

...

ambient.type" value="

...

Normal" type="java.lang.String" />

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:

    <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.

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 que podem ser sobrescritas

...

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

...

.