Á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

...

Na versão do produto com JBoss, temos 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 do banco de dados para facilitar o gerenciamento e manutenção, com isso houve uma centralização das propriedades. Agora temos telas HTML de Propriedades do Sistema, facilitando o acesso e manutenção do ambiente.

A única configuração obrigatória em arquivo que teremos que ter é a URL de conexão no AppServer que ficar dentro do arquivo TOMCAT/conf/context.xml.
Para informarmos para a instância do produto no Tomcat qual deverá ser o Appserver a ser utilizado através da tag Environment conforme o exemplo abaixo:

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

...

...

...

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

Arquitetura

Podemos montar vários formatos de ambientes quando estamos trabalhando com servidores Tomcat, conforme abaixo:

Neste exemplo temos um ambiente de produção distribuído entre vários Tomcats e Appservers, onde todos se conectam ao mesmo servidor de bancos de dados de produção. O que informará ao Tomcat qual o Appserver que o mesmo deverá se conectar é a propriedade "totvs.appserver" que fica dentro do arquivo TOMCAT/conf/context.xml.

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

Image Removed

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

O nosso 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 podemos ter vários servidores appserver, através do arquivo TOMCAT/conf/context.xml, podemos especificar propriedades diferentes em cada servidor, por exemplo:

- No Tomcat de desenvolvimento, teremos o timeout "0", onde o mesmo é desligado. Já no Tomcat de testes, teremos um timeout de "10" minutos.

Então concluímos que através do arquivo TOMCAT/conf/context.xml, podemos ter propriedades diferenciadas para os ambientes, onde os valores especificados ficarão "fixos" dentro desses ambientes.

Context.xml

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.

...

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

Quando adicionamos uma propriedade no context.xml, estamos "sobrescrevendo" 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 interessante quando temos ambientes de teste, homologação, desenvolvimento e produção, pois cada um poderá ter o seu proprio 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, estamos criando agrupadores de propriedades, que tem como objetivo facilitar a montagem, 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 poderemos ter propriedades com valores diferenciados entre eles, com isso podemos utilizar o mesmo servidor Appserver e o mesmo servidor de banco de dados.

Image Removed

Neste exemplo, a configuração do arquivo TOMCAT/conf/context.xml seria o seguinte:

  • 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

...

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

...

.