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 passapasso-a-passo o processo de instalação do servidor TOTVS Intellector para o JBoss o JBoss Application Server versão 7.1.1.
- Para o manual de instalação no JBoss 4.2.3. clique aqui.
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 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 JBoss, Linux ou Windows e Sun JDK.
Pré-requisitos
Como um primeiro passo, verifique e tenha certeza de qual versão do Intellector você TOTVS Intellector você deseja instalar ou atualizar. Baseado na versão, você pode determinar a compatibilidade apropriada das versões de JBoss, 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;
- CentOS Cent OS versões 67.0 x 64 bits;
- Ubuntu Server versão 1214.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 dentro do firewall
- Caso esteja utilizando RedHat ou Centos desabilitar o selinux.
JDK 7.0
Instale a Sun JDK 61.0 7 64 bits apropriada para sua plataforma. As JDKs bibliotecas JDK estão disponíveis no seguinte site: http://java.sun.com/javase/downloads/index.jspA versão atual do Intellector SOMENTE funciona com a Java SE Development Kit (JDK) 6 Update 30 ou superior; recomendamos usar superior ao Update 30. O Intellector NÃO FUNCIONA com . Recomendamos usar versão Update 80. 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), você realmente precisa do é imprescindível ter a versão full-blown JDK.
Não se esqueça de configurar JAVAconfigurar JAVA_HOME no HOME no seu ambiente, mas, forneceremos um bootstrap pro para o TOTVS Intellector, onde essa variável é configurada, mas você pode querer colocá-la . É necessário realizar essa configuração, caso necessite poderá ser colocada em outro lugar, não se esqueça dela!. 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 de escrita para owner/group para o diretório do JBoss, pois o Intellector vai precisar escrever nesse TOTVS Intellector irá precisar "escrever" nesse diretório.
JBoss
OTOTVS Intellector foi testado homologado nas versões JBoss 4.2.3-GA, JBoss EAP 6.3 e JBoss 7.1.1. Você pode fazer o download do JBoss, para qualquer plataforma do seguinte site: http://www.jboss.org/jbossas/downloads/ .
Este é um bom lugar para tirar dúvidas e procurar dicas sobre o JBoss...: http://wiki.jboss.org/ .
Instalando...
Após instalar a instalar o Java JDK e o JBoss nos locais apropriados, faça um pequeno teste é necessário realizar um teste de verificação da instalação, subindo o JBoss ($JBOSS_HOME/bin/standalone.sh ou standalone.bat no Windows); para verificar se tudo foi bem, você estará apto a abrir a url . Para verificar a instalação, deverá clicar na url http://localhost:9990/console de de administração do application server. Se a console pedir autentiçãoautenticação, siga esse artigo para criar usuários que podem ter acesso ao container.
Evite instalar JDK e JBoss em diretórios que contenham espaços no nome, como "C:\Arquivo de Programas" do Windows . Conheça mais sobre JBoss Enterprise Application Platform.
Bootstrap para JBoss e TOTVS Intellector
Os scripts de bootstrap para oTOTVS Intellector são simples, precisando apenas de pequenas modificações no que concerne a utilização de memória e variáveis de ambientes. Sugiro usar 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 coloco será colocado a versão do JBoss; o , porém, o ideal é criar um link simbólico e usar somente /opt/jboss;
- Teremos mais abaixo, um arquivo de propriedades (persistence.properties) usadas pelo TOTVS Intellector e deve ficar em $JBOSS_HOME/bin;
- Não use a use a variável de ambiente -Duser.dir=seu_dir, pois isso impede o TOTVS Intellector de compilar as políticas!.
| Bloco de código | ||||
|---|---|---|---|---|
| ||||
#!/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/jboss7/standalone/deployments/*.failed # atualize com seu IP ./standalone.sh - |
...
Djboss.bind.address.management=YOUR_IP -b YOUR_IP |
No Windows:
| Bloco de código | ||||
|---|---|---|---|---|
| ||||
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 -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 variável intellector.datadir que deve apontar 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 nos diretórios abaixo de intellectorde Intellector.datadir.
- Considerando Considerando intellector.datadir=/home/intellector como diretório raiz:
- /home/intellector/acessos - diretório diretório de instalação dos plugins de acesso; o TOTVS Intellector -NG cria uma pasta para cada acesso;
- /home/intellector/key - diretório 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 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 persistências dos dados dos plugins instalados
- /home/intellector/dados/layouts layouts - persistências persistências de todos os layouts das políticas
- /home/intellector/dados/policy - persistências 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. |
| 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> |
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 JBoss.
- 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.
Criar módulo e registrar os drivers de banco. Como exemplo usaremos a criação de um módulo com o driver para 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> |
Criar módulo e registrar os drivers de banco. Como exemplo usaremos a criação de um módulo com o driver para MSSQLSever.
- Criar módulo $JBOSS_HOME\modules\net\sourceforge\jtds\main
- Baixar o jar jtds-1.2.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="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> |
Spring Framework
- 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
- Remover o conteúdo do diretório $JBOSS_HOME\modules\org\apache\cxf\impl\main.
- Baixar os jars da lista a seguir e colocar no diretório criado no item anterior
Criar o arquivo module.xml no diretório main e inserir o conteúdo abaixo:
Bloco de código language xml 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:
- 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
Se os passos foram seguidos e tudo correu bem, então é hora de iniciar o JBoss. No diretório $JBOSS_HOME/bin, inicie o batch simplesmente digitando ./run-intellector.sh (linux/unix) ou run.bat no Windows. Segue abaixo o início e o fim do bootstrap do 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:
| Bloco de código | ||||
|---|---|---|---|---|
| ||||
hibernate.connection.datasource
hibernate.dialect |
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 |
|---|
Instalando uma Licença para o Intellector
O 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 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. É boa prática excluir as pastas log, tmp e work, situadas abaixo da instância, neste caso: $JBOSS_HOME/standalone/log, tmp, etc. Se quiser, pode guardar os logs, tmp e wor, mas você não precisará deles.
Iniciando o JBoss
Se os passos foram seguidos e tudo correu bem, então é hora de iniciar o JBoss. No diretório $JBOSS_HOME/bin, inicie o batch simplesmente digitando ./run-intellector.sh (linux/unix) ou run.bat no Windows; abaixo o início e o fim do bootstrap do JBoss:
- Iniciando...
=========================================================================
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...
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)Configurações adicionais
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.
Configurando Pool de Conexões - JNDI
- O pool de conexão deve ser habilitado usando a console.
Arquivo persistence.properties
Para utilização da persistência de acessos no '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 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.
#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=QueueConnectionFactory
### Context Factory
persistence.jndi.context.factory=org.jboss.security.jndi.JndiLoginInitialContextFactory
### Endereço da fila JMS
persistence.jndi.address=jnp://192.168.18.129:1099
### Emails de aviso de erro na fila de tarifação, separados por virgula, de preferência sem espaço
[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
### auto schema export
hibernate.hbm2ddl.auto=update
### Delimitador de comandos específico do Banco de dados utilizado
hibernate.hbm2ddl.delimiter=;
### cache
#hibernate.cache.provider_class=org.hibernate.hibernate.NoCacheProvider
hibernate.use_second_level_cache=false
hibernate.max_fetch_depth=1
hibernate.cache.use_minimal_puts=true
hibernate.use_query_cache=false
### hibernate only
hibernate.show_sql=true
hibernate.format_sql=true
hibernate.use_sql_comments=true
hibernate.generate_statistics=true
hibernate.jdbc.batch_versioned_data=true
hibernate.session_factory_name=sessionFactory
hibernate.current_session_context_class=thread
### connection
hibernate.connection.release_mode=after_transaction
hibernate.connection.autocommit=false
## transaction controll
hibernate.transaction.flush_before_completion=false
hibernate.transaction.auto_close_session=false
#hibernate.transaction.factory_class=org.hibernate.transaction.JDBCTransactionFactory
hibernate.transaction.factory_class=org.hibernate.transaction.JTATransactionFactory
hibernate.transaction.manager_lookup_class=org.hibernate.transaction.JBossTransactionManagerLookupImportante ressaltar que as variáveis:
...
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 |
...
. |