Soporte de las características JMS 2.0 en WebSphere Application Server versión 9.0
JMS 2.0 introduce muchas funciones nuevas que mejoran la facilidad de uso, la simplicidad y el soporte asíncrono de las aplicaciones JMS. JMS 2.0 forma parte de la plataforma Java EE 7 y se puede utilizar en las aplicaciones web Java EE o EJB (junto con el entorno J2SE).
Las siguientes son algunas de las mejoras significativas de JMS 2.0:
- API simplificada
- Las API en JMS 2.0 se han simplificado y son más fáciles de utilizar en comparación con JMS 1.0. Ahora se hace referencia a las API JMS 1.1 existentes como API clásicas. La API simplificada presenta tres nuevas interfaces, como los objetos JMSContext, JMSProducer y JMSConsumer. Para obtener más información, consulte la documentación de las especificaciones JMS 2.0.
- Soporte de Autocloseable
- En JMS 2.0, las interfaces Connection, Session, MessageProducer, MessageConsumer y QueueBrowser se han modificado para ampliar la interfaz java.lang.Autocloseable. Las aplicaciones pueden crear estos objetos utilizando una sentencia try-with-resources de Java SE 7, que elimina la necesidad de que las aplicaciones llamen explícitamente a close() cuando estos objetos ya no se necesiten. Para obtener más información, consulte la documentación de las especificaciones JMS 2.0.
- Inyección de dependencias de contexto (inyectando JMSContext en la aplicación Java EE)
- JMS 2.0 permite que se inyecte JMSContext en la aplicación web Java EE o EJB. Por ejemplo: @Inject @JMSConnectionFactory( "jms/InjectedconnectionFactory") private JMSContext injectedcontext. Para obtener más información, consulte la documentación de las especificaciones JMS 2.0.
- Soportes de suscripciones no duraderas compartidas:
- JMS 2.0 da soporte a la compartición de suscripciones no duraderas. Anteriormente solo se podían compartir las suscripciones duraderas. Mediante la compartición de las suscripciones no duraderas, varios consumidores se pueden conectar a cualquier tipo de suscripciones configuradas para su compartición. Para obtener más información, consulte la documentación de las especificaciones JMS 2.0.
- Retardo de entrega
- JMS 2.0 da soporte al retardo de entrega en un mensaje. Si se especifica retardo de entrega, el proveedor de JMS no entrega los mensajes a los consumidores hasta que ha transcurrido el retardo de entrega. Para obtener más información, consulte las API send() en JMSProducer y MessageProducer en la documentación de las especificaciones de JMS 2.0.
- Envío asíncrono
- JMS 2.0 da soporte al envío de mensajes asíncronos. En JMS 1.1 anterior, la operación de envío de JMS era síncrona, es decir, el lado del cliente bloqueaba el mensaje hasta que recibía una respuesta del servidor. En el método asíncrono del envío de mensajes, el método send envía el mensaje al servidor y a continuación devuelve el control a la aplicación sin esperar una respuesta del servidor. En lugar de bloquearse de forma improductiva mientras el cliente JMS espera una respuesta, la aplicación puede participar en otros sucesos útiles, como enviar o procesar otros mensajes. Cada vez que el proveedor de JMS responde con resultados, se llama a un método adecuado (onCompletion o onException) de la interfaz CompletionListeners. Para obtener más información, consulte las API send() JMSProducer y MessageProducer en la documentación de las especificaciones de JMS.
- Nuevas propiedades de activación de MDB:
- Como parte de la especificación de EJB 3.2, se han añadido las siguientes cuatro propiedades de configuración de activación de MDB: connectionFactoryLookup, destinationLookup, clientId y subscriptionName. Websphere Application Server ya soportaba las propiedades clientId y subscriptionName, y el soporte ahora se ha ampliado a dos nuevas propiedades, connectionFactoryLookup y destinationLookup.
- Definiciones de recursos JMS en aplicaciones Java EE:
- Se da soporte a dos nuevas anotaciones, javax.jms.JMSConnectionFactoryDefinition y javax.jms.JMSDestinationDefinition, como parte de la especificación JMS 2.0. Estas dos nuevas anotaciones están soportadas en las aplicaciones web Java EE o EJB. JMSConnectionFactoryDefinition se utiliza para configurar el recurso javax.jms.ConnectionFactory, y JMSDestinationDefinition se utiliza para configurar el recurso de destino (javax.jms.Queue o javax.jms.Topic)