Threads stuck en WebLogic

En este post vamos a explicar qué son y cómo analizar los threads stuck en WebLogic. Ante todo hay que tener en cuenta que el hecho que un thread sea considerado stuck (traducción literal: “atascado”) no implica, necesariamente, que existe alguna problemática de fondo.

¿Qué es un thread stuck?

Cuando un thread está levantado durante demasiado tiempo, ya sea haciendo una pausa (por ejemplo, por un sleep) como realizando trabajo activo (como calcular decimales del número pi), se marca como stuck. Este thread no ha sido capaz de completar su trabajo y, por lo tanto, no acepta nuevas peticiones. El problema viene cuando un proceso empieza a marcar todos sus threads como stuck.

¿Qué podemos hacer para detectarlos?

WebLogic detecta automáticamente los threads stuck pero se pueden tomar varias acciones ante esta situación:

  1. Overload Protection: Se puede configurar a nivel de instancia cómo reaccionar ante situaciones de sobrecarga. Se define cuánto tiempo esperar antes de marcar un thread como stuck, cuántos threads en stuck se pueden permitir y qué acción tomar entre pasar la instancia a modo ADMIN o pararla directamente. En cualquiera de los casos, se ha de tener en cuenta que la acción afecta a la instancia (en el caso que una instancia desplegase varias aplicaciones, todas se verían afectadas).
    overload protection
  2. También se puede configurar que el Work Manager asociado se pare, volviendo a estar activo en el caso que dejase de superarse el umbral de threads stuck.
    workmanager_workload
  3. Módulos de diagnóstico: WebLogic proporciona por defecto la funcionalidad de módulos de diagnóstico, configurable a través de la consola de administración o WLST. Esto consiste, básicamente, en monitorizar la métrica de StuckThreadCount de runtime del servidor y definir un umbral. En caso de superación, se pueden tomar varias acciones: enviar un correo, crear un mensaje JMS, lanzar una imagen de diagnóstico, enviar una notificación JMX o enviar un trap SNMP.
    Las imágenes de diagnóstico consisten en un fichero .zip con varios ficheros .img (que se pueden abrir en texto plano) que aportan información completa del estado de la instancia (es una captura del estado de la instancia).
    También se puede utilizar el explorador WLDF para abrir estos ficheros .zip, que organiza la información en forma de árbol.
  4. Acciones correctivas desde Cloud Control: En el supuesto que se tengan importadas las instancias en cloud Control, se pueden definir umbrales de advertencia y críticos y asociar una acción correctiva a dichos umbrales. Estas acciones pueden ir desde reiniciar la instancia a lanzar un script propio.cc_corrective_action

¿Qué análisis podemos hacer?

Para poder analizar los threads stuck, es importante disponer de la siguiente información:

  • Thread dump: es importante lanzar varios thread dumps en un intervalo de tiempo, para poder analizar la evolución en el uso de threads.
  • Consumo de los threads stuck: a partir de un thread dump se puede obtener el identificador del thread y, con este identificador, el consumo de cpu y memoria de estos threads mediante, por ejemplo, un comando ‘ps’.
  • Heap dump: en determinadas circunstancias puede ser interesante lanzar un heap dump (recordad que esto deja congelada la instancia).

Con toda esta información se ha de analizar:

  1. ¿Están consumiendo muchos recursos? En caso afirmativo sería interesante analizar los recursos de la máquina.
  2. ¿Están ejecutando lo mismo, usando las mismas clases o llamando al mismo servicio backend? Una actualización en el código de la aplicación puede provocar la aparición de estos threads, ya sea por un mal desarrollo o por factores que no se han tenido en cuenta (esperas demasiado largas, no configuración de timeouts, etc.).
    También puede ser que si la aplicación llama a otro servicio, sea ese el que esté provocando la aparición de estos threads.

En cualquier caso, descubrir la causa de estos threads no suele ser sencillo y suele ser necesario colaborar con los equipos de desarrollo para analizar la información recolectada.

Nueva release (11.1.1.9.0) de Oracle JDeveloper and Oracle ADF 11g

El pasado día 12/05/15 se lanzó al público la versión 11.1.1.9.0 de Oracle JDeveloper and Application Developer Framework. Se trata de una actualización de la versión anterior, la 11.1.1.7.0 (sí, se han saltado la 11.1.1.8.0), en la que se incluyen algunas de las características que están disponibles en la versión 12c.

Podemos descargarlo en este link de la web oficial de Oracle.

Se incluyen mejoras en varios apartados. En cuanto a JDeveloper IDE, actualiza la versión del WebLogic Server integrado hasta la versión 10.3.6 y también se incluye en la instalación por defecto el plugin de GIT para el control de versiones.

