miércoles, 26 de junio de 2013

java.util.zip.ZipException: error in opening zip file

Síntomas:

AIX 6.1 64bits
weblogic 10.3.5
SOA Suite 11.1.1.5
JDK 1.6 

Se realiza el despliegue el Enterprise Manager em.ear (este articulo también aplica a cualquier EAR), el despliegue se realiza correctamente pero cuando se inicializa (Servicing all request) falla con el siguiente error en la consola web: 


Se consulta el log del AdminServer y no muestra información relevante,  solamente el siguiente mensaje:

        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Caused By: java.util.zip.ZipException: error in opening zip file
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:137)
        at java.util.jar.JarFile.<init>(JarFile.java:149)
        at java.util.jar.JarFile.<init>(JarFile.java:86)
        at com.sun.faces.facelets.util.Classpath.getAlternativeJarFile(Classpath.java:259)
        at com.sun.faces.facelets.util.Classpath.search(Classpath.java:112)
        at com.sun.faces.facelets.util.Classpath.search(Classpath.java:89)
        at com.sun.faces.config.conf

Causa:

La causa de este error pueden ser varias, entre ellas:

  • Corrupción del EAR que se desea desplegar.
  • Permisos de los archivos que almacena el EAR
  • Conflicto de Librerías.
  • Corrupción de binarios en el WebLogic

 Para descartar que el EAR esté corrupto puede hacer lo siguiente:

$unzip midespliegue.ear

Si los archivos son extraídos correctamente, entonces el EAR no está corrupto.
Si pasa la prueba de corrupción, entonces ya tendríamos que tener los archivos extraídos, bastaría con ejecutar la siguiente sentencia para ver los permisos de todos los archivos extraídos:

ls -ltr *

Si todos los permisos son correctos, entonces se tendría que verificar qué librerías utiliza nuestro despliegue y luego hacer un análisis si esas librerías existen en el weblogic, sí fueron cargadas correctamente, si las versiones de las librerías son las correctas, etc., esta fue la causa de mi problema.

De no encontrar conflictos entre librerías, la única razón que quedaría sería corrupción en binarios del Weblogic, por lo que se necesitaría reinstalar el dominio, o restaurar el dominio desde un backup que se tenga realizado.

Solución:

La Solución para este problema en particular (despliegue del em.ear) se debe a conflictos entre las librerias jsf(1.2,1.2.9.0) y  jsf(2.0). Unicamente el jsf (1.2) debe estar corriendo en el AdminServer.

1. Logearse al WebLogic Console (http://hostname:7001/console)
2. Clic Deployments
3. Clic en el despliegue jsf(2.0)
4. Clic Pestaña Targets
5. Deseleccionar AdminServer
6. Reiniciar los servicios de WebLogic.

martes, 25 de junio de 2013

Oracle 12cR1 Liberado

El día de hoy Oracle ha liberado la versión 12c de Base de Datos en su primer Release. Esta base de datos ha sido esperada desde principios de año por sus nuevas caracteristicas que dejan muy atras a su predecesor 11g.

A continuación un articulo donde se detallan algunas de las nuevas caracteristicas de base de datos 12c:

http://oraclefromguatemala.blogspot.com/2013/03/que-hay-de-nuevo-en-oracle-database-12c_26.html

A continuación los links de descarga:

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

La documentación se encuentra en el siguiente link:

http://www.oracle.com/pls/db121/homepage



lunes, 17 de junio de 2013

¿Cuándo usar BPEL?

En el mundo de TI, el concepto de abstracción es particularmente útil. Pero cada abstracción tiene un precio, y la abstracción de los servicios no es la excepción. Acoplamiento débil, compatibilidad, la agilidad y los demás beneficios de SOA todos introducen sobrecarga de rendimiento. Para los conjuntos limitados de servicios con un pequeño número de usuarios, este impacto en el rendimiento puede ser mínimo, pero para las implementaciones de SOA con un gran número de usuarios, servicios o de tráfico, el mantenimiento de los niveles de desempeño necesarios plantea un reto importante, tanto para los arquitectos que diseñan la infraestructura, como personal de operaciones de TI que son responsables de velar por que el rendimiento se mantenga optimo.

De hecho, en ambientes SOA con los más altos requisitos de rendimiento, manteniendo la abstracción servicios con alto tráfico es una preocupación primordial. Pero si dejamos la abstracción por un lado, entonces los servicios dejan de satisfacer las necesidades ágiles de la empresa, y la calidad de la implementación de SOA se viene abajo como un castillo de naipes.

No todos los servicios web deben ser construidos en BPEL, pues entonces se estaría tomando BPEL como un nuevo "lenguaje de programación" y eso, bien se sabe que no es así, adicionalmente sobrecargamos el web service.

Entonces, como ya lo indicamos antes, tenemos que encontrar un punto intermedio entre flexibilidad y buen rendimiento, por lo que aconsejo utilizar BPEL para las siguientes situaciones:

  • Composición compleja de flujos paralelos que involucran varios servicios web.
  • Composiciones que se ejecutan por largo tiempo, varios minutos, horas o incluso días.
  • Composiciones Asíncronas que requieren la interacción de varios servicios web.
  • Procesos que son necesarios realizar un trazo para debuggear en tiempo real las interacciones entre varios servicios web.
  • Tareas Humanas (aprobaciones, rechazos y escalamiento de tareas).

En el articulo Challenges With Using Bpel, realizado por Guy Huntington, se resalta el siguiente párrafo:


Ejemplo de un servicio BPEL (Proceso Solicitud de Compra)


viernes, 14 de junio de 2013

Specified driver could not be loaded due to system error 1114

Ambiente

Windows Server 2003 SP2 32bits
Oracle Cliente 11.2.0.3 32bits
Business Object XI 3.0
BD destino: Oracle Database 11.2.0.3

Nota:
  • El cliente fue instalado con Administrador Local.
  • El Antivirus está desactivado 

Síntomas

El test de conectividad por tnsnames desde el Cliente es satisfactorio.
Al intentar conectarse mediante ODBC desde Business Object pasando por el cliente de Oracle se produce el siguiente error:

DBD: Specified driver could not be loaded due to system error  1114 (Oracle en OraClient11g_home1).

Se buscó errores en el Event Viewer de Windows y no se encontraron errores reportados.

Se reemplazaron librerías mfc71.dll, msvcrt.dll and msvcr71.dll desde C:\Windows\System32 hacia Oracle_Home.

Limpieza de la instalación:
Se eliminó el ODBC actualmente utilizado.
Se desinstaló el cliente 11.2.0.3.
Se limpió la instalación, eliminación de registros en el registro del sistema, eliminación del home en el Oracle Inventory, eliminación de los archivos en el Oracle_Home.
Se reinició la maquina.

Se instaló el cliente 11.2.0.1 32bits. con Administrador Local.
La instalación se realiza sin problemas.
El problema aún persistía.

Solución

Se hizo nuevamente la limpieza de la instalación del cliente 11.2.0.1.

Una vez limpiada la instalación del anterior cliente 11.2.0.1, se procedió a instalar el cliente 10.2.0.1 32bits (10201_client_win32) con usuario Administrador Local.

Se reinició la maquina.

La conexión Business Object - ODBC Oracle Client funcionó correctamente.

viernes, 7 de junio de 2013

III Congreso Informatico en Cobán

El día viernes 31 de mayo y sabado 1 de junio se celebró en Cobán, Alta Verapaz, el tercer congreso informático de la universidad Mariano Galvez, en el cual tuve la oportunidad de compartir con Anibal García, un gran amigo con el que he participado en otros eventos de Oracle; Gloria Alvarez, una talentosa mujer que demuestra con éxito ser de mente fresca;  y Javier Ogarrio joven prometedor de Guatemala con experiencia laboral en Microsoft y actualmente trabajando para Nokia.

Esta actividad fue realizada en el Hotel Alcazar de Doña Victoria, situada en la zona 1 de Cobán.

Las conferencias impartidas fueron las siguientes:


Gloria Alvarez: Encontrando tu pasión


Anibal García: Estrategia de Indices


Deiby Gómez: Arquitectura Orientada a Servicios


Javier Ogarrio: Desarrollo Web y Movil


Agradezco mucho a la Universidad Mariano Galvez con sede en Cobán por la invitación a tan prestigioso evento y espero seguir compartiendo conocimiento en eventos futuros.

jueves, 6 de junio de 2013

DATUM & Oracle: SOA/BPM

El 10 de abril del 2013 se llevó a cabo uno de los eventos más importantes de oracle en Guatemala, organizado por la empresa DATUM S.A. y apoyado por Oracle Corporation. Dicho evento trató el tema de la agilidad empresarial y las soluciones de SOA  y BPM.

Se realizó en el Hotel InterContinental situado en la zona 10 capitalina de Guatemala y contó con conferencistas como Christian Medina quien habló sobre BPM, Deiby Gómez quien tuvo a su cargo la demostración de SOA y Rafael Cordón quien quien expuso los conceptos de SOA.

A continuación la invitación que Oracle envió:


Algunas fotografías del evento:




La conferencia de Christian Medina (Territory Manager Fussion Middleware) sobre BPM:


Pantalla completa:

miércoles, 5 de junio de 2013

extend/create datafile Single Instance vs Exadata

En mi preparación para someterme al examen de  1Z0-027 Oracle Exadata Database Machine X3 Administration, encontré un documento en el que resaltaba lo siguiente:

"With Exadata storage, the create/extend tablespace operation is executed more efficiently. Instead of formatting empty blocks in database server memory and writing them to storage, a single iDB command is sent to Exadata Storage Server instructing it to format the blocks. Database server memory usage is reduced and I/O associated with the creation and formatting of the database blocks is eliminated with Exadata storage."

Me llamó mucho la atención el hecho que una creación y/o extensión de un datafile implicase formatear bloques en blanco y luego escribirlos a disco. La primera impresión que me dio fue que se referían a bloques de oracle. ¿Recuerdan el mapeo entre estructuras físicas y lógicas en oracle?, si ya no lo recuerdan, les dejo la siguiente imagen.




Bueno, no me quedé con la curiosidad y extendí un datafile desde 250M hasta 8G y mientras el proceso avanzaba  vi si los bloques en el SGA cambiaban, no vi nada extraño.

Luego observé todas las estructuras del SGA y su espacio utilizado y libre pensando en que quizás esos bloques formateados en blanco eran creados en otra estructura diferente, tampoco vi nada extraño, todas las estructuras se mantuvieron con los mismo megas mientras el proceso de extensión del datafile se realizaba.

Hasta aquí ya estaba dudando de la documentación de Oracle, pensé que ese párrafo que había leído no era correcto, sin embargo, fiel a oracle y a su buen funcionamiento comprobado y asegurado :), descarté esa idea y se me ocurrió que quizás no era memoria de la base de datos la que era utilizada, sino la del propio servidor, entonces volví a realizar el proceso pero ahora monitoreando la memoria del servidor apoyándome de la herramienta top.

Los recursos del servidor estaban inicialmente como lo muestra la siguiente imagen:


Unos segundos antes que terminara el proceso de extensión del datafile, los recursos del servidor estaban así:



Una vez visto este comportamiento, ya mi curiosidad quedó satisfecha y pude concluir que en efecto, cada creación y/o extendido de un datafile implica consumir recursos de memoria del lado del servidor de la base de datos, y precisamente es esto, una de las características que Exadata ya tiene solucionado, por medio del iDB (intelligent database protocol) se le envía la instrucción de creación y/o extensión del datafile al Exadata Storege Server y él es el encargado de realizar esta operación, de esta manera el Database Server no tiene que ceder su memoria. Por supuesto, la memoria utilizada en el servidor con single instance es proporcional al tamaño en GB que estemos creando o extendiendo el datafile.

Por otro lado, si no somos el DBA de un Exadata y nos toca ganar el pan de cada día administrando un single instance :(, nos queda como lección crear y/o extender nuestros datafiles en un momento donde la base de datos no tenga tanta carga, pues de lo contrario el servidor puede paginear (swapping), degradando el performance. 

Oracle ACE Director Award - Deiby Gómez

Thanks #OracleACE Program for this awesome certificate recognizing the work I have done in the community for the last year. Looking forwa...