Gestión de hebras y Spring Framework

Utilice la información de las secciones siguientes para evitar problemas potenciales con las hebras no gestionadas.

Hebras no gestionadas

No utilice un escenario que pueda crear hebras no gestionadas, por las siguientes razones:
  • El servidor de aplicaciones no reconoce las hebras no gestionadas.
  • Las hebras no gestionadas no tienen acceso a la información contextual de Java™ EE.
  • Las hebras no gestionadas pueden utilizar recursos sin que las supervise el servidor de aplicaciones.
  • Las hebras no gestionadas pueden afectar de manera desfavorable a las funciones de servidor de aplicaciones, por ejemplo concluir de manera ordenada o recuperar recursos de anomalías.
  • Un administrador no puede controlar el número de hebras no gestionadas ni el uso que realizan éstas de los recursos.
Los escenarios siguientes son ejemplos de escenarios de Spring Framework que se deben evitar:
  • registerShutdownHook

    Evite utilizar la clase AbstractApplicationContext y las subclases de Spring Framework. Estas clases incluyen el método público registerShutdownHook, que crea una hebra y la registra en la JVM (Java virtual machine) para ejecutar al concluir para cerrar el contexto de aplicación. Como alternativa, una aplicación puede utilizar los avisos de ciclo de vida que recibe del contenedor de servidor de aplicaciones para llamar al método de cierre explícitamente en el contexto de aplicación.

  • WeakReferenceMonitor

    Spring Framework proporciona cómodas clases para el desarrollo simplificado de componentes EJB. Sin embargo, estas clases cómodas producen una hebra no gestionada que el objeto WeakReferenceMonitor utiliza para la limpieza.

Agrupación de hebras

WebSphere Application Server soporta la utilización de la clase WorkManagerTaskExecutor de Spring Framework para ejecutar el trabajo asíncronamente.

La clase WorkManagerTaskExecutor utiliza agrupaciones de hebras gestionadas por el servidor de aplicaciones y delega a una instancia de WorkManager configurada. Para obtener información sobre cómo configurar un gestor de trabajo, consulte los temas relacionados.

No utilice otras clases TaskExecutor que se proporcionan con Spring Framework, porque pueden iniciar hebras no gestionadas.

Puede utilizar el nombre JNDI (Java Naming and Directory Interface) del gestor de trabajo configurado como una propiedad workManagerName para definir una instancia WorkManagerTaskExecutor en el archivo de configuración de Spring. El ejemplo siguiente utiliza el nombre JNDI de DefaultWorkManager en el servidor de aplicaciones, es decir wm/default:
<bean id="myTaskExecutor" 
  class="org.springframework.scheduling.commonj.WorkManagerTaskExecutor">
  <property name="workManagerName" value="wm/default" />
</bean>

Planificación

Puede utilizar el paquete de planificación de CommonJ WorkManager en Spring Framework para trabajar con hebras gestionadas por el servidor de aplicaciones. Evite utilizar otros paquetes, por ejemplo el planificador Quartz o el temporizador del JDK (Java SE Development Kit), porque pueden iniciar hebras no gestionadas.


Icon that indicates the type of topic Concept topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cspr_design
File name: cspr_design.html