LumisPortalConfig
A seguir serão apresentados trechos do arquivo “lumisdata/config/lumisportalconfig.xml” seguido da explicação de cada configuração:
- O elemento
<serverId>
determina o identificador do servidor de aplicação:O valor desse elemento deve ser único entre servidores em um ambiente multi-server.
- O elemento
<deviceDetection>
determina quais são os arquivos de configurações de dispositivos que serão reconhecidos durante o processamento das requisições realizadas às páginas do portal. No nó<deviceDetections>
existemnós filhos cujo o objetivo é representar o arquivo principal que contém as definições dos dispositivos e possíveis atualizações da lista de dispositivos definidos no arquivo principal. Ou seja, o primeiro arquivo informado é considerado o arquivo principal e os demais arquivos são considerados atualizações. A medida que novos dispositivos forem surgindo basta adicionar um novo arquivo com as definições dos novos dispositivos como sendo uma atualização.Por padrão o Lumis utiliza uma lista de definições de dispositivos publicada pelo projeto WURFL. Caso o administrador do portal deseje desativar a opção de detecção de dispositivos, basta informar a configuração abaixo. Desta forma o Lumis irá ignorar a lista de definições de dispositivos publicadas pelo WURFL.
- O elemento
<defaultPageDocType>
permite determinar qual dos possíveis valores de DocType será incluído nas páginas geradas pelo LumisXP para que sejam validadas pelo W3C:Se for especificado o valor
NONE
não será incluído nenhum DOCType na página gerada pelo LumisXP.Para uma lista de todas os DOCTypes W3C, consultar: http://www.w3.org/QA/2002/04/valid-dtd-list.html.
- No elemento
<cache>
podem ser configurados:- a capacidade default do cache de um objeto (capacidade máxima da quantidade daquele objeto em memória) que deve ser configurado no elemento
<defaultCapacity>
; - segundo nível de cache embutido no Portal Cache para armazenar objetos além da capacidade configurada em memória disponível. Para desabilitar este segundo nível, utilize o valor "none" no elemento
<overflowType>
. O valor padrão é "soft" que utiliza SoftReference para armazenar seus objetos; Há ainda o valor "weak" que utiliza WeakReference. Maiores detalhes sobre tipos de referências, consultar o Javadoc de WeakReference ou SoftReference. - se o cache de membros de grupos de tipo padrão do LumisXP utilizará carregamento em massa para se popular.
Esta opção deve ser desabilitada em ambiente em que a memória não é suficiente para carregar informação sobre todos os membros de grupos cadastrados.
O elemento
<standardMembershipBulkLoadEnabled>
pode conter o valor "true" para habilitar (valor padrão), ou "false" para desabilitar. - se o cache de membros de segmentação de usuários utilizará carregamento em massa para se popular.
O elemento
<userSegmentationMembershipBulkLoadEnabled>
pode conter o valor "false" para desabilitar (valor padrão), ou "true" para habilitar.
- a capacidade default do cache de um objeto (capacidade máxima da quantidade daquele objeto em memória) que deve ser configurado no elemento
- O elemento
<defaultDeadline>
do elemento<locks>
define o tempo máximo para (em minutos) antes de ser realizado um lock no portal: - Por default o serviço de clock do portal está habilitado. Para desabilitá-lo, deve-se atribuir o valor zero para o elemento
<enable>
. O intervalo em segundos do operador deve ser atribuído ao elemento<tickInterval>
que por default é 30: - Para alterar o tempo de expiração da sessão, será necessário configurar o arquivo lumisportalconfig.xml, como é mostrado abaixo:
O elemento
<sessionTimeout>
define o tempo para expirar a sessão:É recomendado configurar o tempo de sessão no servidor de aplicação com a mesma duração, configurando-o no web.xml em session-config/session-timeout. Caso esta configuração seja diferente do lumisportalconfig.xml, objetos armazenados na sessão (HttpSession) poderão sofrer expiração em momentos distintos em relação à sessão do usuário no LumisXP.
- Em
<fileUpload>
podem ser configurados o tamanho do arquivo para upload, bem como as extensões de arquivos não permitidas.Através do
<maxSize>
pode-se controlar globalmente o tamanho de um arquivo submetido à upload. O valor "-1" significa tamanho ilimitado.Já o elemento
<deniedExtensions>
contém como valor uma expressão regular que é comparada com a extensão do arquivo enviado. Se ocorrer um match, o upload do arquivo não é permitido. Essa restrição não é aplicada para qualquer envio do arquivo ao portal, mas está disponível para os componentes que queiram utilizar. O lumis.portal.file.IFileManager restringe a adição de arquivos conforme esta configuração. Campos do douidefinition do tipo file ou files utilizam essa configuração e portanto sofrem a mesma restrição. - O elemento encryption define os algoritmos de criptografia utilizados. O LumisXP disponibiliza dois tipos criptografias:
- OneWay: Utilizada para criptografias de mão única, ou seja, a informação encriptada não poderá ser descriptografada. A implementação padrão lumis.portal.crypto.MessageDigestCipher, possui as seguintes configurações:
- Provider: Define o nome do provedor JCE a ser utilizado. Caso o valor não seja especificado o provedor utilizado é o padrão da JVM;
- Algorithm: Define o algoritmo de MessageDigest a ser utilizado. Ex: SHA-512 ou SHA-1. Para mais detalhes consulte a documentação do provedor utilizado. As opções disponíveis no provedor padrão JCE podem ser encontradas em Java Cryptography Architecture Sun Providers Documentation.
- Reversible: Utilizada para criptografias onde é necessário ser possível descriptografar a informação encriptada. A implementação padrão lumis.portal.crypto.SymmetricCipher, possui as seguintes configurações:
- Provider: Define o nome do provedor JCE a ser utilizado. Caso o valor não seja especificado o provedor utilizado é o padrão da JVM;
- Algorithm, Mode, Padding: Definem parametros do Cipher a ser utilizado. Para mais detalhes consulte a documentação do provedor utilizado. As opções disponíveis no provedor padrão JCE podem ser encontradas em Java Cryptography Architecture Sun Providers Documentation;
- KeyGenerationSize: Define o tamanho da chave (bits) utilizada na criptografia. Este valor precisa ser compatível com o algoritmo utilizado;
- Mac: Define o algoritmo utilizado para verificação da integridade do valor descriptografado. Para mais detalhes consulte a documentação do provedor utilizado. As opções disponíveis no provedor padrão JCE podem ser encontradas em Java Cryptography Architecture Sun Providers Documentation.
- OneWay: Utilizada para criptografias de mão única, ou seja, a informação encriptada não poderá ser descriptografada. A implementação padrão lumis.portal.crypto.MessageDigestCipher, possui as seguintes configurações:
- O elemento
<interfaceTitleBarStyle>
define o arquivo XSL que customiza a barra de título global das interfaces: - Dentro de
<security>
, o elemento<httpAuthenticator>
configura a autenticação integrada. Já o elemento<kerberos>
configura a autenticação com Kerberos. - O elemento
<securityAlias>
deve ser utilizada em ambientes que possuem duas soluções em um mesmo servidor de aplicação que utilizam módulos de login diferentes.Por default, o valor do elemento
<securityAlias>
é "LumisPortal". Este valor está determinado em “lumisdata/config/lumissecuritylogin.config”. Para atribuir um valor diferente de “LumisPortal” deve-se substituí-lo no arquivo lumisdata/config/lumissecuritylogin.config e atribuir o novo valor no elemento securityAlias. O Lumis Authentication Manager, através desse elemento, requisita ao servidor de aplicação, um LoginModule do JAAS: - A configuração de cache está detalhadamente documentada na seção Gerenciador de Páginas em Cache.
- O elemento
<errorPage
> serve para customização de página de erro para a solução:O portal vai retornar erro 404, através de uma página de erro customizada, caso seja acessada uma página (HTML ou JSP ) que não existe.
Inserir a string
<!-- LumisXP Error Page -->
na nova página de erro para que o gerador de cache detecte que é uma página de erro e não gere seu cache HTML.A página de erro customizada da Lumis é exibida ao ser acessada uma página, canal ou arquivo com um id que não existe, e fora do F2 (modo usuário). Caso o portal esteja no F2 (modo administrativo do portal), o usuário é redirecionado para o canal portal.
- O elemento
<cluster>
deverá ser habilitado quando desejar que um servidor do ambiente multi-server participe do cluster. Para habilitar a confguração de cluster é necessário retirar o comentário que envolve tal configuração.Três propriedades da configuração devem ser especificadas. As máquinas que estão em cluster devem ter o mesmo endereço mcastAddress e a mesma porta mcastPort. Além disso, todos os servidores devem estar utilizando o mesmo banco de dados para que se tenha o correto funcionamento do cluster.
Os valores apresentados são default, mas outros podem ser especificados. Recomenda-se informar o valor para bindAddress caso haja mais de um endereço externo de rede, pois caso não seja especificado, será escolhido aleatoriamente:
Pode-se configurar também o cluster de forma detalhada utilizando um elemento config dentro de cluster que corresponderá à configuração do JGroups. Abaixo um exemplo de configuração detalhada baseada em TCP (ao invés do default UDP multicast):
Esta configuração de TCP foi verificada com 5 servidores. Com um número maior de servidores podem ser necessários ajustes finos nas configurações do JGroups. Em especial, TCPPING se torna lento com muitos servidores e pode ser necessário substituí-lo por outro mecanismo de descoberta. Os trechos em destaque com '%' definem os endereços ip e as portas a serem utilizadas, e precisam ser ajustados para a solução de acordo com as seguintes observações:
O primeiro trecho, entre parênteses após TCP, define como o socket servidor deste nó será aberto:
- bind_port: especifica o número da porta a ser utilizada;
- port_range: em até quanto start_port pode ser incrementado em busca de uma porta disponível;
- bind_addr: especifica o endereço ip da placa de rede que será utilizado para abrir a porta;
O segundo trecho, entre parênteses após TCPPING, define como os outros nós são encontrados:
- initial_hosts: é uma lista de hosts no formato <endereço_ip>[porta_inicial],<endereço_ip>[porta_inicial],…
- port_range: quantas portas a mais são procuradas em cada host, na lista definida em initial_host, começando pela porta inicial especificada;
Maiores detalhes sobre ajustes finos destas configurações consultar: http://www.jgroups.org.
- No elemento
<executor>
podem ser configurados quantidade mínima e máxima de processos a serem utilizados nas execuções realizadas pelo portal:Mais detalhes no javadoc da interface
IExecutorManager
. - No elemento
<loadingHtmlMessage>
é possível configurar uma indicação de progresso nas chamadas das interfaces client-side. Por default, O usuário visualizará uma imagem juntamente com a string "Carregando". A renderização das interfaces client-side passou a ser assíncrona, ou seja, o portal não espera que uma interface seja renderizada, para renderizar a outra. As renderizações são realizadas em paralelo: - No elemento
<documentBuilderPool>
podem ser configurado o pool de DocumentBuilder utilizado internamente pelo lumis.util.XmlUtil. Esta configuração pode se realizada se desejar efetuar ajustes finos neste pool.Abaixo a descrição de cada parâmetro:
- maxSize: O tamanho máximo do pool;
- minSize: O tamanho mínimo do pool;
- timeBetweenEvictionRunsMillis: O número de milisegundos para dormir entre as execuções da thread de desalocação de objetos inativos. Quando é negativo, nenhuma thread de desalocação de objetos inativos será executada;
- numTestsPerEvictionRun: O número de objetos a ser examinados durante cada execução da thread de desalocação de objetos inativos (se existir alguma);
- minEvictableIdleTimeMillis: A quantidade mínima de tempo que um objeto pode ficar inativo no pool antes de se tornar elegível para exclusão pelo desalocador de objetos inativos (se existir algum).
- No elemento
<layoutFile>
, pode ser configurado o comportamento do Layout File.- pollIntervalSecs: Define o intervalo em segundos de verificação de alteração do arquivo HTML. O valor 0 (zero) desabilita a verificação sendo necessário reiniciar o portal para que qualquer alterações seja refletida. O valor default depende se o portal está sendo executado em modo de desenvolvimento.
- No elemento
<transaction>
pode ser configurado comportamentos relativos às transações do portal.- logAbandonedTimeout: Define o tempo limite para uma transação ser finalizada após sua criação, em segundos. Se o tempo limite for ultrapassado, é emitido um log nível WARN contendo informações sobre a transação. Um valor não-positivo desabilita a geração deste log. O valor padrão para esta configuração é de 600 segundos. (Podem não ser emitidos logs para as transações que durem até 25% mais do que o tempo configurado, devido a otimizações de performance)