Histórico da Página
Índice |
---|
...
Objetivo
O objetivo desta página deste documento é demonstrar como sobrescrever as propriedades do produto DATASUL utilizadas em um ambiente com Tomcat.
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:
<Environment name="totvs.appserver" value="AppServer://servidor:5162/totvs-brk1" 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.appserver" value="AppServer://servidor:5162/totvs-brk1" type="java.lang.String" /> |
---|
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.
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.
...
<Environment name="totvs.menu.html.color" value="#09ddea" 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.
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
Propriedade | Obrigatório? | Descrição | ||||
---|---|---|---|---|---|---|
totvs.appserver | Sim | Contém o caminho, tipo url, para o appserver progress no formato <appserver://host:port/service> ou no formato <http://host:port/apsv>. | ||||
Categoria | Propriedade | |||||
TOTVS.CONFIG | totvs.config.shortcuts[0].ts.app | totvs.config.shortcuts[0].ts.balancer | totvs.config.shortcuts[0].ts.gateway | totvs.config.shortcuts[0].ts.pathINI | totvs.config.shortcuts[0].ts.pathP | totvs.config.shortcuts[0].ts.pathPF | totvs.config.shortcuts[0].ts.server | totvs.config.shortcuts[0].type | totvs.config.shortcuts[0].description | totvs.config.shortcuts[0].webspeed.url | totvs.config.server.webport | totvs.config.server.webport.ext | totvs.config.shortcuts[0].local.pathINI | totvs.config.shortcuts[0].local.pathP | totvs.config.shortcuts[0].local.pathPF | totvs.config.shortcuts[0].citrix.app | totvs.config.shortcuts[0].citrix.server | totvs.config.shortcuts[0].goglobal.app | totvs.config.shortcuts[0].goglobal.pathINI | totvs.config.shortcuts[0].goglobal.pathP | totvs.config.default.shortcut | totvs.config.progress.preload | totvs.config.server.host | totvs.config.server.port | totvs.config.shortcuts[0].goglobal.pathPF | totvs.config.server.host.ext | totvs.config.shortcuts[0].goglobal.server | totvs.config.shortcuts[0].goglobal.serverASP | totvs.config.shortcuts[0].goglobal.url | totvs.config.shortcuts[0].goglobal.version | totvs.config.shortcuts[0].ts.port |
TOTVS.EMAIL | totvs.email.security.key | |||||
TOTVS.LICENSE | ||||||
totvs.license.ambient.type | totvs.license.port | Não | Define o tipo de licenciamento do ambiente. Poderá conter os seguintes valores: normal, test, demonstration.totvs.license.server | |||
totvs.license.timeout | totvs.license.emergency.key | port | Não | Define a porta do License Server a ser utilizada.TOTVS.MENU | ||
totvs.menu.central.base.path | totvs.menu.html.color | totvs.menu.html.custom.logo | totvs.menu.located | totvs.menu.max.recents | totvs.menu.user.auto.update | totvs.menu.web.tabs |
TOTVS.SECURITY | totvs.ldap.[0].user.base | totvs.ldap.[0].domain | totvs.ldap.[0].manager.dn | totvs.ldap.[0].manager.password | totvs.ldap.[0].url | totvs.ldap.[0].user.search.base | totvs.ldap.[0].user.search.filter | totvs.progress.security | totvs.windows.url | totvs.session.control.qty.sessions | totvs.session.control.verif.time | totvs.session.control | totvs.session.control.exception | totvs.timeout | totvs.timeout.exception | totvs.timeout.message | totvs.user.suggest_last_logged_user |
license.server | Não | Define o nome do servidor aonde o License Server esta sendo executado. | ||||
totvs.envprop.group | Não | Define 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. | ||||
ADVANCED SECURITY | totvs.enable.recover.password | totvs.advancedSecurity.passwordLength | totvs.advancedSecurity.denyPasswordEqualToUserCode | totvs.advancedSecurity.passwordHistory | totvs.advancedSecurity.alphanumericCharSet | totvs.advancedSecurity.failedLoginTries | totvs.advancedSecurity.temporaryLoginBlocking | totvs.advancedSecurity.expiredPasswordOption |
TOTVS.SETTINGS | totvs.api.manager.cert.path | totvs.report.engineDir | totvs.report.rptDesignDir | totvs.rfi.user | ||
TOTVS.SNOWDEN | totvs.snowden.enable | |||||
totvs.snowden.report.admin |
...