martes, 14 de junio de 2011

Como funciona ANT y sus dependencias?

ANT sirve para ejecutar las sentencias de un archivo XML llamado build.xml.
La siguiente sentencia: $ant deploy, buscara el segmento "deploy" del archivo build.xml para ejecutarse. Si este segmento deploy ubicado en el build.xml tiene una directiva "depends", se realizara este segmento previamente.
    <target name="deploy" description="Deploy the packaged archive" depends="archive">
        <fail unless="jboss.home">jboss.home not set</fail>
        <copy todir="${deploy.dir}" file="${calculateService.ear}"/>
        <copy todir="${deploy.dir}" file="${customerManagementService.ear}"/>
        <copy todir="${deploy.dir}" file="${inventoryManagementService.ear}"/>
        <copy todir="${deploy.dir}" file="${orderManagementService.ear}"/>
        <copy todir="${deploy.dir}" file="${common.jar}"/>
        <copy todir="${deploy.dir}" file="${eBikes.ear}"/>
    </target>
Compartir:

Como instalar JAVA 6.24 (oracle java)

Obtener el archivo java jdk-6u24-windows-i586 desde http://www.oracle.com/technetwork/java/javase/downloads/index.html

Al ejecutar observara las siguientes pantallas.
Realize los cambios en las variables de entorno JAVA_HOME y PATH.













Compartir:

lunes, 13 de junio de 2011

Configuracion de las aplicaciones en JBoss EAP 5.0

Las aplicaciones se empaquetan como WAR que tiene la misma estructura de un archivo zip
- en classes estan las clases de la aplicacion
- en lib las librerias jar de la aplicacion
- en web.xml se encuentra el descriptor de la aplicacion. Este es un descriptor estandar.
- en jboss-web.xml se encuentra el descriptor personalizado y es propio de JBoss.

Un paquete de aplicacion o JBoss Service Aplication se encuentran empaquetado en archivos *.sar. Una aplicacion *.sar puede incorporar archivos *.jar, *.war, *.ear. Cuando se define un servicio no se requiere definir una capa de vista servlet o JSP. El descriptor de un SAR es el archivo jboss-service.xml

El cambio de la URL de una aplicacion web no requiere reiniciar el servidor JBoss EAP; se puede cambiar el contexto de la aplicacion. El nombre de la aplicacion esta en el web.xml. Una vez cambiado se puede desplegar nuevamente sin reiniciar el JBoss.

Borrando el paquete del directorio deploy , desinstala la aplicacion. En produccion es preferible no utilizar el deploy automatico en caliente. Para deshabilitarlo se debe remover el archivo hdscanner-jboss-beans.xml que se encuentra en la carpeta deploy (version 5 del JBoss)

El servicio que provee una busqueda de otros servicios en JBoss es el JNDI

Si ocurre algun problema durante el deploy de aplicacion se deben verificar los logs, las consolas, la misma aplicacion o el JNDI view.

La configuracion del despliegue de las aplicaciones se realiza en:
- Los POJOs se despliegan en (nombre-del-POJO)-jboss-bean.xml
- Los servicios MBean en (MBean)-service.xml
- Los datasource se despliegan en (base-de-datos)-ds.xml
Para invocar un datasource de usa JNDI en la forma java:/oracle-ds.xml
En oracle.xml por ejemplo se define la url de conexion, el driver, el usuaio y password, y los parametros del pool de conexiones.

La configuracion “track-statements”, revisa si la conexion esta aun vigente.
La configuracion “security-domain”, permite al datasource estar bajo una politica de seguridad.
La “idle-timeout-minutes” es por defecto 15 minutos, y es el tiempo maximo para devolver la conexion al pool, en caso el servidor de base de datos no responda.
Compartir:

Configuracion de la memoria Java en JBoss EAP.

Cuando la JVM se levanta, se crean los siguientes espacios de memoria:
1. Eden (create de objetos)
2. Survivor (Garbage Colector gc)
3. Old (los eliminados por el gc)
4. Permanent (librerias)
5. Code Cache. Solo presente en la version HostSpot.

El Heap (la union del Eden, Survivor, Old) se determina mediante -Xms y -Xmx, y MaxPermnSize determina el area permanent.

Para modificar el la memoria del JBoss, ubicar en el archivo C:\jboss-eap-5.0\jboss-as\bin\run.conf.bat la siguiente linea:

