Histórico da Página
...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #!/bin/bash# alguns snipets para o bootstrap do Intellectorexport JAVA_OPTS="-Xms512m -Xmx536m -XX:PermSize=128m -XX:MaxPermSize=128m -Xss128k -Dintellector.datadir=/home/jboss/intellector -Dpersistence.configuration=./persistence.properties"# exportar a variavel JBOSS_HOME, devido a compilacao de politicasexport JBOSS_HOME=/opt/jboss-4.2.3.GA# a library log4j deve estar incluido no classpath, inprescindivel na# compilacao de politicas; simplemente não compila as políticasexport JBOSS_CLASSPATH=$JBOSS_HOME/server/default/lib/log4j.jar# inicia o JBoss numa instancia e IP especificos./run.sh -c default --host 192.168.0.185 |
No Windows…
1 2 3 4 5 6 7 8 9 10 11 12 | rem alguns snipets para o bootstrap do Intellectorset JAVA_OPTS=-Xms512m -Xmx536m -XX:PermSize=128m -XX:MaxPermSize=128m -Xss128k -Dintellector.datadir=c:/java/intellector-filesrem exportar a variavel JBOSS_HOME, devido a compilacao de politicasset JBOSS_HOME=c:\java\jboss-4.2.3.GArem a library log4j deve estar incluido no classpath, inprescindivel narem compilacao de politicas; simplemente não compila as políticasset JBOSS_CLASSPATH=%JBOSS_HOME%\server\default\lib\log4j.jarrem inicia o JBoss numa instancia e IP especificos./run.bat -c default --host 192.168.0.185 |
...
Se tudo foi bem, e os passos foram seguidos, iniciar o JBoss é a parte trivial; no diretórioJBOSS_HOME/bin, inicie o batch, simplesmente digitando ./run-intellector.sh (linux/unix) ou run.bat no Windows; abaixo o início e fim do bootstrap do JBoss:
- iniciando…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | ========================================================================= JBoss Bootstrap Environment JBOSS_HOME: /opt/jboss-4.2.3.GA JAVA: /opt/jdk1.6.0_10/bin/java JAVA_OPTS: -Dprogram.name=run.sh -server -Xms512m -Xmx536m -XX:PermSize=128m -XX:MaxPermSize=128m -Xss128k -Dintellector.datadir=/home/jboss/intellector-files -Djava.net.preferIPv4Stack=true CLASSPATH: /opt/jboss-4.2.3.GA/server/default/lib/log4j.jar:/opt/jboss-4.2.3.GA/bin/run.jar:/opt/jdk1.6.0_10/lib/tools.jar=========================================================================17:25:25,676 INFO [Server] Starting JBoss (MX MicroKernel)...17:25:25,708 INFO [Server] Release ID: JBoss [Trinity] 4.2.3.GA (build: SVNTag=JBoss_4_2_3_GA date=200807181417)17:25:25,710 INFO [Server] Home Dir: /opt/jboss-4.2.3.GA17:25:25,710 INFO [Server] Home URL: file:/opt/jboss-4.2.3.GA/ |
pronto pra atender requisições…
1 2 3 4 5 | 17:26:05,961 INFO [intellector] -----------------------------------------------------------17:26:05,962 INFO [intellector] --------- Intellector configurado com sucesso... ----------17:26:05,962 INFO [intellector] -----------------------------------------------------------17:26:06,146 INFO [TomcatDeployer] deploy, ctxPath=/jmx-console, warUrl=.../deploy/jmx-console.war/17:26:07,318 INFO [Server] JBoss (MX MicroKernel) [4.2.3.GA (build: SVNTag=JBoss_4_2_3_GA date=200807181417)] Started in 21s:602ms |
...
Exemplo datasource Oracle…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <?xml version="1.0" encoding="UTF-8"?><datasources> <local-tx-datasource> <jndi-name>jdbc/OracleDS</jndi-name> <!-- 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 PostgreSQL 9.x
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?xml version="1.0" encoding="UTF-8"?><datasources> <no-tx-datasource> <jndi-name>intellector/totvs</jndi-name> <driver-class>org.postgresql.Driver</driver-class> <user-name>postgres</user-name> <password>esqueci_me_dela</password> <!-- The minimum connections in a pool/sub-pool. Pools are lazily constructed on first use --> <min-pool-size>1</min-pool-size> <!-- The maximum connections in a pool/sub-pool --> <max-pool-size>30</max-pool-size> </no-tx-datasource></datasources> |
...
No JBoss: Basta colocar na pasta deploy (ex : C:\java\jboss-4.2.3.GA\server\default\deploy\) do Servidor de Aplicação.
Baixe o Intellector-EAR aqui.
Configurando a “fila” do Intellector
No Servidor de aplicação na pasta “(ex : C:\java\jboss-4.2.3.GA\server\default\deploy\jms\jbossmq-destinations-service.xml)”, neste arquivo contém as configurações das filas que o servidor disponibiliza para as aplicações conversarem entre si.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <?xml version="1.0" encoding="UTF-8"?> ... <mbean code="org.jboss.mq.server.jmx.Queue" </mbean> <mbean code="org.jboss.mq.server.jmx.Queue" </mbean> <mbean code="org.jboss.mq.server.jmx.Queue" </mbean> <mbean code="org.jboss.mq.server.jmx.Queue" </mbean> <mbean code="org.jboss.mq.server.jmx.Queue" </mbean> <mbean code="org.jboss.mq.server.jmx.Queue" </mbean></server> |
Neste arquivo somente deve ser incluído a fila do Intelletor caso o Administrador do Servidor de Aplicação deseje que o Intellector não ocupe uma fila que poderá ser utilizada por outras aplicações. Neste caso deve-se incluir:
1 2 3 4 | <mbean code="org.jboss.mq.server.jmx.Queue" </mbean> |
...
O Intellector ultiliza 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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | #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íticasintellector.usesdatabase=true### Nome da fila utilizada pelo MDB (Não pode ser alterado)persistence.queue.name=queue/intellector### Connection Factorypersistence.queue.connection.factory=QueueConnectionFactory### Context Factorypersistence.jndi.context.factory=org.jboss.security.jndi.JndiLoginInitialContextFactory### Endereço da fila JMSpersistence.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### Credenciais de conexão na fila Usuário/Senhapersistence.jndi.security.principal=persistence.jndi.security.credentials=### Parâmetros do Hibernate do Cache e Auditoria ######################################################### Endereço JNDI da conexãohibernate.connection.datasource=java:intellector/totvs# dialetos suportados pelo Intellectorhibernate.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 exporthibernate.hbm2ddl.auto=update### Delimitador de comandos específico do Banco de dados utilizadohibernate.hbm2ddl.delimiter=;### cache#hibernate.cache.provider_class=org.hibernate.hibernate.NoCacheProviderhibernate.use_second_level_cache=falsehibernate.max_fetch_depth=1hibernate.cache.use_minimal_puts=truehibernate.use_query_cache=false### hibernate onlyhibernate.show_sql=truehibernate.format_sql=truehibernate.use_sql_comments=truehibernate.generate_statistics=truehibernate.jdbc.batch_versioned_data=truehibernate.session_factory_name=sessionFactoryhibernate.current_session_context_class=thread### connectionhibernate.connection.release_mode=after_transactionhibernate.connection.autocommit=false## transaction controllhibernate.transaction.flush_before_completion=falsehibernate.transaction.auto_close_session=false#hibernate.transaction.factory_class=org.hibernate.transaction.JDBCTransactionFactoryhibernate.transaction.factory_class=org.hibernate.transaction.JTATransactionFactoryhibernate.transaction.manager_lookup_class=org.hibernate.transaction.JBossTransactionManagerLookup |
Importante ressaltar que as variáveis:
1 2 | hibernate.connection.datasourcehibernate.dialect |
...
O intellector tem sua infraestrutura baseadas numa série de bibliotecas e frameworksdisponíveis no mercado, além das próprias. Essas bibliotecas devem ser colocadas no CLASSPATH do Servidor de Aplicação. Normalmente criamos um diretório dentro da instância nomeado intellector-lib, distribuído e disponível para download. No JBoss, para que elas fiquem disponíveis, consideramos que a pasta com as bibliotecas estejam em$JBOSS_HOME/server/[instance]/conf/jboss-service.xml, como abaixo
1 2 3 4 5 6 | <!-- Load all jars from the JBOSS_DIST/server/<config>/lib directory. This can be restricted to specific jars by specifying them in the archives attribute. --><classpath codebase="intellector-lib" archives="*"/> |
...