Donde más características nuevas hay es en los componentes visuales que nos permiten mostrar la información de una forma u otra. Se incluyen varios nuevos tipos de elementos y se incluyen mejoras en algunos ya existentes. Las principales modificaciones se centran en mejorar la respuesta al usuario, haciendo uso de HTML5 a la hora de renderizar los gráficos.

Nuevos componentes ADF  View

  • af:panelSpringBoard: Permite ofrecer una lista de opciones forma de iconos o pestañas y mostrar la información en un área inferior.

panelSpringBoard_tab

  • af:panelDrawer: Ofrece un menú lateral basado en iconos y la información se visualiza en el área principal, facilitando así la navegación.

diagram

  • af:deck: Es un nuevo contenedor que permite visualizar un carrusel de componentes, proporcionando una transición animada en cada cambio. Permite además que la transición sea manual o automatic.

deck

Actualizaciones de componentes ya existentes

  • Calendar: Se incluye la posibilidad de definir un estilo propio para días significativos, además se añade la opción de incluir el total de horas en la cabecera del día. Por último, se permite al usuario modificar el tamaño de las actividades en las visas de día y semana.
  • Export to CSV: Se añade soporte a exportación a CSV además de la exportación a excel ya existente.
  • Nuevas opciones de mostrar gráficas al usuario, como: zoom, scroll, etiquetas, ocultar o mostrar datos.

En cuanto a la capa de Business Components podemos ver que hay nuevas opciones para buscar un dato concreto sin tener que hacer uso de ViewCriterias; se trata de definir un Row Finder y hacer uso de él para buscar un dato concreto sin alterar el contenido actual del View Object. Además, se incluyen nuevos operadores para comparar fechas incluidas en un View Criteria. También se incluye alguna mejora en la integración con servicios SOAP, más concretamente en el uso de View Object polimórficos y la recuperación de etiquetas de objetos y atributos haciendo uso de un nuevo método getDfltObjAttrHints().

También hay mejoras en la integración de ADF con la máquina del cliente, se añade soporte para Windows 8 y Excel 2013. Se incluyen nuevos componentes, propiedades, acciones… que aportan nuevas opciones que ofrecer al usuario. Tal vez lo más interesante puede ser la propiedad de AllowCancel, la cual permite al usuario cancelar un ActionSet que haya ido mal o esté tardando mucho en ejecutarse.

Por último, se han incluido soluciones a defectos reportados por usuarios del framework, además de una serie de errores internos que no han sido publicados.

Podemos obtener más información sobre las novedades de la release 11.1.1.9.0 en este link a la sección de JDeveloper de web de Oracle.

Categorías:ADF Etiquetas: , , , ,

Liberado OBIEE 11.1.1.9, versión terminal de OBI 11g

OBIEE11119Hace pocos días (14/05/15) que Oracle ha liberado la versión 11.1.1.9 de OBIEE a través de OTN (y próximamente en e-delivery para producción).

Han pasado cerca de dos años desde que se liberara la versión anterior (11.1.1.7)… y un par de semanas desde que Mark Rittman escribiera un tweet acerca de esta circunstancia (¿casualidad? ;-))… y se deduce de alguna nota en Support (Doc ID 1996367.1) que será la versión terminal de OBI 11g.

Tras una rápida lectura de la documentación, destacamos algunas de las mejoras que ofrece la nueva versión:

  • Ampliación del soporte para Oracle 12c (BD In-memory, Exadata y In-memory en Exadata y EHCC -compresión columnar híbrida-)
  • Acceso a orígenes de datos Hyperion Planning
  • Añade Cloudera Impala a las BD soportadas
  • Definir formatos personalizados para exportar Cuadros de mando a Excel
  • Mejoras en la exportación a Excel/PDF (por fin se podrá cambiar la orientación !!!)
  • Mejoras en Aggregate Persistance y Summary Advisor
  • Posibilidad de utilizar HTML5 en gráficos y gauges en lugar de flash !!!
  • Integra Mobile Aplication Designer en la instalación estándar del producto

Y algunas características o funcionalidades que desaparecen:

  • Soporte para plataformas Windows 32 bits
  • Las BI Publisher Desktop Tools no soportan MS-Office 2013 (!!!)

Con similar discreción (y menos notas en support), ha sido publicada también en OTN la versión 11.1.1.9 de ODI, con un par de nuevas funcionalidades y un companion CD con los Aplication Adapters for Hadoop.

Con esto podremos entretenernos… hasta la llegada de OBI 12c, que esperamos sea próxima.