rem # JVM memory allocation pool parameters - modify as appropriate.
set "JAVA_OPTS=-Xms128M -Xmx512M -XX:MaxPermSize=256M"

Otra configuracion

rem # JVM memory allocation pool parameters - modify as appropriate.
set "JAVA_OPTS=-Xms256M -Xmx1024M -XX:MaxPermSize=256M"

El siguiente parametro indica cada cuanto se desea ejecutar el garbage collector. Realmente lo decide el JVM, y trata de ejecutarlo como lo indica el parametro gcInterval (expresado en milisegundos)

rem # Reduce the RMI GCs to once per hour for Sun JVMs.
set "JAVA_OPTS=%JAVA_OPTS% -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"
Para revisar monitorear la memoria y otros elementos del Java se puede usar el “jconsole”. Aqui se puede ver como esta configurada la memoria; “jconsole” es parte del JDK.

Otra herramienta es el “jvisualvm” que nos muestra el uso de la memoria del servidor.

Si 1 proceso se ejecuta en 1 segundo y el servidor procesa 5 procesos concurrentes, entonces 10 procesos se ejecutan en 2 segundos. Mientras se procesan los 5 primeros, los restantes estan en espera.

El parametro "Max threads" mostrado por http://10.10.10.83:8080/status indicara la maxima cantidad de procesos concurrentes por segundo.

Para levantar en cluster se puede hacer lo siguiente:

C:\jb336\appservers\jboss-eap-5.0\jboss-as\bin>run.bat -c all -b 0.0.0.0 -Djboss.partition.name=Granja
Compartir:

JBoss EAP: configuracion y comando para el startup (ejemplos)

Una vez obtenido el archivo jboss-eap-5.0.0.GA este se descomprime.
Luego se copia de una configuracion para crear una propia, por ejemplo la nueva configuracion "desarrollo" se copia desde la configuracion "default".
El JBoss EAP tiene las siguientes configuraciones predefinidas:
- default se usa para un proyecto de desarrollo porque tiene el debug configurado.
- produccion es como la configuracion default con mayor afinamiento.
- all es la configuracion utilizada para servidores en cluster
- standard tiene lo necesario para aplicaciones EE. (JNDI, EJBs, JMS, WS, mailing).
- minimal, levanta lo minimo para operar el microcontenedor
- web, solo instala soporte a servlets y JSP , es equivalente a Tomcat.

Una configuracion, al momento de iniciar, crea las siguientes carpetas:
- log: archivos log
- tmp: archivos temporales del JBoss EAP.
- work: archivos temporales del servidor web y JSP
- data: base de datos hypersonic en memoria del servidor, aqui se mantienen las colas.
Luego de iniciar el servicio aparecen las nuevas carpetas. Se pueden borrar estas carpetas al momento de reiniciar el servidor.

Ejemplo de inicio de un JBoss
$run.sh -c desarrollo -b 10.10.10.10

Al momento de subir el servidor, hay que verificar que no se muestren errores al levantar el servicio. Un error comun es utilizar los puertos que otro servicio ya ha ocupado.

El log muestra cuanta memoria se ha utilizado:

17:38:42,234 INFO [ServerInfo] VM arguments: -Dprogram.name=run.bat -Xms128M -Xmx512M -XX:MaxPermSize=256M -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dorg.jboss.

Segun este log se usara entre 128 y 512Mb

La aplicacion tomcat status muestra las estadisticas del servidor. El JBoss no cuenta con instalador, solo se descomprime. Si presenta problemas , se deben revisar que el archivo descargado este completo, que la version de java sea compatible con el JBoss; que la variable JAVA_HOME este declarada y los conflictos de puertos o conflictos con otros procesos.

Cuando se cuentan con varias versiones de JBoss instalados, se requiere configurar la variable JBOSS_HOME.
Compartir:

Estructura de directorios del JBoss EAP

En la carpeta jboss-as se encuentra el servidor.
En bin se encuentra los ejecutables
En common se encuentran las librerias comunes al container (comunes a todas configuraciones)
En server se encuentran las configuraciones
En lib se encuentran las librerias jar del microcontainer
En seam se encuentra el framework SEAM

En jboss/lib se encuentran las librerias para que el microcontenedor funcione.
En jboss/common/lib se encuentran las librerias comunes a todas las configuraciones
Compartir: