JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

45
19 Octubre 2009 Curso JBoss César Pajares – ECM /CMS Manager [email protected] JBoss AS Instalación, Configuración e Implementación JBoss Professional Open Source 1

description

JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3 Instalación, configuración e implementación

Transcript of JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

Page 1: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

1

JBoss AS Instalación, Configuración e Implementación

JBossProfessional Open Source

Page 2: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

2 Jboss AS 5.1.0 Instalación

Multiples instancias JbossJGroups - Clustering

Page 3: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

3 Jboss AS 5.1.0 InstalaciónPara 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-reconfiguro-todos-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

Page 4: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

4 Jboss AS 5.1.0 Instalación

Backup instalación…

Page 5: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

5 Jboss AS 5.1.0 Instalación

Multiples instancias Jboss

3 Tipos de escenariosEscenario 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

Page 6: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

6 Jboss AS 5.1.0 Instalación

Multiples instancias JBossEscenario 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’

Page 7: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

7 Jboss AS 5.1.0 Instalación

Multiples instancias JBossEste 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’

Escenario 2: Dos nodos en un único servidor, Multitarjeta

Page 8: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

8 Jboss AS 5.1.0 Instalación

Multiples instancias JBossEsto 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 valor incremental (100) del puerto de la propiedad del sistema ‘jboss.service.binding.set’ con valor ports-01

Escenario 3: Dos nodos en un único servidor, No Multitarjeta

Page 9: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

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:

Page 10: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

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.

Page 11: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

11 Jboss AS 5.1.0 Instalación

Apache y JBOSS AS (puerto 80)Descargar Apache 2.2Para seguir con el montaje necesitamos un servidor Apache 2.2, Existen dos maneras de montar el proxy apache sobre cada servidor de aplicacionesdel cluster:

• Usando mod_jk 1.2.x• Usando mod_proxy con JBoss y Apache2.2.x

Configurar mod_proxy en httpd.confPor 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.

Page 12: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

12 Jboss AS 5.1.0 Instalación

Apache y JBOSS AS (puerto 80)Configurar mod_proxy en httpd.confEs 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 1BalancerMember http://10.0.0.1:8080 route=node1# cluster member 2BalancerMember http://10.0.0.2:8080 route=node2ProxySet stickysession=JSESSIONID|jsessionidProxySet lbmethod=byrequestsProxySet nofailover=Off</Proxy><Location /balancer-manager>SetHandler balancer-managerOrder deny,allowDeny from all## Introducir las IPs permitidas separadas por espacios para monitorizar el balanceador.Allow from 127.0.0.1</Location>

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)

Page 13: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

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/

Page 14: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

14 Jboss AS 5.1.0 Instalación

Estructura del Servidor

Page 15: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

15 Jboss AS 5.1.0 Instalación

Getting StartedThe JBoss Server - A Quick Tour

Estructura del Servidor

• 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

¿que vamos a explorar?

Page 16: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

16 Jboss AS 5.1.0 Instalación

Getting Started+ 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

Estructura del Servidor The JBoss Server - A Quick Tour

Page 17: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

17 Jboss AS 5.1.0 Instalación

Getting Started+ 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.

Estructura del Servidor The JBoss Server - A Quick Tour

Page 18: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

18 Jboss AS 5.1.0 Instalación

Archivos de Configuración

Page 19: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

19 Jboss AS 5.1.0 Instalación

Getting StartedArchivos 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.

Page 20: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

20 Jboss AS 5.1.0 Instalación

Getting StartedArchivos de configuración

JBoss esta compuesto por diversos archivos de configuración los cuales seencuentran bajo el directorio /server/<modalidad>/conf de la instalación deJBoss, este directorio a su vez puede contener varios subdirectorios. Nos basaremos en esta sección en el contenido del directorio default.

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.xmlArchivo que contiene los parámetros principales del Servidor JBoss; estearchivo XML define los valores para la variable CLASSPATH, el puerto para elservidor JNDI y el directorio donde serán colocados los distintos EJB's para serejecutados, entre otros parámetros como usuarios y roles disponibles paraemplear el sistema "Messaging" proporcionado con JBoss..

El arranque de servicios de este fichero será migrado a las implementaciones de arranque (bootstrap) en un futuro.

A continuación se mencionan los parámetros de los principales archivos para lamodalidad default, lo cual equivale al contenido del directorio /server/default/conf

Page 21: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

21 Jboss AS 5.1.0 Instalación

Getting StartedArchivos de configuración

jndi.propertiesContiene las Clases que serán utilizadas ("Factory's") para realizar búsquedas JNDI.

Jbossjta-properties.xmlEspecifica las propiedades por defecto del gestor de transacciones JBossTs

Java.policyUn marcador que define la política de seguridad de java y que simplemente otorga todos los permisos

jboss-log4j.xmlContiene los parámetros empleados por el mecanismo Log4J utilizado en Jboss para generar registros ("Logs").

login-config.xmlContiene los parámetros JAAS empleados por JBoss para verificar/autentificar usuarios.

standardjbosscmp-jdbc.xmlContiene los valores para ser empleados en CMP ("Container Managed Persistence") EJB's.

standardjboss.xmlContiene 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.

Page 22: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

22 Jboss AS 5.1.0 Instalación

Getting StartedArchivos de configuración