Extensión fechas de fin de soporte de Oracle Forms&Reports 11gR2

Nos alegra comentaros la ampliación del periodo en que Oracle dará soporte a la versión Forms&Reports 11gR2.

lifetime-support1

Como se puede observar en la tabla, Oracle ha ampliado la fecha de fin para el Premier Support hasta Diciembre de 2016 respecto a la fecha de finalización previa que era Octubre de 2016, pero donde realmente se aprecia la mejora es en la finalización del Extended Support en Diciembre del 2018, que recordemos tenía una fecha de finalización en Octubre de 2017. El soporte a la versión 11gR1 se mantiene igual.

En este otro post de nuestro blog, sobre Oracle Lifetime Support Policy, está explicado en qué consisten los 3 tipos de soporte (Premier, Extended y Sustaining) y están los links a los documentos actualizados de Oracle en que aparecen las fechas de finalización de soporte de cada producto Oracle (software y hardware).

Desde avanttic interpretamos esta ampliación del Lifetime Support de Oracle Forms&Reports como una clara declaración de intenciones de que Oracle sigue apostando por el producto… y ya os avanzo que próximamente publicaremos un post donde hablaremos de la versión Oracle Forms&Reports 12c y daremos un avance de las nuevas funcionalidades que incorpora.

Os dejo este link al documento Oracle Lifetime Support Policy – Oracle Fusion Middleware donde aparece la citada tabla en la página 8.

ADF Tips: Reglas de auditoría en JDeveloper – Introducción

Este post es el primero de una serie dedicados a las reglas de auditoría en JDeveloper, donde veremos las ventajas que nos proporcionan para tener un código que cumpla los requisitos de QA de nuestra empresa.

En este post os mostraré una visión rápida de las auditorías que proporciona JDeveloper, por defecto, para nuestro código. La idea es que en tiempo de codificación ya tengamos una herramienta de calidad del código (QA) y no lo dejemos todo para el final de nuestro proyecto, como ocurre normalmente, para esto JDeveloper nos proporciona las reglas de auditoría.

Utilizaremos JDeveloper 12c versión 12.1.3.0.0. Veremos una compilación de código sin las reglas de auditoría y después activándolas.

Empezaremos creando una aplicación.

Crear aplicación ADF

Ahora crearemos una clase java simple y la compilaremos. Veremos que no tenemos ningún mensaje de compilación.

Clase java

Ahora activaremos las reglas de auditorÍa que están en tools/preferences/audit, marcaremos el check de Code Assist y Audit During Compile.

Leer más…

Categorías:ADF Etiquetas: , ,

Si te apasiona Oracle, desarróllate profesionalmente en avanttic

avanttic talentoMañana, 1 de mayo, no es el día del trabajo sino el Día Internacional de los Trabajadores.

Es un buen día para plantearte si estás trabajando en la empresa en la que te gustaría desarrollarte como profesional IT. Si estás leyendo este post, en el blog de avanttic, un partner cuya visión es ser “el partner 100% Oracle”, es que el mundo Oracle te motiva.
avanttic_partner_100%_Oracle

Si quieres conocernos más, contacta con nosotros a través de rrhh@avanttic.com

Categorías:avanttic Etiquetas: , ,

Revista Oracleando nº 4 (SPOUG, abril 2014)

abril 27, 2015 Deja un comentario

04-avanttic-SPOUG-04-2015Se ha publicado el 4º número de la Revista Oracleando, publicada por SPOUG – Spain Oracle Users Group.

avanttic (socio institucional de SPOUG) ha colaborado en este número con publicidad (contraportada) sobre Oracle Mobile Platform y con la publicación de un resumen del caso de éxito de movilidad de Würth España, donde se explica cómo la compañía optó por digitalizar su catálogo físico, pidiendo a avanttic el desarrollo de una app (a utilizar desde tablets de 10″) para su fuerza comercial, utilizando el framework Oracle ADF Mobile. Los beneficios obtenidos lo son tanto a nivel de ahorro de costes como de aumento de ventas.

Las 50 páginas centrales están dedicadas a un monográfico especial sobre Cloud, con 10 artículos y un caso de cliente.

Este número de Oracleando es especial para avanttic pues además incluye una interesante entrevista realizada a Jesús García, Director General y Responsable de Tecnología de avanttic, en la que explica la evolución de la empresa y las perspectivas de futuro, y responde a preguntas sobre el premio recibido por avanttic hace unos pocos días: Oracle Database Specialized Partner of the Year 2015 (Spain).

Categorías:avanttic Etiquetas: , , ,
Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 165 seguidores