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 Intellector export 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 politicas export 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íticas export 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 Intellector set JAVA_OPTS=-Xms512m -Xmx536m -XX:PermSize=128m -XX:MaxPermSize=128m -Xss128k -Dintellector.datadir=c: /java/intellector-files rem exportar a variavel JBOSS_HOME, devido a compilacao de politicas set JBOSS_HOME=c:\java\jboss-4.2.3.GA rem a library log4j deve estar incluido no classpath, inprescindivel na rem compilacao de politicas; simplemente não compila as políticas set JBOSS_CLASSPATH=%JBOSS_HOME%\server\default\lib\log4j.jar rem 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.GA 17: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í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 ### Credenciais de conexão na fila Usuário/Senha persistence.jndi.security.principal= persistence.jndi.security.credentials= ### Parâmetros do Hibernate do Cache e Auditoria ### #################################################### ## Endereço JNDI da conexão hibernate.connection.datasource=java:intellector /totvs # dialetos suportados pelo Intellector 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 ### 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:
1 2 | hibernate.connection.datasource hibernate.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 = "*" /> |
...