Props/*Contiene los ficheros de las propiedades de usuarios y roles para la consola JMX

xmdesc/*-mbean.xmlEste directorio contiene los descriptores XMBean para varios servicios configurados en el fichero jboss-service.xml

Page 23: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

23 Jboss AS 5.1.0 Instalación

Autenticación en laConsola JMX

Page 24: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

24 Jboss AS 5.1.0 Instalación

Autenticación en la Consola JMXDebido 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 jboss-web.xml y descriptores web.xml en el directorio WEB-INF y JMX console-roles.properties y jmx–console-users.properties archivos bajo WEB-INF/classes.

Vamos a editar ambos ficheros incluyendo un nuevo usuario

Page 25: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

25 Jboss AS 5.1.0 Instalación

Getting StartedArchivos 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

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.

Si le introducimos el parámetro ‘-c’ , modificaremos el arranque de la configuración del servidor.Ej: run –c all

Page 26: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

26 Jboss AS 5.1.0 Instalación

Getting StartedArchivos de configuración

• minimalTiene 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 EENo hay ningún contenidor web, tampoco EJBs, ni JMS

• defaultEs 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

• allLa 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’.

• standardEs la configuración certificada de JavaEE 5 de todos los servicios.

• webEs un contenedor web ligero orientado al perfil de Internet de JavaEE 6.

Page 27: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

27 Jboss AS 5.1.0 Instalación

Getting StartedArchivos 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’

Page 28: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

28 Jboss AS 5.1.0 Instalación

Getting StartedProduction 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.

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.

startjboss.cmdd:cd D:\server\jboss-5.1.0.GA\binrun.bat -b 0.0.0.0

stopjboss.cmdd:cd D:\server\jboss-5.1.0.GA\binshutdown.bat -S

Page 29: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

29 Jboss AS 5.1.0 Instalación

Getting StartedProduction Settings and Tuning Tips

Configuring JBoss in a Production Server – Step by Step Guide

Step 2 – Configuring JVM Memory SettingsThe 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.

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% -Xms1024m -Xmx1024m

set JAVA_OPTS=%JAVA_OPTS% -XX:PermSize=512m -XX:MaxPermSize=512m

Page 30: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

30 Jboss AS 5.1.0 Instalación

Getting StartedProduction 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/jboss-beans.xml

Page 31: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

31 Jboss AS 5.1.0 Instalación

Getting StartedProduction 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

Page 32: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

32 Jboss AS 5.1.0 Instalación

Getting StartedProduction Settings and Tuning Tips

Configuring JBoss in a Production Server – Step by Step Guide

Step 5 – Configuring HTTP Connector SettingsThe 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

Page 33: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

33 Jboss AS 5.1.0 Instalación

Getting StartedProduction Settings and Tuning Tips

Configuring JBoss in a Production Server – Step by Step Guide

Step 6 – Configuring JSP Compilation SettingsJBoss 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>

Page 34: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

34 Jboss AS 5.1.0 Instalación

Getting StartedProduction Settings and Tuning Tips

Configuring JBoss in a Production Server – Step by Step GuideStep 7 – Removing unwanted applications and servicesJBoss 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/scheduler-plugin*.jar)(j) Messaging (JMS) service – (deploy/messaging, deploy/jms-ds.xml, deploy/jms-ra.rar, lib/jboss-messaging*.jar)

Page 35: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

35 Jboss AS 5.1.0 Instalación

Getting StartedProduction Settings and Tuning Tips

Configuring JBoss in a Production Server – Step by Step Guide

Step 8 – Protecting Administration Console ApplicationsSome 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 ProductionThe 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

Page 36: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

36 Jboss AS 5.1.0 Instalación

Práctica: Consola JMXEditamos 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>-->

Page 37: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

37 Jboss AS 5.1.0 Instalación

Práctica: Servicio Log4jEl 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

Page 38: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

38 Jboss AS 5.1.0 Instalación

Práctica: Servicio Log4jTambien 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>

Page 39: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

39 Jboss AS 5.1.0 Instalación

Servicio de seguridadEl á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 / WEB-INF /. Eliminamos el comentario de seguridad de dominio de este archivo, como se muestra a continuación:

Page 40: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

40 Jboss AS 5.1.0 Instalación

Servicio de seguridadEditamos 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 consoleto users with the role JBossAdmin. Edit the roles to what you want anduncomment the WEB-INF/jboss-web.xml/security-domain element to enablesecured 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 therole 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>

Page 41: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

41 Jboss AS 5.1.0 Instalación

Servicio de seguridadAñ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-propertiesUsuario=Usuario

Page 42: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

42 Jboss AS 5.1.0 Instalación

Running as a Service under Microsoft Windows

Page 43: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

43 Jboss AS 5.1.0 Instalación

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]

Cualquier servicio del que dependa Jboss ASEj: mysql

Antigua instalación: Problemas con Java.lang.OutofMemoryError

Page 44: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

44 Jboss AS 5.1.0 Instalación

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.0\binC:\> 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:

Instalación actual: JBossNative Windows

C:\> net start JBAS50SVC

C:\> net stop JBAS50SVC

http://www.jboss.org/community/wiki/RunJBossAsAServiceOnWindows

Page 45: JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

45 Jboss AS 5.1.0 Instalación

GET JBOSS 5!

http://www.jboss.org/jbossas/downloads

Questions?