Histórico da Página
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 JBoss Application o WildFly Server versão 711.10.10.
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 JBoss 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 JBossWildFly, 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 JBossWildFlys, 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 JBoss WildFly dentro do firewall
- Caso esteja utilizando RedHat ou Centos desabilitar o selinux.
JDK
...
8.0
Instale a Sun JDK 1.7 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 80. O TOTVS Intellector NÃO FUNCIONA com JDK inferior ao Update 07 devido à API do JAXB.202.
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 JBossWildFly, pois o TOTVS Intellector irá precisar "escrever" nesse diretório.
...
WildFly
O TOTVS Intellector 9 foi homologado nas versões JBoss 4.2.3-GA, JBoss EAP 6.3 e JBoss 7.1.1. na versão WildFly 11.0.0. Você pode fazer o download do JBossWildFly, para qualquer plataforma do seguinte site: httphttps://www.jbosswildfly.org/jbossas/downloads/ .
Este é um bom lugar para tirar dúvidas e procurar dicas sobre o JBossWildFly: httphttps://wiki.jbosswildfly.org/gethelp/ .
Instalando...
Após instalar o Java JDK e o JBoss WildFly nos locais apropriados, é necessário realizar um teste de verificação da instalação, subindo o JBoss 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 JBoss WildFly em diretórios que contenham espaços no nome, como "C:\Arquivo de Programas" do Windows Conheça mais sobre JBoss Enterprise Application PlatformWildFly.
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 JBossWildFly, porém , o o ideal é criar um link simbólico e usar somente /opt/jboss;
- Teremos mais abaixo, um arquivo de propriedades (persistencehibernate.cfg.propertiesxml) 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 | ||||
---|---|---|---|---|
| ||||
#!/bin/bash export JAVA_HOME=<CAMINHO>/jdk1.8.0 export JBOSS_HOME=<CAMINHO>/wildfly11 # 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 -DpersistenceDfile.configuration=$JBOSS_HOME/bin/persistence.properties" encoding=UTF-8 -Djboss.bind.address=127.0.0.1 -Dpersistence.configuration=$JBOSS_HOME/bin/hibernate.cfg.xml -Dpolicy.saveTrace=true -Dsun.jnu.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 # remove indicativo de erros no deployment rm -fv /opt/jboss7wilfly11/standalone/deployments/*.failed # atualize com seu IP ./standalone.sh -Djboss.bind.address.management=YOUR_IP -b YOUR_IP |
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
rem alguns snipets para o bootstrap do Intellector set JAVA_OPTS=-HOME=<CAMINHO>\jdk1.8.0 set JBOSS_HOME=<CAMINHO>\wildfly-11.0.0.Final 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-full.xml rem inicia o JBoss numa instancia e IP especificos ./call standalone ./standalone.sh -Dfile.encoding=UTF-8 -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:
- /home/intellector/acessos - diretório de instalação dos plugins de acesso; o TOTVS Intellector cria uma pasta para cada acesso;
- /home/intellector/key - diretório para as licenças do TOTVS Intellector;
- /home/intellector/dados - diretório raiz para persistência de cadastros (usuários, perfis, plugins, auditorias, etc.)
- /home/intellector/dados/person - persistência de usuários cadastrados
- /home/intellector/dados/audit - persistência de auditoria de execução de políticas (intellector.auditpolicy=true/false)
- /home/intellector/dados/plugin - persistências dos dados dos plugins instalados
- /home/intellector/dados/layouts - persistências de todos os layouts das políticas
- /home/intellector/dados/policy - persistências de todos as políticas enviadas do servidor
- /home/intellector/politicas - onde serão mantidas as classes das políticas compiladas
- /home/intellector/politicas/classes
- /home/intellector/politicas/classes/br
- /home/intellector/politicas/classes/br/com
- /home/intellector/politicas/classes/br/com/tools
- /home/intellector/politicas/classes/br/com/tools/politicas
- /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 | ||||
---|---|---|---|---|
| ||||
<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:1.1">) adicionar o item abaixo para que warnings sobre utilização de classes privadas da API (as commons-*, por exemplo) sejam suprimidos. |
=127.0.0.1 -Dpersistence.configuration=JBOSS_HOME\bin\hibernate.cfg.xml -Dpolicy.saveTrace=true -Dsun.jnu.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8
rem inicia o WildFly numa instancia e IP especificos
./call standalone ./standalone.sh -Djboss.bind.address.management=YOUR_IP -b YOUR_IP |
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.
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 | ||||
---|---|---|---|---|
| ||||
<logger category="org.jboss.as.config">
<level name="ERROR"/>
</logger> |
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.
- Definições:
- Passos:
- Crie o caminho $JBOSS_HOME\modules\org\postgresql\main. Parte do caminho já deve existir, portanto basta criar o restante.
- Crie um arquivo com o nome $JBOSS_HOME\modules\org\postgresql\main\module.xml com o conteúdo abaixo. Repare que o conteúdo do atributo "path" refere-se ao nome do jar do driver que será usado.
- Passos:
Bloco de código | ||||
---|---|---|---|---|
| ||||
<?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.
Bloco de código | ||||
---|---|---|---|---|
| ||||
<logger category="org.jboss.as.dependency.private">
<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 | ||||
---|---|---|---|---|
| ||||
<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> |
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 JBoss.
- Definições:
Oracle.
- Criar módulo $JBOSS_HOME\modules\com\oracle\ojdbc6\main
- Baixar o jar ojdbc6-11.2.0.3.0.jar e colocar no diretório criado no item anterior.
- Criar o arquivo module.xml no diretório main e inserir o conteúdo abaixo: $JBOSS_HOME\\modules\com\oracle\ojdbc6\main\module.xml
Bloco de código | ||||
---|---|---|---|---|
|
...
| |
<?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> |
- 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
OracleMSSQLSever.
- Criar módulo $JBOSS_HOME\modules\comnet\oraclesourceforge\ojdbc6jtds\main
- Baixar o jar ojdbc6jtds-111.2.0.3.0.jar e 7jar e colocar no diretório criado no item anterior.
- Criar o arquivo module.xml no diretório main e inserir o conteúdo abaixo: $JBOSS_HOME\\modules\com\oracle\ojdbc6\main\module.xml
Bloco de código | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.1" name="comnet.oraclesourceforge.ojdbc6jtds"> <resources> <resource-root path="ojdbc6jtds-111.2.0.3.0.jar7.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 | ||||
---|---|---|---|---|
| ||||
<?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> |
...
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:
- Copiar intellector-ear.ear dentro do diretório $JBOSS_HOME/standalone/deployments;
- 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
Se os passos foram seguidos e tudo correu bem, então é hora de iniciar o WildFly. No diretório $JBOSS_HOME/bin, inicie o batch simplesmente digitando ./run-intellector.sh (linux/unix) ou run-intellector.bat no Windows. Segue abaixo o início e o fim do bootstrap do WildFly:
- Iniciando
Bloco de código | ||||
---|---|---|---|---|
| ||||
===============================================================================
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 | ||||
---|---|---|---|---|
| ||||
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 hibernate,cfg,xml
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 | ||||
---|---|---|---|---|
| ||||
==============================================================
<?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 -- |
...
- Criar módulo para o org.springframework.spring (usar instalador do JBossWS CXF). E, depois adicionar a biblioteca spring-web (http://mvnrepository.com/artifact/org.springframework/spring-web manualmente, ele não vem com o instalador) e atualizar o arquivo $JBOSS_HOME/modules/org/springframework/spring/main/module.xml como abaixo:
Bloco de código | ||||
---|---|---|---|---|
| ||||
<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
Criar o arquivo module.xml no diretório main e inserir o conteúdo abaixo:
language | xml |
---|---|
title | $JBOSS_HOME\\modules\\org\\apache\\cxf\\impl\\main\\module.xml |
>
|
<property |
name=" |
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:
- Enterprise - totalmente livre para execução de qualquer política sem data de expiração;
- Limited - determinada por um tipo específico e uma data de expiração ou não;
- Trial - tipos de políticas livres e com uma data de expiração.
Deployment do TOTVS Intellector no JBoss
Considerando que o item instalando o JBoss foi seguido, o próximo passo será o deployment (instalação) do pacote intellector-ear.ear em uma instância do JBoss.
- Sigamos os passos:
- Copiar intellector-ear.ear dentro do diretório $JBOSS_HOME/standalone/deployments;
- Se for uma atualização de versão, simplesmente remova o intellector-ear.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 JBoss
...
- Iniciando
Bloco de código | ||||
---|---|---|---|---|
| ||||
=========================================================================
JBoss Bootstrap Environment
JBOSS_HOME: /opt/jboss7
JAVA: java
JAVA_OPTS: -server -XX:+TieredCompilation -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Djboss.server.default.config=standalone.xml
=========================================================================
11:52:02,131 INFO [org.jboss.modules] JBoss Modules version 1.1.1.GA
11:52:03,376 INFO [org.jboss.msc] JBoss MSC version 1.0.2.GA
11:52:03,458 INFO [org.jboss.as] JBAS015899: JBoss AS 7.1.1.Final "Brontes" starting
11:52:07,565 INFO [org.jboss.as.server] JBAS015888: Creating http management service using socket-binding (management-http) |
- Pronto pra atender requisições.
Bloco de código | ||||
---|---|---|---|---|
| ||||
11:52:24,116 INFO [br.com.tools.intellector] (MSC service thread 1-2) -----------------------------------------------------------
11:52:24,117 INFO [br.com.tools.intellector] (MSC service thread 1-2) --------- Intellector configurado com sucesso... ----------
11:52:24,117 INFO [br.com.tools.intellector] (MSC service thread 1-2) -----------------------------------------------------------
11:52:24,154 INFO [org.jboss.web] (MSC service thread 1-2) JBAS018210: Registering web context: /intellector
11:52:24,156 INFO [org.jboss.as] (MSC service thread 1-2) JBAS015951: Admin console listening on http://127.0.0.1:9990
11:52:24,157 ERROR [org.jboss.as] (MSC service thread 1-2) JBAS015875: JBoss AS 7.1.1.Final "Brontes" started (with errors) in 23695ms - Started 537 of 625 services (6 services failed or missing dependencies, 80 services are 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 persistence.properties 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 | ||||
---|---|---|---|---|
| ||||
#persistence.properties
#Fri Feb 03 13:52:26 BRST 2012
### Define se o intellector utilizará banco de dados para persistência dos dados de acessos e políticas
intellector.usesdatabase=true
### Nome da fila utilizada pelo MDB (Não pode ser alterado)
persistence.queue.name=queue/intellector
### Connection Factory
persistence.queue.connection.factory=/ConnectionFactory
### Endereço da fila JMS
persistence.jndi.address=jnp://192.168.0.113:1099
### Emails de aviso de erro na fila de tarifação, separados por virgula, de preferência sem espaço
user.emailsWarning=
#[email protected], [email protected]
### Credenciais de conexão na fila Usuário/Senha
persistence.jndi.security.principal=
persistence.jndi.security.credentials=
### Parâmetros do Hibernate do Cache ###
########################################
## Endereço JNDI da conexão
hibernate.connection.datasource=java:/intellector/totvs
#hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
hibernate.dialect=org.hibernate.dialect.SQLServer2008Dialect
#hibernate.dialect=br.com.totvs.persistence.dialectfix.Oracle9iDialectFix
#hibernate.dialect=br.com.totvs.persistence.dialectfix.Oracle10gDialectFix
## auto schema export
hibernate.hbm2ddl.auto=update
# cache
#hibernate.cache.provider_class=org.hibernate.hibernate.NoCacheProvider
hibernate.cache.use_second_level_cache=true
hibernate.max_fetch_depth=1
hibernate.cache.use_minimal_puts=true
## Delimitador de comandos específico do Banco de dados utilizado
hibernate.hbm2ddl.delimiter=;
#hibernate.session_factory_name=TSessionFactory
hibernate.show_sql=true
hibernate.format_sql=true
hibernate.use_sql_comments=true
hibernate.generate_statistics=true
hibernate.jdbc.batch_versioned_data=true
hibernate.use_second_level_cache=false
hibernate.use_query_cache=false
hibernate.connection.release_mode=after_transaction
hibernate.connection.autocommit=false
hibernate.session_factory_name=sessionFactory
hibernate.current_session_context_class=thread
# transaction controll
hibernate.transaction.flush_before_completion=false
hibernate.transaction.auto_close_session=false
# para o caso da base Oracle 11g, descomentar a linha abaixo
#hibernate.default_schema=<NOME_DO_SCHEMA> |
- Importante ressaltar que as variáveis:
language | html/xml |
---|---|
linenumbers | true |
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>-->
<!-- 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
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-full.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 language xml title Exemplo 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 language xml title Exemplo 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>
- Exemplo datasource Postgres
Apontamento dos drivers de conexão.
Informar todos os drivers/modules que foram utilizados dentro do arquivo standalone-full.xml
Bloco de código | ||||
---|---|---|---|---|
| ||||
<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 1112c, SQL Server 2008 e PostgreSQL 9.x. |