desabilite a checagem para compilacao das JSPs e desabilite a listagem de recursos estaticos:<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false"> <configuration> <static-resources listings="false" sendfile="49152" file-encoding="utf-8" read-only="true" webdav="false" max-depth="3" disabled="false" /> <jsp-configuration development="false" check-interval="1" disabled="false" display-source-fragment="true" dump-smap="false" error-on-use-bean-invalid-class-attribute="false" generate-strings-as-char-arrays="false" java-encoding="UTF8" keep-generated="true" mapped-file="true" modification-test-interval="4" recompile-on-fail="false" scratch-dir="" smap="true" source-vm="1.6" tag-pooling="true" target-vm="1.6" trim-spaces="false" x-powered-by="true"/> </configuration>- Data Source: estime e configure a quantidade de conexoes que a aplicacao tera. A maioria das aplicacoes usam OpenSessionInView, ou seja, cada request utiliza somente uma conexao de banco, pensando assim, podemos estimar o tamanho do pool, com o mesmo tamanho do thread pool, assim para 200 usuarios concorrentes, teriamos:<datasources> <datasource jndi-name="java:jboss/datasources/ExemploDS" pool-name="ExemploDS" enabled="true" use-java-context="true" use-ccm="false"> <connection-url>....</connection-url> <driver>....</driver> <pool> <min-pool-size>100</min-pool-size> <max-pool-size>200</max-pool-size> <prefill>true</prefill> <use-strict-min>false</use-strict-min> </pool> <statement> <track-statements>true</track-statements> <prepared-statement-cache-size>50</prepared-statement-cache-size> <share-prepared-statements /> </statement> <timeout> <blocking-timeout-millis>10000</blocking-timeout-millis> <idle-timeout-minutes>2</idle-timeout-minutes> <set-tx-query-timeout /> <query-timeout>30</query-timeout> <use-try-lock>30</use-try-lock> </timeout>Lembre-se de verificar se o banco suporta essa quantidade de conexoes. Para Oracle, voce pode utilizar o select abaixo:select name, value from v$parameterwhere name in ('processes', 'sessions', 'transactions');- Validacao da conexao: habilite tambem as validacoes de conexao. Isso evita problemas na aplicacao devido oscilacoes na rede. Abaixo seguem alguns exemplos:Oracle<validation> <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/> <stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"/> <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"/></validation>Postgresql:<validation> <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker" /> <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter" /></validation>Aqui temos a listagem completa para cada banco de dados:http://www.ironjacamar.org/doc/userguide/1.0/en-US/html/ex_datasources.htmlConfiguracoes de Seguranca - Usuario jboss-as: Crie um usuario especifico para o efetuar o start e shutdown do JBoss. Voce pode utilizar os arquivos que vem dentro do jboss para configurar isso no linux:$JBOSS_HOME/bin/init.d/ - jboss-as.conf - jboss-as-standalone.shCopie o jboss-as.conf para /etc/jboss-as/cp $JBOSS_HOME/bin/init.d/jboss-as.conf /etc/jboss-as/. Copie o jboss-as-standalone.sh para dentro de /etc/init.d/cp $JBOSS_HOME/bin/init.d/jboss-as-standalone.sh /etc/init.d/jboss-asExecute o chkconfig para adiciona-lo a configuracao:chkconfig --add jboss-as - DataSource: usuario e senha: nao deixe exposto o usuario e senha da conexao de banco no standalone.xml. Voce pode utilizar um security-domain com o SecureIdentity, que e um login-module que vem dentro do picketbox, que e a biblioteca de seguranca do JBoss, e gerar uma senha criptografada.Aqui voce tem mais informacoes sobre o picketbox: http://picketbox.jboss.org/Crie o security-domain: <subsystem xmlns="urn:jboss:domain:security:1.1"> <security-domains> <security-domain name="ExemploDSSecurity" cache-type="default"> <authentication> <login-module code="SecureIdentity" flag="required"> <module-option name="username" value="dbuser"/> <module-option name="password" value="2afa5c8be6f4b2ec"/> </login-module> </authentication> </security-domain>Altere o pool para usar o security-domain criado:<subsystem xmlns="urn:jboss:domain:datasources:1.1"> <datasources> <datasource jndi-name="java:jboss/datasources/ExemploDS" pool-name="ExemploDS" enabled="true" use-java-context="true" use-ccm="false"> <connection-url>.....</connection-url> <driver>...</driver> <security> <security-domain>ExemploDSSecurity</security-domain> </security>Para gerar a senha, crie o seguinte script:$JBOSS_HOME/bin/makepasswd.sh----------#!/bin/bashread -s -p "password: " PASS## Build ClassPath for commandCP=CP=${CP}:$JBOSS_HOME/modules/org/picketbox/main/picketbox-4.0.7.Final.jarCP=${CP}:$JBOSS_HOME/modules/org/jboss/logging/main/jboss-logging-3.1.0.GA.jarecho ""java -classpath ${CP} org.picketbox.datasource.security.SecureIdentityLoginModule ${PASS}------------De a permissao necessaria:chmod +x makepasswd.shExecute e ele ira gerar uma senha que voce ira substituir no parametro do modulo: <module-option name="password" value="2afa5c8be6f4b2ec"/>Configuracoes de Monitoramento - JConsole: o JBoss tem um protocolo especifico para conexao via JMX, entao para conectar via jconsole, voce precisa utilizar os pacotes que vem dentro do JBoss.Em outra maquina com o JBoss, utilize o script abaixo para inicializar o jconsole: $JBOSS_HOME/bin/jconsole.shUtilize a seguinte URL:service:jmx:remoting-jmx://{host_name}:{port}A porta padrao para do JBoss e a 9999.Em outro momento, iremos explicar como utilizar ferramentas especificas como JProfiler, Zorka e Zabbix, AppDynamics para efetuar um monitoramento mais efetivo.Aqui tem mais informacoes de como utilizar o jconsole:https://developer.jboss.org/wiki/UsingJconsoleToConnectToJMXOnAS7 - JBoss Management: para habilitar o bind das interfaces de rede da aplicacao de gerenciamento do JBoss para todos IPs disponiveis na maquina, voce pode alterar a seguinte configuracao: <interface name="management"> <any-address/> </interface> <interface