Versões comparadas

Chave

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

O TOTVS Intellector é uma solução para a gestão de processos decisórios, fornecendo uma interação fácil através de uma linguagem simples e prática. Este manual descreve passo-a-passo o processo de instalação do editor e servidor TOTVS Intellector para o WildFly Server versão 11.0.0.

Para quem se destina o manual

O público alvo para este manual são administradores de sistemas e application servers, e que tenha bom conhecimento de WildFly e JVM.

O que é necessário para entender esse manual

Este manual assume que os administradores tem familiaridade com os conceitos de administração e deployment do WildFly, Linux ou Windows e Sun JDK.

Pré-requisitos

Como um primeiro passo, verifique e tenha certeza de qual versão do TOTVS Intellector você deseja instalar ou atualizar. Baseado na versão, você pode determinar a compatibilidade apropriada das versões de WildFlys, Linux (veja as versões abaixo) ou Windows, e Java Oracle JDK.

  • Red Hat Enterprise versões 5.x (Tikanga) e 6.x (Santiago) 64 bits;
  • Cent OS versões 7.0 x 64 bits;
  • Ubuntu Server versão 14.04 LTS 64 bits.
Informações adicionais:
  • Configurar o encode do servidor para o formato  pt_BR.iso88591 caso esteja utilizando linux.
  • Permitir as conexões as portas do WildFly dentro do firewall
  • Caso esteja utilizando RedHat ou Centos desabilitar o selinux. 
JDK 8.0

Instale a Sun JDK 1.8 64 bits apropriada para sua plataforma. As bibliotecas JDK estão disponíveis no seguinte site: http://java.sun.com/javase/downloads/index.jsp. Recomendamos usar versão Update 202. O TOTVS Intellector NÃO FUNCIONA com JDK inferior ao Update 07 devido à API do JAXB.

Não é suficiente ter somente o Java Runtime Environment (JRE), é imprescindível ter a versão full-blown JDK.

Não se esqueça de configurar JAVA_HOME no seu ambiente, mas, forneceremos um bootstrap para o TOTVS Intellector onde essa variável é configurada.  É necessário realizar essa configuração, caso necessite poderá ser colocada em outro lugar. Embora a localização da instalação da JDK seja livre, sugerimos criar uma pasta "<drive>:\opt" no Windows ou usar o "/opt" no Unix, isso ajuda para propósitos de suporte. Instalando em sistemas Unix, tenha bastante cuidado com as permissões de escrita para owner/group para o diretório do WildFly, pois o TOTVS Intellector irá precisar "escrever" nesse diretório.

WildFly

O TOTVS Intellector 9 foi homologado na versão WildFly 11.0.0. Você pode fazer o download do WildFly, para qualquer plataforma do seguinte site: https://wildfly.org/downloads/ .

Este é um bom lugar para tirar dúvidas e procurar dicas sobre o WildFly: https://wildfly.org/gethelp/ .

Instalando...

Após instalar o Java JDK e o WildFly nos locais apropriados, é necessário realizar um teste de verificação da instalação, subindo o WildFly ($JBOSS_HOME/bin/standalone.sh ou standalone.bat no Windows). Para verificar a instalação, deverá clicar na url  http://localhost:9990/console   de administração do application server. Se a console pedir autenticação, siga esse artigo para criar usuários que podem ter acesso ao container.

Evite instalar JDK e WildFly em diretórios que contenham espaços no nome, como "C:\Arquivo de Programas" do Windows  Conheça mais sobre WildFly.

Bootstrap para WildFly e TOTVS Intellector

Os scripts de bootstrap para o TOTVS Intellector são simples, precisando apenas de pequenas modificações no que concerne a utilização de memória e variáveis de ambientes. Usar o nome run-intellector.sh no Linux/Unix e run-intellector.bat no Windows e, deve ficar em $JBOSS_HOME/bin com permissão explícita de execução (básico para os linuxers).

  • No Linux/Unix, observe que será colocado a versão do WildFly, porém o ideal é criar um link simbólico e usar somente /opt/jboss;
  • Teremos mais abaixo, um arquivo de propriedades (hibernate.cfg.xml) usadas pelo TOTVS Intellector e deve ficar em $JBOSS_HOME/bin;
  • Não use a variável de ambiente -Duser.dir=seu_dir, pois isso impede o TOTVS Intellector de compilar as políticas.

