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 passa-a-passo o processo de instalação do servidor TOTVS Intellector para 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 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 versões 6.x 64 bits
- Ubuntu Server versão 12.04 LTS 64 bits
JDK 6.0
Instale a Sun JDK 6.0 apropriada para sua plataforma. As JDKs estão disponíveis no seguinte site: http://java.sun.com/javase/downloads/index.jsp
A versão atual do TOTVS Intellector SOMENTE funciona com a Java SE Development Kit (JDK) 6 Update 30 ou superior; recomendamos usar superior ao Update 30. 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 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, mas você pode querer colocá-la 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 owner/group para o diretório do JBoss, pois o TOTVS Intellector vai precisar "escrever"nesse diretório.
JBoss
O TOTVS Intellector foi homologado nas versões JBoss 4.2.3-GA 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 Java JDK e o JBoss nos locais apropriados, faça um pequeno 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 http://localhost:9990/console de administração do application server. Se a console pedir autentiçã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 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. Sugiro 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 a versão do JBoss; 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 variável de ambiente -Duser.dir=seu_dir, pois isso impede o TOTVS Intellector de compilar as políticas!
#!/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 -Djboss.modules.system.pkgs=org.jboss.byteman -Djboss.server.default.config=standalone-full.xml" # atualize com seu IP ./standalone.sh -b YOUR_IP
No Windows:
rem alguns snipets para o bootstrap do TOTVS 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 -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 -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>.
ATENÇÃO: Lembrar de colocar o caminho onde deseja criar o datadir na propriedade "value".
<system-properties> <property name="intellector.datadir" value="COLOQUE_AQUI_O_CAMINHO_DO_DATADIR"/> </system-properties>
- 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.
<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
<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. Exemplo: para o Postgres aqui. Usar esse método alternativo é mais apropriado.
- 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:
<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>
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. É 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) --------- TOTVS 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 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.
#persistence.properties #Fri Feb 03 13:52:26 BRST 2012 ### Define se o TOTVS 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.JBossTransactionManagerLookup
Importante ressaltar que as variáveis:
hibernate.connection.datasource hibernate.dialect
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
Pronto!