Histórico da Página
...
Introdução
O TOTVS Intellector editor é uma solução web based para a gestão de processos decisórios, fornecendo uma interação fácil através de uma linguagem simples e práticaedição de políticas para o Intellector server, em substituição ao client/server em PowerBuilder. Este manual descreve passo-a-passo o processo de instalação do servidor TOTVS Intellector para o WildFly 9 .
...
servidor para o Wildfly 9 .0.2.
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 WildFly9 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 WildFlyWildfly, 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 JDKos itens abaixo.
- Red Hat Enterprise versões 6.x (Santiago) e 7.x (Maipo) 64 bits;
- Cent OS versões 7.x 64 bits;
- Ubuntu Server versão 14.04 LTS 64 bits.
JDK 1.
...
8
Instale a Sun JDK 1.7 8 64bits (último update) apropriada para sua plataforma. As bibliotecas JDK estão disponíveis no seguinte site: http://java.sun.com/javase/downloads/index.jsp
A versão atual do TOTVS Intellector para o JBoss EAP 6.3 funciona com Java SE Development Kit (JDK) 1.7.
Não é suficiente ter somente Não é suficiente ter somente o Java Runtime Environment (JRE), é imprescindível ter a versão fullversã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 e 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 JBoss, pois o TOTVS Intellector irá precisar "escrever" nesse diretório.
JBoss
O TOTVS Intellector foi homologado nas versões JBoss 4.2.3-GA, JBoss 7.1.1 e JBoss EAP 6.3.0.GA. Você pode fazer o download do JBoss para qualquer plataforma nos seguintes sites:
- JBoss EAP 6.3.0.GA (requer autenticação mesmo para a versão endereçada aos desenvolvedores): https://www.redhat.com/en/technologies/jboss-middleware/application-platform.
- Pacote JBoss 6.3.0.GA com as alterações já efetuadas: Jboss EAP 6.3.0.GA - Intellector.
Este é um bom lugar para tirar dúvidas e procurar dicas sobre o JBoss: http://wiki.jboss.org/ .
Instalando a versão EAP 6.3.0.GA
Após instalar o Java JDK e o JBoss nos locais apropriados, é 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 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 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. 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 JBoss, 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 variável de ambiente -Duser.dir=seu_dir, pois isso impede o TOTVS Intellector de compilar as políticas.
- Por questões de segurança em ambiente Linux NÃO pode ser usado o usuário root para executar o script de "startup" do JBoss. É indicada a criação de um usuário normal para executar o script.
Linux
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 -Dfile.encoding=ISO-8859-1 -Dpersistence.configuration=$JBOSS_HOME/bin/persistence.properties"
# remove indicativo de erros no deployment
rm -fv /opt/jboss-eap6/standalone/deployments/*.failed
# atualize com seu IP
./standalone.sh -Djboss.bind.address.management=<IP_MAQUINA> -b <IP_MAQUINA> |
Windows
Bloco de código | ||||
---|---|---|---|---|
| ||||
rem Limpeza dos diretórios temporários
rem =============ATENÇÃO==================
rem Se você deseja manter os arquivos de log remova as linhas rmdir .\standalone\log /S /Q e mkdir .\standalone\log
pushd "%CD%\.."
rmdir .\standalone\tmp /S /Q
rmdir .\standalone\log /S /Q
rmdir .\standalone\data /S /Q
mkdir .\standalone\tmp
mkdir .\standalone\log
mkdir .\standalone\data
popd
rem alguns snipets para o bootstrap do Intellector
set JAVA_OPTS=-XX:+TieredCompilation -Dprogram.name=standalone.bat -Xms512M -Xmx536M -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.bind.address.management=<IP_MAQUINA> -Djboss.server.default.config=standalone-full.xml -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n -Dfile.encoding=ISO-8859-1
rem inicia o JBoss numa instancia e IP especificos
standalone.bat -c standalone-full.xml -b <IP_MAQUINA> |
Á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 baixo uma árvore de diretórios criada pelo site:
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="<CAMINHO_DO_DATADIR>"/>
</system-properties> |
Nota | ||
---|---|---|
| ||
O arquivo de configuração de persistência (persistence.properties) fica armazenado no diretório $JBOSS_HOME/bin. Opcionalmente pode-se configurar o caminho do arquivo : <system-properties>
<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>
.......
<!-- Acrescentar à lista de filas que já existam as filas do Intellector -->
<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> |
Adicionar duas extensões no arquivo $JBOSS_HOME/standalone/standalone-full.xml.
Bloco de código language xml title $JBOSS_HOME\\standalone\\standalone-full.xml ... <extensions> <extension module="org.jboss.as.configadmin"/> <extension module="org.jboss.as.osgi"/> ... </extensions>
Módulos Globais - EE Subsystem - Global Modules
Adicionar módulos globais
org.apache.commons.collections
- org.apache.commons.codec
org.apache.commons.io
org.apache.commons.beanutils
org.apache.xerces
org.apache.santuario.xmlsec
- org.apache.commons.lang
Bloco de código | ||||
---|---|---|---|---|
| ||||
...
<subsystem xmlns="urn:jboss:domain:ee:1.2">
<global-modules>
<module name="org.apache.commons.collections" slot="main"/>
<module name="org.apache.commons.codec" slot="main"/>
<module name="org.apache.commons.io" slot="main"/>
<module name="org.apache.commons.beanutils" slot="main"/>
<module name="org.apache.xerces" slot="main"/>
<module name="org.apache.santuario.xmlsec" slot="main"/>
<module name="org.apache.commons.lang" slot="main"/>
</global-modules>
...
</subsystem>
... |
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.
- Passos:
- Crie o caminho $JBOSS_HOME\modules\system\layers\base\org\postgresql\main. Parte do caminho já deve existir, portanto basta criar o restante.
- Crie um arquivo com o nome $JBOSS_HOME\modules\system\layers\base\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.
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.
Spring Framework - versão 4.0.5.RELEASE
- Criar módulo $JBOSS_HOME\modules\system\layers\base\org\springframework\spring\main.
- Baixar os jars da lista a seguir e colocar no diretório criado no item anterior.
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ JBoss, Home of Professional Open Source.
~ Copyright 2011, 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.springframework.spring">
<resources>
<resource-root path="spring-jms-4.0.5.RELEASE.jar"/>
<resource-root path="spring-web-4.0.5.RELEASE.jar"/>
<resource-root path="spring-tx-4.0.5.RELEASE.jar"/>
<resource-root path="spring-context-4.0.5.RELEASE.jar"/>
<resource-root path="spring-aop-4.0.5.RELEASE.jar"/>
<resource-root path="spring-expression-4.0.5.RELEASE.jar"/>
<resource-root path="spring-beans-4.0.5.RELEASE.jar"/>
<resource-root path="spring-core-4.0.5.RELEASE.jar"/>
</resources>
<dependencies>
<module name="javax.api" />
<module name="javax.jms.api" />
<module name="javax.annotation.api" />
<module name="org.apache.commons.logging" />
<module name="org.jboss.vfs" />
</dependencies>
</module>
|
jTDS JDBC Driver - MSSQL Server
- Criar módulo $JBOSS_HOME\modules\system\layers\base\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:
Bloco de código | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="net.sourceforge.jtds">
<resources>
<resource-root path="jtds-1.2.7.jar"/>
<!-- Insert resources here -->
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module> |
Simple API For CSS
- Criar módulo $JBOSS_HOME\modules\system\layers\base\org\w3c\css\sac\main.
- Baixar o jar sac-1.3.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:
Bloco de código language xml title $JBOSS_HOME\\modules\\system\\layers\\base\\org\\w3c\\css\\sac\\main\\module.xml <?xml version="1.0" encoding="UTF-8"?> <!-- ~ JBoss, Home of Professional Open Source. ~ Copyright 2011, 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.w3c.css.sac"> <properties> <property name="jboss.api" value="private"/> </properties> <resources> <resource-root path="sac-1.3.jar"/> <!-- Insert resources here --> </resources> <dependencies> <module name="net.sourceforge.cssparser"/> </dependencies> </module>
CXF 2.6.4
- Remover o conteúdo do diretório $JBOSS_HOME\modules\system\layers\base\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\\system\\layers\\base\\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.
...
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 <subsystem xmlns="urn:jboss:domain:datasources:1.2"> <datasources> .... <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> <security> <user-name>postgres</user-name> <password>postgres</password> </security> <validation> <validate-on-match>false</validate-on-match> <background-validation>false</background-validation> </validation> <timeout> <set-tx-query-timeout>false</set-tx-query-timeout> <blocking-timeout-millis>0</blocking-timeout-millis> <idle-timeout-minutes>0</idle-timeout-minutes> <query-timeout>0</query-timeout> <use-try-lock>0</use-try-lock> <allocation-retry>0</allocation-retry> <allocation-retry-wait-millis>0</allocation-retry-wait-millis> </timeout> <statement> <share-prepared-statements>false</share-prepared-statements> </statement> </datasource> ..... <drivers> ..... <driver name="postgresql-driver" module="org.postgresql"> <driver-class>org.postgresql.Driver</driver-class> </driver> ..... </drivers> </datasources> </subsystem>
Exemplo datasource Oracle
Bloco de código language xml title Exemplo datasource Oracle <?xml version="1.0" encoding="UTF-8"?> <datasources> <local-tx-datasource> <jndi-name>jdbc/OracleDS</jndi-name> <connection-url>jdbc:oracle:thin:@192.168.0.149:1521:oralin</connection-url> <!-- Here are a couple of the possible OCI configurations. For more information, see [http://otn.oracle.com/docs/products/oracle9i/doc_library/release2/java.920/a96654/toc.htm] <connection-url>jdbc:oracle:oci:@youroracle-tns-name</connection-url> or <connection-url>jdbc:oracle:oci:@(description=(address=(host=youroraclehost)(protocol=tcp)(port=1521))(connect_data=(SERVICE_NAME=yourservicename)))</connection-url> Clearly, its better to have TNS set up properly. --> <driver-class>oracle.jdbc.driver.OracleDriver</driver-class> <user-name>cartao_h</user-name> <password>uma_senha_qualquer</password> <!-- Uses the pingDatabase method to check a connection is still valid before handing it out from the pool --> <!--valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker</valid-connection-checker-class-name--> <!-- Checks the Oracle error codes and messages for fatal errors --> <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name> <!-- sql to call when connection is created <new-connection-sql>some arbitrary sql</new-connection-sql> --> <!-- sql to call on an existing pooled connection when it is obtained from pool - the OracleValidConnectionChecker is prefered <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql> --> <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) --> <metadata> <type-mapping>Oracle10g</type-mapping> </metadata> </local-tx-datasource> </datasources>
- Exemplo datasource Postgres
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://127.0.0.1:1099
### Emails de aviso de erro na fila de tarifação, separados por virgula, de preferência sem espaço
user.emailsWarning=
#user.emailsWarning=<e-mail>@totvs.com.br, <e-mail>@totvs.com.br
### 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
# Informar o schema default quando for Oracle
#hibernate.default_schema=<NOME_DO_SCHEMA> |
Nota | ||
---|---|---|
| ||
Após criar o arquivo persistense.properties ajustar as seguines variáveis de acordo com a instalação:
Informar o dialeto de acordo com o DMBS utilizado: ### Parâmetros do Hibernate do Cache ### |
Informações |
---|
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. |
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, $JBOSS_HOME/standalone/tmp e $JBOSS_HOME/standalone/work poderão ser guardadas, mas é uma boa prática excluí-las.
Iniciando o JBoss
...
Wildfly9
O TOTVS Intellector Editor foi homologado na versão Wildfly 9.0.2. Um bundle pré-configurado fica disponibilizado, onde configurações mínimas são necessárias para ajustar ao ambiente final, como descrito abaixo.
Bootstrap para Wildfly9
Os scripts de bootstrap para o TOTVS Intellector editor estão na pasta padrão ($WILDFLY_HOME/bin/init.d), precisando apenas das modificações no que concerne a utilização via comando service do Linux.
- No iw-editor a variável de ambiente server.path deve ser declarada com o path (IP:PORTA) apontando para o Intellector Server. Essa variável de ambiente para a JDK pode ser definida usando a opção -D no startup do container ou colocando em algum arquivo de configuração (e.g. standalone.full.xml). Sem configurar essa variável, não haverá comunicação com o servidor.
- Ex.: -Dserver.path=http://<URL_SERVIDOR>:<PORTA>
Configurando pool de conexão e Hibernate
- Deve-se definir um banco de dados para o Intellector Editor 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 Oracle; url de conexão, ou service, deve ser alterado, user-name e password também; os demais são itens de tuning. Voce pode fazer isso também pela console do Wildfly.
Bloco de código language xml title Exemplo datasource Oracle <datasource jta="false" jndi-name="java:/intellector/totvs" pool-name="intellector/totvs" use-ccm="false"> <connection-url>jdbc:oracle:thin:@<IP_INSTANCIA_ORACLE>: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>USUARIO_BD</user-name> <password>SENHA_BD</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>
- Um último arquivo de configuração, relativo ao Hibernate é o $WILDFLY_HOME/bin/hibernate.cfg.xml; necessário alterar somente a tag <hibernate.default_schema> para o esquema usado no Oracle pelo Editor.
- Atenção! Se for usar o service do Linux para fazer o bootstrap do container, então uma variável de ambiente precisa ser configurada para informar o local do arquivo de configuração para o Hibernate; configure -Dpersistence.configuration=<path absoluto para o arquivo>, e.g. -Dpersistence.configuration=/home/intellector/widfly/../hibernate.cfg.xml - tem que ter o nome do arquivo.
Deployment do TOTVS Intellector Editor
Considerando que os itens de instalação foram seguidos, o próximo passo será o deployment (instalação) do pacote iw-editor-x.x.x.ear. Após o deploy, acessar o Editor em http://<IP>:8080/iw-front.
Iniciando o Wildfly9
Se os passos foram seguidos e tudo correu bem, então é hora de iniciar o Wildfly. No diretório $WILDFLY_HOME/bin/init.d existem os scripts de startup via service do SO, precisa adaptar ao contexto do ambiente (usuário, chmod, etc). Na pasta $WILDFLY_HOME/bin existe um script run-iw-editor.sh usado no desenvolvimento, que pode ser útil pra testar se a aplicação sobe, etc. Não use esse script em produção, exceto que ele seja adaptado para suportar service do SO.
- Iniciando
Bloco de código | ||||
---|---|---|---|---|
| ||||
=========================================================================
JBoss Bootstrap Environment
JBOSS_HOME: /opt/jboss7
JAVA: java
JAVA_OPTS: -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=3M -XX:-TraceClassUnloading -client -Dprogram.name=standalone.bat -XX:+TieredCompilation -Dprogram.name=standalone.bat -Xms512M -Xmx536M -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.bind.address.management=127.0.0.1 -Djboss.server.default.config=standalone-full.xml -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n -Dfile.encoding=ISO-8859-1
=========================================================================
....
09:54:44,876 DEBUG [org.jboss.logging] (main) Logging Provider: org.jboss.logging.JBossLogManagerProvider
09:54:44,891 INFO [org.jboss.msc] (main) JBoss MSC version 1.1.5.Final-redhat-1
09:54:45,000 INFO [org.jboss.as] (MSC service thread 1-7) JBAS015899: Iniciando JBoss EAP 6.3.0.GA (AS 7.4.0.Final-redhat-19)
09:54:56,177 DEBUG [org.jboss.as.config] (MSC service thread 1-7) Propriedades de sistema configurado:
...
|
- Pronto pra atender requisições.
Bloco de código | ||||
---|---|---|---|---|
| ||||
09:56:38,051 INFO [br.com.tools.intellector] (ServerService Thread Pool -- 72) -----------------------------------------------------------
09:56:38,051 INFO [br.com.tools.intellector] (ServerService Thread Pool -- 72) --------- Intellector configurado com sucesso... ----------
09:56:38,051 INFO [br.com.tools.intellector] (ServerService Thread Pool -- 72) -----------------------------------------------------------
...
09:56:38,191 INFO [org.jboss.as.server] (ServerService Thread Pool -- 32) JBAS018559: Implantado "intellector-ear-06.1137.001.22967.ear" (runtime-name: "intellector-ear-06.1137.001.22967.ear")
...
09:56:38,426 INFO [org.jboss.as] (Controller Boot Thread) JBAS015961: A interface do gerenciamento ouvindo no http://127.0.0.1:9990/management
09:56:38,426 INFO [org.jboss.as] (Controller Boot Thread) JBAS015951: O console de administração ouvindo no http://127.0.0.1:9990
09:56:38,442 INFO [org.jboss.as] (Controller Boot Thread) JBAS015874: JBoss EAP 6.3.0.GA (AS 7.4.0.Final-redhat-19) iniciado em 114205ms - Iniciado 661 de serviços 697 (os serviços 75 são lazy, passivos ou em demanda)
|
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. no caso específico do Editor que não se espera volumes grandes de edições simultâneas, a configuração default suporta facilmente 300 usuários editando políticas!