No Linux:

Bloco de código
languagejava
linenumberstrue
#!/bin/bash
# exporta variaveis de ambiente necessarias
export JAVA_OPTS="-XX:+TieredCompilation -Dprogram.name=standalone.sh -Xms512M -Xmx512M -XX:MaxPermSize=256M -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Duser.server.node=mynode -Djboss.modules.system.pkgs=org.jboss.byteman -Djboss.server.default.config=standalone-full.xml -Dpersistence.configuration=$JBOSS_HOME/bin/persistence.properties"

# remove indicativo de erros no deployment
rm -fv /opt/wilfly11/standalone/deployments/*.failed
# atualize com seu IP
./standalone.sh -Djboss.bind.address.management=YOUR_IP -b YOUR_IP

No Windows:

Bloco de código
languagejava
linenumberstrue
rem alguns snipets para o bootstrap do Intellector
set JAVA_OPTS=-XX:+TieredCompilation -Dprogram.name=standalone.bat -Xms64M -Xmx512M -XX:MaxPermSize=256M -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Duser.server.node=mynode -Djboss.modules.system.pkgs=org.jboss.byteman -Djboss.server.default.config=standalone.xml

rem inicia o WildFly numa instancia e IP especificos
./call standalone ./standalone.sh -Djboss.bind.address.management=YOUR_IP -b YOUR_IP

Área de dados para o TOTVS Intellector

O TOTVS Intellector tem uma característica de persistir alguns dados no File System da plataforma, seja persistência em XML (JAXB), seja dos plugins de acessos, políticas e layouts de políticas. Esse local de persistência, é um diretório ou uma árvore de diretórios. Você pode verificar, que no arquivo de bootstrap, existe uma variável intellector.datadir que deve apontar para um diretório válido, onde ocorrerá a persistência e o site criará o restante dos diretórios. Veja uma árvore de diretórios criada pelo site abaixo:

NUNCA MODIFIQUE NADA nos diretórios abaixo de Intellector.datadir.

  • Considerando intellector.datadir=/home/intellector como diretório raiz:
    1. /home/intellector/acessos -  diretório de instalação dos plugins de acesso; o TOTVS Intellector cria uma pasta para cada acesso;
    2. /home/intellector/key -  diretório para as licenças do TOTVS Intellector;
    3. /home/intellector/dados -  diretório raiz para persistência de cadastros (usuários, perfis, plugins, auditorias, etc.)
    4. /home/intellector/dados/person -  persistência de usuários cadastrados
    5. /home/intellector/dados/audit -  persistência de auditoria de execução de políticas (intellector.auditpolicy=true/false)
    6. /home/intellector/dados/plugin - persistências dos dados dos plugins instalados
    7. /home/intellector/dados/layouts - persistências de todos os layouts das políticas
    8. /home/intellector/dados/policy - persistências de todos as políticas enviadas do servidor
    9. /home/intellector/politicas - onde serão mantidas as classes das políticas compiladas
    10. /home/intellector/politicas/classes
    11. /home/intellector/politicas/classes/br
    12. /home/intellector/politicas/classes/br/com
    13. /home/intellector/politicas/classes/br/com/tools
    14. /home/intellector/politicas/classes/br/com/tools/politicas
    15. /home/intellector/tarifacao - pasta para os arquivos de Tarifação
 
Configurações do Application Server para o TOTVS Intellector

As seguintes configurações devem ser efetuadas no Appllication Server para que o TOTVS Intellector funcione corretamente.

  • Colocar a propriedade intellector.datadir no arquivo $JBOSS_HOME/standalone/standalone-full.xml logo após o fechamento da tag <extensions>.
Nota

ATENÇÃO: Lembrar de colocar o caminho onde deseja criar o datadir na propriedade "value".

Bloco de código
languagehtml/xml
linenumberstrue
<system-properties> 
    <property name="intellector.datadir" value="COLOQUE_AQUI_O_CAMINHO_DO_DATADIR"/> 
    <property name="persistence.configuration" value="MEU_CAMINHO/persistence.properties" /> 
</system-properties>
Dica

OPCIONAL: Na tag de logging (<subsystem xmlns="urn:jboss:domain:logging:3.0">) adicionar o item abaixo para que warnings sobre utilização de classes privadas da API (as commons-*, por exemplo) sejam suprimidos.

Bloco de código
languagehtml/xml
linenumberstrue
<logger category="org.jboss.as.config"> 
    <level name="ERROR"/> 
</logger>

  

  • Criar a fila do Intellector no HornetQ, para isso basta substituir a tag <jms-destinations> pela que está abaixo, no arquivo $JBOSS_HOME/standalone/standalone-full.xml. 
Bloco de código
languagehtml/xml
linenumberstrue
<jms-destinations> 
    <jms-queue name="intellectorQueue"> 
    <entry name="queue/intellector"/> 
    <entry name="java:jboss/exported/jms/queue/intellector"/> 
    </jms-queue> 
    <jms-topic name="intellectorTopic"> 
    <entry name="topic/intellector"/> 
    <entry name="java:jboss/exported/jms/topic/intellector"/> 
    </jms-topic> 
</jms-destinations> 
Módulos a serem alterados e criados

Criar módulo e registrar os drivers de banco. Como exemplo usaremos a criação de um módulo com o driver para Postgres.

    • Definições: 
      • Assumimos que o driver usado é a versão 9.3: postgresql-9.3-1103.jdbc4.jar.
      • Será usado o método de deploy do driver diretamente no diretório de módulos do WildFly. 

...

Bloco de código
languagexml
titleExemplo de criação de módulo para registrar o driver Postgres JDBC.
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="org.postgresql">
     <resources>
         <resource-root path="postgresql-9.3-1103.jdbc4.jar"/>
     </resources>
     <dependencies>
         <module name="javax.api"/>
         <module name="javax.transaction.api"/>
         <module name="javax.servlet.api" optional="true"/>
     </dependencies>
 </module>
    • Coloque o arquivo postgresql-9.3-1103.jdbc4.jar no mesmo diretório que o arquivo module.xml. Após esse procedimento o driver já pode ser utilizado para configurar uma conexão JNDI no arquivo standalone-full.xml ou no arquivo de configuração usado pela instância.

Criar módulo e registrar os drivers de banco. Como exemplo usaremos a criação de um módulo com o driver para Oracle.

...

Bloco de código
languagexml
titleExemplo de criação de módulo para registrar o driver Oracle JDBC.
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.oracle.ojdbc6">
     <resources>
         <resource-root path="ojdbc6-11.2.0.3.0.jar"/>
     </resources>
     <dependencies>
         <module name="javax.api"/>
         <module name="javax.transaction.api"/>
      </dependencies>
  </module>

Criar módulo e registrar os drivers de banco. Como exemplo usaremos a criação de um módulo com o driver para MSSQLSever.

...

Bloco de código
languagexml
titleExemplo de criação de módulo para registrar o driver Oracle JDBC.
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="net.sourceforge.jtds">
     <resources>
         <resource-root path="jtds-1.2.7.jar"/>
     </resources>
     <dependencies>
         <module name="javax.api"/>
         <module name="javax.transaction.api"/>
      </dependencies>
  </module>

...

Bloco de código
languagehtml/xml
linenumberstrue
<resources> 
    <resource-root path="spring-asm.jar"/> 
    <resource-root path="spring-aop.jar"/> 
    <resource-root path="spring-context.jar"/> 
    <resource-root path="spring-core.jar"/> 
    <resource-root path="spring-beans.jar"/> 
    <resource-root path="spring-tx.jar"/> 
    <resource-root path="spring-jms.jar"/> 
    <resource-root path="spring-expression.jar"/> 
    <resource-root path="spring-web.jar"/> 
</resources>

CXF 2.6.4

...

cxf-rt-bindings-coloc-2.6.4.jar

...

cxf-rt-bindings-object-2.6.4.jar

...

cxf-rt-bindings-soap-2.6.4.jar

...

cxf-rt-bindings-xml-2.6.4.jar

...

cxf-rt-core-2.6.4.jar

...

cxf-rt-databinding-aegis-2.6.4.jar

...

cxf-rt-databinding-jaxb-2.6.4.jar

...

cxf-rt-frontend-jaxws-2.6.4.jar

...

cxf-rt-frontend-simple-2.6.4.jar

...

cxf-rt-management-2.6.4.jar

...

cxf-rt-transports-http-2.6.4.jar

...

cxf-rt-transports-jms-2.6.4.jar

...

cxf-rt-transports-local-2.6.4.jar

...

cxf-rt-ws-addr-2.6.4.jar

...

cxf-rt-ws-mex-2.6.4.jar

...

cxf-rt-ws-policy-2.6.4.jar

...

cxf-rt-ws-rm-2.6.4.jar

...

cxf-rt-ws-security-2.6.4.jar

...

cxf-services-sts-core-2.6.4.jar

...

cxf-tools-common-2.6.4.jar

...

cxf-tools-java2ws-2.6.4.jar

...

cxf-tools-validator-2.6.4.jar

...

cxf-tools-wsdlto-core-2.6.4.jar

...

cxf-tools-wsdlto-databinding-jaxb-2.6.4.jar

...

cxf-tools-wsdlto-frontend-jaxws-2.6.4.jar

...

cxf-xjc-boolean-2.6.1.jar

...

cxf-xjc-dv-2.6.1.jar

cxf-xjc-ts-2.6.1.jar

...

Criar o arquivo module.xml no diretório main e inserir o conteúdo abaixo:

Bloco de código
languagexml
title$JBOSS_HOME\\modules\\org\\apache\\cxf\\impl\\main\\module.xml
 <?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ JBoss, Home of Professional Open Source.
  ~ Copyright 2012, Red Hat, Inc., and individual contributors
  ~ as indicated by the @author tags. See the copyright.txt file in the
  ~ distribution for a full listing of individual contributors.
  ~
  ~ This is free software; you can redistribute it and/or modify it
  ~ under the terms of the GNU Lesser General Public License as
  ~ published by the Free Software Foundation; either version 2.1 of
  ~ the License, or (at your option) any later version.
  ~
  ~ This software is distributed in the hope that it will be useful,
  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  ~ Lesser General Public License for more details.
  ~
  ~ You should have received a copy of the GNU Lesser General Public
  ~ License along with this software; if not, write to the Free
  ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  -->
<module xmlns="urn:jboss:module:1.1" name="org.apache.cxf.impl">
    <properties>
        <property name="jboss.api" value="private"/>
    </properties>
    <resources>
        <resource-root path="cxf-rt-bindings-coloc-2.6.4.jar"/>
        <resource-root path="cxf-rt-bindings-object-2.6.4.jar"/>
        <resource-root path="cxf-rt-bindings-soap-2.6.4.jar"/>
        <resource-root path="cxf-rt-bindings-xml-2.6.4.jar"/>
        <resource-root path="cxf-rt-core-2.6.4.jar"/>
        <resource-root path="cxf-rt-databinding-aegis-2.6.4.jar"/>
        <resource-root path="cxf-rt-databinding-jaxb-2.6.4.jar"/>
        <resource-root path="cxf-rt-frontend-jaxws-2.6.4.jar"/>
        <resource-root path="cxf-rt-frontend-simple-2.6.4.jar"/>
        <resource-root path="cxf-rt-management-2.6.4.jar"/>
        <resource-root path="cxf-rt-transports-http-2.6.4.jar"/>
        <resource-root path="cxf-rt-transports-jms-2.6.4.jar"/>
        <resource-root path="cxf-rt-transports-local-2.6.4.jar"/>
        <resource-root path="cxf-rt-ws-addr-2.6.4.jar"/>
        <resource-root path="cxf-rt-ws-mex-2.6.4.jar"/>
        <resource-root path="cxf-rt-ws-policy-2.6.4.jar"/>
        <resource-root path="cxf-rt-ws-rm-2.6.4.jar"/>
        <resource-root path="cxf-rt-ws-security-2.6.4.jar"/>
        <resource-root path="cxf-services-sts-core-2.6.4.jar"/>
        <resource-root path="cxf-tools-common-2.6.4.jar"/>
        <resource-root path="cxf-tools-java2ws-2.6.4.jar"/>
        <resource-root path="cxf-tools-validator-2.6.4.jar"/>
        <resource-root path="cxf-tools-wsdlto-core-2.6.4.jar"/>
        <resource-root path="cxf-tools-wsdlto-databinding-jaxb-2.6.4.jar"/>
        <resource-root path="cxf-tools-wsdlto-frontend-jaxws-2.6.4.jar"/>
        <resource-root path="cxf-xjc-boolean-2.6.1.jar"/>
        <resource-root path="cxf-xjc-dv-2.6.1.jar"/>
        <resource-root path="cxf-xjc-ts-2.6.1.jar"/>
    </resources>
    <dependencies>
        <module name="asm.asm" />
        <module name="javax.api" />
        <module name="javax.annotation.api" />
        <module name="javax.jms.api" />
        <module name="javax.jws.api" />
        <module name="javax.mail.api" />
        <module name="javax.resource.api" />
        <module name="javax.servlet.api" />
        <module name="javax.wsdl4j.api" />
        <module name="javax.xml.bind.api" services="import"/>
        <module name="com.sun.xml.bind" services="import"/>
        <module name="javax.xml.soap.api" />
        <module name="javax.xml.stream.api" />
        <module name="javax.xml.ws.api" />
        <module name="org.apache.commons.lang" />
        <module name="org.apache.neethi" />
        <module name="org.apache.velocity" />
        <module name="org.apache.xml-resolver" />
        <module name="org.apache.ws.xmlschema" />
        <module name="org.apache.ws.security" />
        <module name="org.apache.santuario.xmlsec" />
        <module name="org.joda.time" />
        <module name="org.opensaml" />
        <module name="org.springframework.spring" optional="true"/> 
        <module name="org.apache.cxf" export="true"/> 
    </dependencies>
</module>
Instalando uma Licença para o TOTVS Intellector

O TOTVS Intellector trabalha com 3 (três) modelos de licenciamento, Enterprise, Limited e Trial. Essas licenças estarão contidas em um único arquivo nomeado intellector.key (outro nome não será reconhecido) que deverá ser colocado no diretório ${intellector.datadir}/key. Ele poderá ser copiado para esse local a qualquer momento, não necessitando de qualquer intervenção no servidor.

  • Tipos de licenças:
  1. Enterprise -  totalmente livre para execução de qualquer política sem data de expiração;
  2. Limited -      determinada por um tipo específico e uma data de expiração ou não;
  3. Trial -          tipos de políticas livres e com uma data de expiração.
 
Deployment do TOTVS Intellector no WildFly

Considerando que o item instalando o WildFly foi seguido, o próximo passo será o deployment (instalação) do pacote iw-editor-*.ear em uma instância do WildFly.

  • Sigamos os passos:
  1. Copiar intellector-ear.ear dentro do diretório $JBOSS_HOME/standalone/deployments;
  2. Se for uma atualização de versão, simplesmente remova o iw-editor-*.ear, ANTES de extrair a nova versão. As pastas log, tmp e work situadas abaixo da instância, neste caso: $JBOSS_HOME/standalone/log, tmp, etc,  poderão ser guardadas, mas é uma boa prática excluí-las.
 
Iniciando o WildFly

...

  • Iniciando
Bloco de código
languagejava
linenumberstrue
===============================================================================

  JBoss Bootstrap Environment

  JBOSS_HOME: "C:\TFS\Java\IW\wildfly-11.0.0.Final"

  JAVA: "C:\TFS\JAVA\jdk1.8.0\bin\java"

  JAVA_OPTS: "-Dprogram.name=standalone.bat -Xms512m -Xmx1024m -XX:+UseParallelOldGC -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djboss.server.default.config=standalone.xml  -Dfile.encoding=UTF-8 -Djboss.bind.address=127.0.0.1 -Dpersistence.configuration=C:\TFS\Java\IW\wildfly-11.0.0.Final\bin\hibernate.cfg.xml -Dpolicy.saveTrace=true -Dsun.jnu.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8  -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n"

===============================================================================

Listening for transport dt_socket at address: 8787
12:05:40,902 INFO  [org.jboss.modules] (main) JBoss Modules version 1.6.1.Final
12:05:43,300 INFO  [org.jboss.msc] (main) JBoss MSC version 1.2.7.SP1
12:05:51,520 INFO  [org.jboss.as] (MSC service thread 1-7) WFLYSRV0049: WildFly Full 11.0.0.Final (WildFly Core 3.0.8.Final) starting
12:05:54,845 INFO  [org.jboss.as.controller.management-deprecated] (Controller Boot Thread) WFLYCTL0028: Attribute 'security-realm' in the resource at address '/core-service=management/management-interface=http-interface' is deprecated, and may be removed in future version. See the attribute description in the output of the read-resource-description operation to learn more about the deprecation.
12:05:54,933 INFO  [org.jboss.as.controller.management-deprecated] (ServerService Thread Pool -- 14) WFLYCTL0028: Attribute 'security-realm' in the resource at address '/subsystem=undertow/server=default-server/https-listener=https' is deprecated, and may be removed in future version. See the attribute description in the output of the read-resource-description operation to learn more about the deprecation.
12:05:54,947 INFO  [org.wildfly.security] (ServerService Thread Pool -- 4) ELY00001: WildFly Elytron version 1.1.6.Final
12:05:55,841 INFO  [org.jboss.as.repository] (ServerService Thread Pool -- 3) WFLYDR0001: Content added at location C:\TFS\Java\IW\wildfly-11.0.0.Final\standalone\data\content\0b\2cf03d15c2e4a74f5dfa00ad12f2f7072f9126\content
12:05:55,895 INFO  [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0039: Creating http management service using socket-binding (management-http)
12:05:55,976 INFO  [org.xnio] (MSC service thread 1-3) XNIO version 3.5.4.Final
  • Pronto pra atender requisições.
Bloco de código
languagejava
linenumberstrue
12:09:34,640 INFO  [br.com.totvs.init.StartupApp] (ServerService Thread Pool -- 74) >> --------------------------------------------------- <<
12:09:34,640 INFO  [br.com.totvs.init.StartupApp] (ServerService Thread Pool -- 74) >> ----- Finalizado a configuração Web Editor -------- <<
12:09:34,641 INFO  [br.com.totvs.init.StartupApp] (ServerService Thread Pool -- 74) >> --------------------------------------------------- <<
12:09:34,642 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 74) WFLYUT0021: Registered web context: '/iw-editor' for server 'default-server'
12:09:34,719 INFO  [org.jboss.as.server] (ServerService Thread Pool -- 38) WFLYSRV0010: Deployed "iw-editor-0.0.1-SNAPSHOT.ear" (runtime-name : "iw-editor-0.0.1-SNAPSHOT.ear")
12:09:35,007 INFO  [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0212: Resuming server
12:09:35,045 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on http://0.0.0.0:29990/management
12:09:35,052 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://0.0.0.0:29990
12:09:35,053 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly Full 11.0.0.Final (WildFly Core 3.0.8.Final) started in 234785ms - Started 832 of 1061 services (391 services are lazy, passive or on-demand)

Normalmente, ajustes adicionais, ou tuning, dependem de plataforma, número de requisições, escalabilidade, multi-ip, dentre outras, a mais comum é alterar a porta onde o container irá atender default é a 8080. Outros casos, como HTTPS ou load balancer, envolvendo o Apache, devem ser analisadas e não fazem parte do escopo desse manual.

Arquivo persistence.properties

Para utilização da persistência de acessos no TOTVS Intellector Server, na primeira execução antes da utilização do cache, deverá ser copiado o arquivo de configuração hibernate.cfg.xml para o diretório $JBOSS_HOME/bin, como descrito abaixo.

O TOTVS Intellector utiliza a API de persistência Hibernate de forma que este arquivo também serve para mapear as configurações mais eficazes para utilização da API.

Bloco de código
languagehtml/xml
linenumberstrue
==============================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC

		"-//Hibernate/Hibernate Configuration DTD 3.0//EN"

		"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory name="iw-Editor">

		<!-- conexao via JNDI -->
        <property name="hibernate.connection.datasource">java:/intellector/totvs</property>

		<!-- ORACLE -->
		<property name="hibernate.dialect">br.com.totvs.oracle.Oracle10gDialectFix</property>

		<!-- MSSQL SERVER -->
		<!--<property name="hibernate.dialect">org.hibernate.dialect.SQLServer2012Dialect</property>-->

		<!-- POSTGRESQL -->
		<!--<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQL9Dialect</property>-->
		
		<property name="hibernate.show_sql">true</property>
		<property name="hibernate.format_sql">true</property>
		<property name="hibernate.hbm2ddl.auto">update</property>
		<property name="hibernate.enable_lazy_load_no_trans">true</property>

		<!-- PARA ORACLE DESCOMENTAR E DEFINIR O NOME DO SCHEMA -->
		<!--<property name="hibernate.default_schema">NOME_DO_SCHEMA</property>-->

TODO:		
		<!-- popula inicial da base de dados -->
        <!--<property name="hibernate.hbm2ddl.import_files">/import.sql</property>-->


        <!-- cache -->        
        <property name="hibernate.cache.use_second_level_cache">true</property>
        <property name="hibernate.max_fetch_depth">1</property>
        <property name="hibernate.cache.use_minimal_puts">true</property>
        <property name="hibernate.use_second_level_cache">false</property>

		<!-- class mapping -->
		<mapping class="br.com.totvs.policy.IwPolitica" />
		<mapping class="br.com.totvs.action.IwAcao" />
		<mapping class="br.com.totvs.action.IwAcaoTipoPolitica" />
		<mapping class="br.com.totvs.var.IwVariavel" />
		<mapping class="br.com.totvs.var.IwVariavelPolitica" />
		<mapping class="br.com.totvs.parameter.IwParameter" />
		<mapping class="br.com.totvs.policy.IwCtrlEdicaoPolitica" />
		<mapping class="br.com.totvs.user.IwUsuarios" />
		<mapping class="br.com.totvs.profile.IwPerfil" />
		<mapping class="br.com.totvs.functionality.IwFuncionalidade" />
		<mapping class="br.com.totvs.policytype.IwTipoPolitica" />
		<mapping class="br.com.totvs.policy.IwPoliticaObjeto" />
		<mapping class="br.com.totvs.plugin.IwPlugin" />
		<mapping class="br.com.totvs.trace.IntTracePolitica" />
		<mapping class="br.com.totvs.policy.IntExecucaoPolitica" />
        <mapping class="br.com.totvs.fare.TarExecucaoAnalitica" />
		<mapping class="br.com.totvs.access.IntPersistenciaAcesso" />
		<mapping class="br.com.totvs.fare.TarParametros" />
		<mapping class="br.com.totvs.fare.TarLogArquivosTarifacao" />
		<mapping class="br.com.totvs.fare.TarExecucaoTotalHist" />
		<mapping class="br.com.totvs.fare.TarExecucaoTotal" />
		<mapping class="br.com.totvs.fare.TarExecucaoDiariaHist" />
		<mapping class="br.com.totvs.fare.TarExecucaoDiaria" />
		<mapping class="br.com.totvs.fare.TarExecucaoAnaliticaHist" />
		<mapping class="br.com.totvs.access.IntPersistenciaAcessoHist" />
		<mapping class="br.com.totvs.access.IntPersistenciaAcesso" />
		<mapping class="br.com.totvs.audit.IntAuditaAcesso" />
    </session-factory>

</hibernate-configuration>

Configurando Pool de Conexões - JNDI - TODO: REVER AS BASES DE DADOS, NOTADAMENTE POSTGRES E MSSQL SERVER
  • O pool de conexão deve ser habilitado usando a console.

  • Deve-se definir um banco de dados para o Intellector persistir suas informações. A definição do banco de dados é efetuada no arquivo standalone.xml na tag <datasources>. O nome do JNDI não pode ser alterado (jndi-name="java:/intellector/totvs).
    .
    • Exemplo datasource Postgres
      • Formato da conexão: <IP_SERVIDOR_BANCO_DE_DADOS>:<PORTA>/<BASE>

        Bloco de código
        languagexml
        titleExemplo datasource Postgres
                        <datasource jta="false" jndi-name="java:/intellector/totvs" pool-name="intellector/totvs" enabled="true" use-ccm="false">
                            <connection-url>jdbc:postgresql://127.0.0.1:5432/postgres</connection-url>
                            <driver-class>org.postgresql.Driver</driver-class>
                            <driver>postgresql-driver</driver>
                            <pool>
                                <min-pool-size>1</min-pool-size>
                                <max-pool-size>30</max-pool-size>
                            </pool>
                            <security>
                                <user-name>postgres</user-name>
                                <password>01totvs02tools03</password>
                            </security>
                            <validation>
                                <validate-on-match>false</validate-on-match>
                                <background-validation>false</background-validation>
                            </validation>
                            <statement>
                                <share-prepared-statements>false</share-prepared-statements>
                            </statement>
                        </datasource>
    • Exemplo datasource Oracle

      Bloco de código
      languagexml
      titleExemplo datasource Oracle
      <datasource jta="false" jndi-name="java:/intellector/totvs" pool-name="intellector/totvs" enabled="true" use-ccm="false">
                          <connection-url>jdbc:oracle:thin:@10.5.1.1:1521:Oralin</connection-url>
                          <driver-class>oracle.jdbc.OracleDriver</driver-class>
                          <driver>oracle-driver</driver>
                          <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
                          <pool>
                              <min-pool-size>5</min-pool-size>
                              <max-pool-size>20</max-pool-size>
                          </pool>
                          <security>
                              <user-name>Protheus12_teste</user-name>
                              <password>totvs@1</password>
                          </security>
                          <validation>
                              <validate-on-match>false</validate-on-match>
                              <background-validation>false</background-validation>
                          </validation>
                          <statement>
                              <share-prepared-statements>false</share-prepared-statements>
                          </statement>
      </datasource>
Apontamento dos drivers de conexão.

Informar todos os drivers/modules que foram utilizados dentro do arquivo standalone-full.xml

Bloco de código
languagexml
titleExemplo datasource Oracle
                <drivers>
                    <driver name="postgresql-driver" module="org.postgresql">
                        <driver-class>org.postgresql.Driver</driver-class>
                    </driver>
                    <driver name="oracle-driver" module="com.oracle.ojdbc6">
                        <driver-class>oracle.jdbc.OracleDriver</driver-class>
                    </driver>
                    <driver name="jtds-driver" module="net.sourceforge.jtds">
                        <driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class>
                    </driver>
                </drivers>
 
Informações

Se referem ao banco de dados onde serão armazenadas as informações de cache e auditoria. Os bancos homologados para essas funcionalidades foram Oracle 10g e 11, SQL Server 2008 e PostgreSQL 9.x.