JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3
1. JBoss
Professional Open Source
JBoss AS
Instalación, Configuración e
Implementación
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
3. Jboss AS 5.1.0 Instalación
Para configurar varias instancias de JBoss en una misma
máquina, podemos utilizar en la versión AS 5 la opción de utilizar el
servicio ServiceBindingManager ó también llamado “te-reconfigurotodos-los-puertos-en-un-solo-archivo”
Este servicio viene activado por default en los
AS 5 o para activar manualmente en las
versiones 4.X.
En la serie 5.X viene activado por default y se configura
desde el archivo
server/nombre_de_instancia/conf/bootstrap/bindings.xml
La diferencia con respecto a las configuraciones que
venian con el AS 4.X se basan en que no se configura
ningún puerto, sino tan solo un parámetro donde se
indica cuanto se tiene que sumar al puerto estandard
Para establecer que configuración se quiere
utilizar se debe especificar el parámetro,
1.<parameter>${jboss.service.binding.set:ports-default}</parameter> v
donde ports-default es el nombre de una configuración, en el constructor del bean
ServiceBindingManager dentro del archivo bindings.xml
19 Octubre 2009
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
Curso JBoss JB366
4. Jboss AS 5.1.0 Instalación
Backup instalación…
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
5. Jboss AS 5.1.0 Instalación
Multiples instancias Jboss
3 Tipos de escenarios
Escenario 1: Nodos en máquinas separadas
Escenario 2: Dos nodos en un único servidor, Multitarjeta
Escenario 3: Dos nodos en un único servidor, No Multitarjeta
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
6. Jboss AS 5.1.0 Instalación
Multiples instancias JBoss
Escenario 1: Nodos en máquinas separadas
Este es el escenario de producción más común. Suponga que las máquinas se denominan "nodo1" y
“nodo 2", mientras que nodo1 tiene una dirección IP 192.168.0.101 y nodo2 tiene una dirección de
192.168.0.102. Supongamos que la "ServerPeerID" para nodo1 es 1 y para nodo2 es 2. Supongamos
que en cada máquina de JBoss se instala en c:JBoss.
El primer nodo1, arranca JBoss:
run -c all -g DocsPartition -u 239.255.100.100 -b 192.168.0.101 -Djboss.messaging.ServerPeerID=1
El segundo nodo2:
run -c all -g DocsPartition -u 239.255.100.100 -b 192.168.0.102 -Djboss.messaging.ServerPeerID=2
Valores:
• -c nos permite arrancar en modo ‘all’
• -g indica el nombre del cluster
• -u indica la dirección ‘multicast’ que se utilizara para la comunicación interna del cluster
• -b indica la dirección IP que tomaremos del servidor
• -D indica el ID único de la propiedad del sistema ‘jboss.messaging.ServerPeerID’
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
7. Jboss AS 5.1.0 Instalación
Multiples instancias JBoss
Escenario 2: Dos nodos en un único servidor, Multitarjeta
Este es el escenario de DESARROLLO más común. Se utiliza en producción en combinación con el
escenario 1. Supongamos utilizan las mismas direcciones y ServerPeerIDs que el escenario 1. Debemos
copiar el directorio ‘all’ creando dos directorios nuevos: nodo1 y nodo2
El primer nodo1, arranca JBoss:
run -c nodo1 -g DocsPartition -u 239.255.100.100 -b 192.168.0.101 -Djboss.messaging.ServerPeerID=1
El segundo nodo2:
run -c nodo2 -g DocsPartition -u 239.255.100.100 -b 192.168.0.102 -Djboss.messaging.ServerPeerID=2
Valores:
• -c nos permite arrancar en modo ‘nodoX’
• -g indica el nombre del cluster
• -u indica la dirección ‘multicast’ que se utilizara para la comunicación interna del cluster
• -b indica la dirección IP que tomaremos del servidor
• -D indica el ID único de la propiedad del sistema ‘jboss.messaging.ServerPeerID’
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
8. Jboss AS 5.1.0 Instalación
Multiples instancias JBoss
Escenario 3: Dos nodos en un único servidor, No Multitarjeta
Esto es similar a la hipótesis del escenario 2, pero aquí la máquina tiene una única dirección IP disponible.
Dos procesos no pueden llamarse en la misma dirección y puerto, así que tendremos que decirle a JBoss que
utilice puertos diferentes para los dos casos. Esto puede hacerse mediante la configuración del servicio
ServiceBindingManager estableciendo la propiedad del sistema jboss.service.binding.set.
El primer nodo1, arranca JBoss:
run -c all -g DocsPartition -u 239.255.100.100 -b 192.168.0.101 -Djboss.messaging.ServerPeerID=1
-Djboss.service.binding.set=ports-default
El segundo nodo2:
run -c all -g DocsPartition -u 239.255.100.100 -b 192.168.0.102 -Djboss.messaging.ServerPeerID=2
-Djboss.service.binding.set=ports-01
Valores:
• -c nos permite arrancar en modo ‘all’
• -g indica el nombre del cluster
• -u indica la dirección ‘multicast’ que se utilizara para la comunicación interna del cluster
• -b indica la dirección IP que tomaremos del servidor
• -D indica el ID único de la propiedad del sistema ‘jboss.messaging.ServerPeerID’
• -D indica el – ECM /CMS Manager
19 Octubre 2009
César Pajaresvalor incremental (100) del puerto de la propiedad del sistema ‘jboss.service.binding.set’ con valor
ports-01
Curso JBoss JB366
cesarpajares@gmail.com
9. Jboss AS 5.1.0 Instalación
Apache y JBOSS AS (puerto 80)
Para seguir con los ejemplos de clusterización nos vamos a centrar en el uso
de un cluster en un entorno web para poder crear la siguiente arquitectura:
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
10. Jboss AS 5.1.0 Instalación
Apache y JBOSS AS (puerto 80)
Esta estructura es interesante cuando queremos tener en un entorno web múltiples
instancias de JBOSS sobre la misma url.
En la figura se observa que todas las peticiones de los usuarios de internet
son procesadas por Apache y este las distribuye sobre los servidores
de aplicaciones que a su vez se encargan de ejecutar la lógica de negocio
de la aplicación y devuelven (o no) las respuesta adecuada. Esta arquitectura es una de las
más utilizadas.
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
11. Jboss AS 5.1.0 Instalación
Apache y JBOSS AS (puerto 80)
Descargar Apache 2.2
Para seguir con el montaje necesitamos un servidor Apache 2.2,
Existen dos maneras de montar el proxy apache sobre cada servidor de aplicaciones
del cluster:
• Usando mod_jk 1.2.x
• Usando mod_proxy con JBoss y Apache2.2.x
Configurar mod_proxy en httpd.conf
Por la sencillez, robustez y estabilidad vamos a escoger la opción 2. Y empezamos
habilitando el módulo correspondiente en la configuración del apache, para ello:
Editamos el fichero /etc/httpd/conf/httpd.conf
Con esto es suficiente para cargar el balanceador http en el apache.
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
12. Jboss AS 5.1.0 Instalación
Apache y JBOSS AS (puerto 80)
Configurar mod_proxy en httpd.conf
Es siguiente paso es registrar nuestro cluster de dos nodos en el apache editando:
Editamos el fichero /etc/httpd/conf/httpd.conf
y pegando el siguiente código al final del fichero
##### balancer://jbosscluster es el nombre del balanceador apache sobre nuestro
cluster node1 y node2
<Proxy balancer://jbosscluster>
# cluster member 1
BalancerMember http://10.0.0.1:8080 route=node1
# cluster member 2
BalancerMember http://10.0.0.2:8080 route=node2
ProxySet stickysession=JSESSIONID|jsessionid
ProxySet lbmethod=byrequests
ProxySet nofailover=Off
</Proxy>
<Location /balancer-manager>
SetHandler balancer-manager
Order deny,allow
Deny from all
## Introducir las IPs permitidas separadas por espacios para monitorizar el
balanceador.
Allow from 127.0.0.1
</Location>
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
En la documentación oficial de
apache se puede encontrar la
definición de todos los
parametros que acepta el
balanceador (Apache Module
mod_proxy)
19 Octubre 2009
Curso JBoss JB366
13. Jboss AS 5.1.0 Instalación
Apache y JBOSS AS (puerto 80)
Habilitar un virtual host (no publicar aplicaciones en el context-root)
Por defecto el servidor de aplicaciones JBOSS presenta diferentes aplicaciones web
para configuración, monitoreo, servicios, etc. con lo que tenemos que asegurarnos de
no clusterizar/balancear estos servicios. Para ello vamos a crear un virtual-host en
apache sobre el dominio donde montemos nuestra aplicación web.
Nuestra aplicación de ejemplo se publicará bajo el dominio
www.dominio.com, escogemos como contexto de aplicación un nombre que no esté
reservado por el servidor de aplicaciones, por ejemplo /dominioWeb.
Con los nombres anteriores y sin un apache y sin
un cluster el acceso a la aplicación sería con:
http://www.dominio.com:8080/dominio/
En el caso de nuestro cluster será:
http://192.168.2.104:8080/dominioWeb/
http://192.168.2.105:8080/dominioWeb/
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
14. Jboss AS 5.1.0 Instalación
Estructura del Servidor
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
15. Jboss AS 5.1.0 Instalación
Getting Started
The JBoss Server - A Quick Tour
Estructura del Servidor
¿que vamos a explorar?
• Exploraramos la estructura de directorios
• Ubicaciones de los archivos de configuración
• Ubicación de los ficheros de registro
• Ubicación de los archivos de despliegue
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
16. Jboss AS 5.1.0 Instalación
Getting Started
The JBoss Server - A Quick Tour
Estructura del Servidor
+ bin/ - contains start scripts and run.jar
+ client/ - client jars
+ docs/ - docs, schemas/dtds, examples
+ lib/ - core bootstrap jars, different with the introduction of the microcontainer and breakup of jboss-common.
+ server/ - contains the same server configuration directories.
+ default/ configuration
+ conf/ - contains server configuration files used when starting the
server. changes in here are detected on restarting your server.
# bootstrap-beans.xml - new mc kernel bootstrap configuration
# jax-ws-catalog.xml - oasis catalog driven schema/dtd namespace configuration
# jbossjta-properties.xml - new JBossTS properties
# jboss-service.xml - legacy static mbeans for compatibility
# jndi.properties - the same jndi props
# log4j.xml - the same log4j config
# login-config.xml - the same jaas login config
# props/ - the same default jaas login properties files
# standardjaws.xml - obsolete cmp config
# standardjbosscmp-jdbc.xml - the same cmp2 config
# standardjboss.xml - the same ejb2 config # xmdesc/ - legacy xmbean descriptors
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
17. Jboss AS 5.1.0 Instalación
Getting Started
The JBoss Server - A Quick Tour
Estructura del Servidor
+ data/ - contains hypersonic local database, transactions, xmbean configuration files.
+ deploy/ - this is where services and your java applications are deployed. You can deploy
an application on the JBoss application server by simply copying the
application's (WAR, EAR or JAR files) into this directory.
+ deployers/ - new vdf deployers
# bsh-deployer - beanshell deployer
# ejb3.deployer - ejb3 deployers
# jboss-aop-jboss5.deployer - aspect deployer
# jboss-jca.deployer - JCA deployers
# jbossweb.deployer - war deployers
# jbossws.deployer - web services deployers
# ear-deployer-beans.xml - ear deployers
# ejb-deployer-beans.xml - ejb2.x deployers
# metadata-beans.xml - metadata handlers
# security-deployer-beans.xml - security deployers
# profileservice-beans.xml.bak - an example of the repository based profile
service
+ lib/ - the JBoss AS static library files shared by the services and applications in the
respective configuration.
19 Octubre 2009
César Pajares – ECM /CMS Manager
Curso JBoss JB366
cesarpajares@gmail.com
18. Jboss AS 5.1.0 Instalación
Archivos de Configuración
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
19. Jboss AS 5.1.0 Instalación
Getting Started
Archivos de configuración
Fundamentalmente, la arquitectura de JBoss consiste en el microcontainer, beans
de arranque de carga del microcontainer, una colección de implantadores
(deployers) para la carga de diferentes tipos de implementación, y varios McBean
(jboss-beans.xml) y Bean de implementación (jboss-service.xml).
Esto hace que sea fácil de montar diferentes configuraciones y nos da la flexibilidad
de adaptar JBoss para satisfacer nuestros requisitos.
• No es necesario cargar todos los componentes que NO sean necesarios
• Podemos reducir el tiempo de arranque del servidor
• Podemos integrar servicios adicionales escribiendo nuestros propios Mbeans.
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
20. Jboss AS 5.1.0 Instalación
Getting Started
Archivos de configuración
JBoss esta compuesto por diversos archivos de configuración los cuales se
encuentran bajo el directorio /server/<modalidad>/conf de la instalación de
JBoss, este directorio a su vez puede contener varios subdirectorios. Nos basaremos en
esta sección en el contenido del directorio default.
A continuación se mencionan los parámetros de los principales archivos para la
modalidad default, lo cual equivale al contenido del directorio /server/default/conf
bootstrap.xml
Este es el fichero que define que implantaciones adicionales del microcontainer
se cargan como parte de la fase de arranque.
bootstrap/*
Este directorio contiene los descriptores de arranque del microcontainer a los que se hace
referencia en el archivo bootstrap.xml.
jboss-service.xml
El arranque de servicios de
Archivo que contiene los parámetros principales del Servidor JBoss; este
este fichero será migrado a
archivo XML define los valores para la variable CLASSPATH, el puerto para el
las implementaciones de
servidor JNDI y el directorio donde serán colocados los distintos EJB's para ser arranque (bootstrap) en un
ejecutados, entre otros parámetros como usuarios y roles disponibles para
futuro.
emplear el sistema "Messaging" proporcionado con JBoss..
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
21. Jboss AS 5.1.0 Instalación
Getting Started
Archivos de configuración
jndi.properties
Contiene las Clases que serán utilizadas ("Factory's") para realizar búsquedas JNDI.
Jbossjta-properties.xml
Especifica las propiedades por defecto del gestor de transacciones JBossTs
Java.policy
Un marcador que define la política de seguridad de java y que simplemente otorga todos los permisos
jboss-log4j.xml
Contiene los parámetros empleados por el mecanismo Log4J utilizado en Jboss para generar registros
("Logs").
login-config.xml
Contiene los parámetros JAAS empleados por JBoss para verificar/autentificar usuarios.
standardjbosscmp-jdbc.xml
Contiene los valores para ser empleados en CMP ("Container Managed Persistence") EJB's.
standardjboss.xml
Contiene los parámetros estándar de configuración para JBoss tales como:
Tamaño de "Pools" para EJB's, valores de "Cache", numero de "Pools" para Bases de Datos, Clases
empleadas para Control de Transacciones, entre otros parámetros.
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
22. Jboss AS 5.1.0 Instalación
Getting Started
Archivos de configuración
Props/*
Contiene los ficheros de las propiedades de usuarios y roles para la consola JMX
xmdesc/*-mbean.xml
Este directorio contiene los descriptores XMBean para varios servicios configurados en el fichero
jboss-service.xml
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
23. Jboss AS 5.1.0 Instalación
Autenticación en la
Consola JMX
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
24. Jboss AS 5.1.0 Instalación
Autenticación en la Consola JMX
Debido a que la aplicación Web de consola JMX es sólo un servlet estándar, se
puede asegurar mediante los roles J2EE estándar basados en la seguridad. El
JMX console.war se despliega como un WAR sin empaquetar que incluye una
configuración de la plantilla que permite utilizar nombre de usuario y
restricciones de acceso basados en contraseñas. Si nos fijamos en el JMX
console.war en el directorio server / default / deploy, encontraremos el jbossweb.xml y descriptores web.xml en el directorio WEB-INF y JMX consoleroles.properties y jmx–console-users.properties archivos bajo WEBINF/classes.
Vamos a editar ambos ficheros incluyendo un nuevo usuario
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
25. Jboss AS 5.1.0 Instalación
Getting Started
Archivos de configuración
• JBoss Application Server incluye tres configuraciones de servidor diferente.
• Dentro del directorio <JBoss_Home> / server , se encuentran cinco subdirectorios:
• default
• mínimal
• standard
• all
• web
Si le introducimos el parámetro ‘-c’ ,
modificaremos el arranque de la
configuración del servidor.
Ej: run –c all
Existe un directorio para cada configuración del servidor. Cada una de estas
configuraciones ofrecen un diferente conjunto de servicios. La configuración
“default” es la que utiliza si no se especifica otra cuando se pone en marcha el
servidor.
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
26. Jboss AS 5.1.0 Instalación
Getting Started
Archivos de configuración
• minimal
Tiene una configuración mínima de los servicios para arrancar JBoss. Inicia:
• el servicio de registro
• un servidor JNDI
• un escáner de despliegue para buscar nuevos despliegues
Lo usaríamos para utilizar JMX e iniciar nuestros propios servicios sin tecnologías Java EE
No hay ningún contenidor web, tampoco EJBs, ni JMS
• default
Es una base del perfil del servidor de Java EE 5 que contiene un conjunto predeterminado de los
servicios. Cuenta con los servicios más utilizados para desplegar una aplicación Java EE. No incluye el
servicio de JAXR (Java API for XML Registries), o cualquiera de los servicios de clustering
• all
La configuración inicia todos los servicios disponibles. Esto incluye Web Services y los servicios de
clustering, que no están cargados en la configuración ‘default’.
• standard
Es la configuración certificada de JavaEE 5 de todos los servicios.
• web
Es un contenedor web ligero orientado al perfil de Internet de JavaEE 6.
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
27. Jboss AS 5.1.0 Instalación
Getting Started
Archivos de configuración
Si queremos saber qué servicios están configurados en cada uno
de estos casos de arranque de JBoss AS, las principales
diferencias pueden encontrare en el directorio:
• <JBoss_Home> / server / <instance-name> / deployers/
y también el despliegue de servicios en el directorio:
• <JBoss_Home> / server/ <instance-name> / deploy
• Comparemos los directorios de ‘default’ y ‘web’
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
28. Jboss AS 5.1.0 Instalación
Getting Started
Production Settings and Tuning Tips
Configuring JBoss in a Production Server – Step by Step Guide
Step 1 – Configuring Startup Scripts
The first thing I did was to create a set of startup/shutdown scripts for JBoss Server. These were copied to the
desktop so that it is easy to start or stop the JBoss instance.
startjboss.cmd
d:
cd D:serverjboss-5.1.0.GAbin
run.bat -b 0.0.0.0
stopjboss.cmd
d:
cd D:serverjboss-5.1.0.GAbin
shutdown.bat -S
As you can see both these scripts are actually calling default scripts provided in the JBoss’ bin folder.
In the startup script the -b argument (binding ip) indicates the IP to which the server session is to be attached.
0.0.0.0 indicates that the server must be accessible from all ips including localhost (it binds the JBoss server to all
ip addresses of server machine). If you don’t specify this, JBoss will be accessible only from 127.0.0.1.
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
29. Jboss AS 5.1.0 Instalación
Getting Started
Production Settings and Tuning Tips
Configuring JBoss in a Production Server – Step by Step Guide
Step 2 – Configuring JVM Memory Settings
The run.bat file in the bin folder contains JVM parameters including memory
configuration. In the production server, ensure that these values are correctly set. For
example, the following sets the minimum and maximum heap size as 1GB. It is better to
keep them identical for performance reasons. The actual heap size setting will depend
on your application requirements and also on the RAM size of the server machine.
set JAVA_OPTS=%JAVA_OPTS% -Xms1024m -Xmx1024m
Also ensure that adequate permgen space is set. Permgen space is the fixed memory
required such as the code footprint. For large applications the default value of 64m may
not be sufficient. Following sets the permgen space to 512MB.
set JAVA_OPTS=%JAVA_OPTS% -XX:PermSize=512m -XX:MaxPermSize=512m
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
30. Jboss AS 5.1.0 Instalación
Getting Started
Production Settings and Tuning Tips
Configuring JBoss in a Production Server – Step by Step Guide
Step 3 – Changing Default HTTP Port to 80
The HTTP port for default JBoss installation is 8080. In production server, you will
require this to be on port 80 (default HTTP port). If you are using HTTPS, you will
need to change SSL port from 8443 to 443. Following files must be edited for this
change. Look for the “Connector” tag with “port” attribute.
(a) default/deploy/jboss-web.deployer/server.xml
(b) default/deploy/http-invoker.sar/META-INF/jboss-service.xml
(c) default/deployers/jbossweb.deployer/server.xml
(d) default/deploy/jbossws.sar/jbossws.beans/META-INF/jbossbeans.xml
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
31. Jboss AS 5.1.0 Instalación
Getting Started
Production Settings and Tuning Tips
Configuring JBoss in a Production Server – Step by Step Guide
Step 4 – Configuring Datasource Settings
The datasource settings are stored in xml files under deploy folder of the server. For
example, oracle-ds.xml is the configuration file I used in my application. This maps a
connection setting to a JNDI name. The important parameters to configure are,
min-pool-size – This is the initial number of connections kept open to database.
max-pool-size – This is the maximum number of concurrent connections possible to
the database. This value should be based on your application needs and also on the
database configuration
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
32. Jboss AS 5.1.0 Instalación
Getting Started
Production Settings and Tuning Tips
Configuring JBoss in a Production Server – Step by Step Guide
Step 5 – Configuring HTTP Connector Settings
The underlying HTTP connector of JBoss needs to be fine tuned for production settings. The
important parameters are,
maxThreads – This indicates the maximum number of threads to be allocated for handling
client HTTP requests. This figure corresponds to the concurrent users that are going to
access the application. Depending on the machine configuration, there is a physical limit
beyond which you will have to do clustering.
acceptCount – This is the number of request threads that are put in request queue when all
available threads are used. When this exceeds, client machines get a request timeout
response.
compression – If you set this attribute to “force”, the content will be compressed by JBoss
and will be send to browser. Browser will extract it and display the page on screen. Enabling
compression can substantially reduce bandwidth requirements of your application
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
33. Jboss AS 5.1.0 Instalación
Getting Started
Production Settings and Tuning Tips
Configuring JBoss in a Production Server – Step by Step Guide
Step 6 – Configuring JSP Compilation Settings
JBoss application server regularly checks whether a JSP requires compilation to a
servlet before executing a JSP. In a production server, JSP files won’t change and hence
you can configure the settings for increased performance.
Open the web.xml in deploy/jboss-web.deployer/conf folder. Look for the jsp servlet in
the file and modify the following XML fragment as given below
<init-param>
<param-name>development</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>checkInterval</param-name>
<param-value>300</param-value>
</init-param>
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
34. Jboss AS 5.1.0 Instalación
Getting Started
Production Settings and Tuning Tips
Configuring JBoss in a Production Server – Step by Step Guide
Step 7 – Removing unwanted applications and services
JBoss comes with a lot of services and your enterprise applications may not need all of
them. Removing these unwanted services can boost application server performance.
Following are some of the JBoss services you can remove if your application is not using
them. Delete the files/folders given in brackets to remove these services completely
(a) Home page server- (deploy/ROOT.war)
(b) JMX Console server – (deploy/jmx-console.war)
(c) Web Console server – (deploy/management)
(d) Unique ID key generator - (deploy/uuid-key-generator.sar, lib/autonumber-plugin.jar)
(e) HTTP Invoker service – (deploy/http-invoker.sar)
(f) Quartz scheduler service – (deploy/quartz-ra.rar)
(g) Mail service – (deploy/mail-service.xml, lib/mail*.jar)
(h) Monitoring service – (deploy/monitoring-service.xml,lib/jboss-monitoring.jar)
(i) Scheduler service – (deploy/scheduler-service.xml, deploy/schedule-manager-service.xml,lib/schedulerplugin*.jar)
(j) Messaging (JMS) service – (deploy/messaging, deploy/jms-ds.xml, deploy/jms-ra.rar, lib/jboss-messaging*.jar)
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
35. Jboss AS 5.1.0 Instalación
Getting Started
Production Settings and Tuning Tips
Configuring JBoss in a Production Server – Step by Step Guide
Step 8 – Protecting Administration Console Applications
Some of the default Web applications in JBoss are very useful in monitoring server
status. For example the Web Console can give valuable information such as server
memory status and active HTTP active connections. Please see the Web Console
screenshot below (http://localhost/web-console/),
Step 9 – Configuring Log4J Logging for Production
The default logging configuration in JBoss is not suitable for production deployment. In
production, you only want the errors to be logged. Open jboss-log4j.xml file in
deploy/conf folder.
First change the root category in the end to contain only FILE appender. This ensures that
there is logging to the screen and all errors are only logged to a file
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
36. Jboss AS 5.1.0 Instalación
Práctica: Consola JMX
Editamos el fichero conf/jboss-service.xml, en el que si echamos un vistazo
podremos ver varios servicios incluidos
logging, security, JNDI, JNDIView, Log4j, etc.
Vamos a comentar la entrada para el servicio JNDIView, y vemos como no aparece en la consola JMX
<!-- Section 1 commented out
<mbean code="org.jboss.naming.JNDIView"
name="jboss:service=JNDIView"
xmbean-dd="resource:xmdesc/JNDIView-xmbean.xml">
-->
<!-- The HANamingService service name -->
<!-- Section two commented out
<attribute
name="HANamingService">jboss:service=HAJNDI</attribute></mbean>
-->
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
37. Jboss AS 5.1.0 Instalación
Práctica: Servicio Log4j
El registro de Log está configurado por el fichero conf/jboss-log4j.xml. Por
defecto los mensajes aparecen en la consola de arranque y en el fichero
log/server.log
Existen 6 tipos de niveles de Logging: TRACE, DEBUG, INFO, WARN, ERROR and FATAL
Cambiaremos el nivel por DEBUG y revisaremos el log/server.log para ver que se
producen muchos más detalles de registro
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
38. Jboss AS 5.1.0 Instalación
Práctica: Servicio Log4j
Tambien podremos enviar nuestros registros de Log del paquete
org.jboss.ejb.plugins.cmp, a un fichero nuevo, llamado cmp.log, incluyendo
las siguientes líneas de código en el fichero conf/jboss-log4j.xml
<appender name="CMP" class="org.jboss.logging.appender.RollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="${jboss.server.home.dir}/log/cmp.log"/>
<param name="Append" value="false"/>
<param name="MaxFileSize" value="500KB"/>
<param name="MaxBackupIndex" value="1"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
</layout>
</appender>
<category name="org.jboss.ejb.plugins.cmp">
<priority value="DEBUG" />
<appender-ref ref="CMP"/>
</category>
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
39. Jboss AS 5.1.0 Instalación
Servicio de seguridad
El ámbito de seguridad de la información se almacena en el fichero conf /
login-config.xml como una lista de nombres de dominios de seguridad, cada
uno de los cuales especifica una serie de módulos de inicio de sesión JAAS
(Java Authentication and Authorization Service) que se utilizan para los
propósitos de autenticación en ese dominio.
Si examinamos todos los dominios de seguridad del fichero, podemos ver que
carga la configuración de seguridad para la consola JMX, en el directorio props
/jmx-console-roles-properties y jmx-console-users-properties
Para protegerla, vamos a agregar un dominio de seguridad. Esto se puede hacer en el
fichero jboss-web.xml para la consola JMX, que se encuentra en / jmx-console.war / WEBINF /. Eliminamos el comentario de seguridad de dominio de este archivo, como se
muestra a continuación:
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
40. Jboss AS 5.1.0 Instalación
Servicio de seguridad
Editamos jboss-web.xml en el directorio deploy/jmx-console.war/WEB-INF/
<jboss-web>
<security-domain>java:/jaas/jmx-console</security-domain>
</jboss-web>
Editamos web.xml en el directorio deploy/jmx-console.war/WEB-INF/
<!-A security constraint that restricts access to the HTML JMX console
to users with the role JBossAdmin. Edit the roles to what you want and
uncomment the WEB-INF/jboss-web.xml/security-domain element to enable
secured access to the HTML JMX console.
-->
<security-constraint>
<web-resource-collection>
<web-resource-name>HtmlAdaptor</web-resource-name>
<description>
An example security config that only allows users with the
role JBossAdmin to access the HTML JMX console web application
</description>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>JBossAdmin</role-name>
</auth-constraint>
</security-constraint>
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
41. Jboss AS 5.1.0 Instalación
Servicio de seguridad
Añadiremos un usuario nuevo al que le otorgaremos permisos para entrar en la
consola JMX
• Lo configuraremos en los ficheros:
• props /jmx-console-roles-properties
Usuario=JbossAdmin
• Props/ jmx-console-users-properties
Usuario=Usuario
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
42. Jboss AS 5.1.0 Instalación
Running as a Service
under Microsoft Windows
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
43. Jboss AS 5.1.0 Instalación
Antigua instalación: Problemas con Java.lang.OutofMemoryError
Podemos configurar que el servidor se ejecute como un servicio bajo
Microsoft Windows, y configurarlo para que se inicie automáticamente si
se desea.
Paso 1.- Download the JavaService 2.0.10 package
from
http://forge.objectweb.org/projects/javaservice/.
Paso 2.- Descomprimimos el paquete y
utilizamos el archivo JBossInstall.bat para
instalar el servicio de JBoss. Debemos
establecer el JAVA_HOME y variables de
entorno JBOSS_HOME para apuntar a la JDK y
JBoss, como directorios antes de ejecutar
JBossInstall.bat.
Paso 3.- Run JBossInstall.bat con la siguiente sintaxis:
JBossInstall.bat <depends> [-auto | -manual]
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
Cualquier servicio del que
dependa Jboss AS
Ej: mysql
19 Octubre 2009
Curso JBoss JB366
44. Jboss AS 5.1.0 Instalación
Instalación actual: JBossNative Windows
En algunas versiones es necesario descargar Jboss Native de la siguiente
dirección:
http://labs.jboss.com/jbossweb/downloads/
Paso 1.- Instalación: descomprimimos e utilizamos el
archivo service.bat
C:> cd c:jboss-4.2.0bin
C:> service.bat install
Paso 3.- Revisamos en Panel de Control – Herramientas administrativas –
Servicios, si ha instalado correctamente el servicio de arranque de JBoss
Podemos ejecutar en consola lo siguiente:
C:> net start JBAS50SVC
C:> net stop JBAS50SVC
César Pajares – ECM /CMS Manager
http://www.jboss.org/community/wiki/RunJBossAsAServiceOnWindows
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
45. Jboss AS 5.1.0 Instalación
GET JBOSS 5!
http://www.jboss.org/jbossas/downloads
Questions?
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366