Árvore de páginas

Versões comparadas

Chave

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

...

O objetivo deste documento é demonstrar como sobrescrever as propriedades do produto DATASUL utilizadas em um ambiente com servidor de aplicação Tomcat.configurar o arquivo context.xml do Tomcat conforme as necessidades do ambiente

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., na nova versão 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.

Se não tem a necessidade de propriedades específicas por servidor 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)

Abaixo exemplo do arquivoA ú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://

servidorApp:5162/totvs-brk1

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



draw.io Diagram
borderfalse
viewerToolbartrue
fitWindowfalse
diagramDisplayName
lboxfalse
revision3
diagramNameArquitetura
simpleViewerfalse
width
linksauto
tbstyletop
diagramWidth910

Arquitetura

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

Neste exemplo, o ambiente

...

está distribuído entre

...

Tomcats

...

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



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 mas a propriedade do agrupador totvs.envprop.group.

Comportamento:

As propriedades alteradas nesse servidor são exclusivas, elas não se propagam para os Tomcat 1 e 3

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.


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

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

<Environment name="totvs.appserver" value="AppServer://servidorApp:5162/totvs-brk1" 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 Modified


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.


draw.io Diagram
borderfalse
viewerToolbartrue
fitWindowfalse
diagramDisplayName
lboxfalse
revision3
diagramNameContext
simpleViewerfalse
width
linksauto
tbstyletop
diagramWidth910

...

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="7777" type="java.lang.String"/>


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



draw.io Diagram
borderfalse
viewerToolbartrue
fitWindowfalse
diagramDisplayName
lboxfalse
revision2
diagramNameAgrupadores
simpleViewerfalse
width
linksauto
tbstyletop
diagramWidth910

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 Modified

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>



draw.io Diagram
borderfalse
viewerToolbartrue
fitWindowfalse
diagramDisplayName
lboxfalse
revision2
diagramNameLista
simpleViewerfalse
width
linksauto
tbstyletop
diagramWidth910

Lista de propriedades

PropriedadeObrigatório?Descrição
totvs.appserverSimContém o caminho, tipo url, para o appserver progress no formato <appserver://host:port/service> ou no formato <http://host:port/apsv>.
totvs.license.ambient.typeNãoDefine o tipo de licenciamento do ambiente. Valores permitidos: normal, test, demonstration.
totvs.license.portNãoDefine a porta do License Server a ser utilizada.
totvs.license.serverNãoDefine o nome do servidor aonde o License Server esta sendo executado.
totvs.envprop.groupNãoDefine o nome do agrupador de propriedades, caso não seja informado, será considerado o registro padrão que está especificado dentro do banco de dados.

...