es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Spring JMS en Wildfly Appserver.

Estoy utilizando un Spring-Boot-WAR desplegado en Wildfly 14 y he implementado un JmsListener que está conectado a una cola. El JmsListener ha establecido la concurrencia en 5 y cuando la aplicación Spring se está iniciando en modo standalone, veo 5 oyentes trabajando en paralelo. Pero en combinación con Wildfly 14, solo se ejecuta 1 oyente.

En JEE, anotaría el MessageDrivenBean con @Pool y luego configuraría el max-pool-size para el pool especificado. Pero creo que el Spring-Listener se conecta solo al MDB-Pool predeterminado que tiene un tamaño de 1.

¿Existe alguna forma de conectar el JmsListener con una pool de instancia de bean específica? ¿O hay alguna otra forma de definir un max-pool-size individual para este JmsListener?

standalone.xml





JmsListener

@JmsListener(destination = JMS_MESSAGE_NAME, concurrency = "5")
public void receiveFromMessageQueue(Message msg) {
  ...
}
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible conectar el JmsListener con una piscina de instancias de bean específica. Se puede configurar la piscina de instancias de bean en el archivo “standalone.xml”. Por ejemplo, se puede agregar un “strict-max-pool” con un “max-pool-size” de 5 y establecer el “instance-acquisition-timeout” en 5 minutos. Luego se puede especificar el nombre del “strict-max-pool” en la anotación “@JmsListener”.

    @JmsListener(destination = JMS_MESSAGE_NAME, concurrency = "5", beanInstancePoolName = "individual-strict-max-pool")
    public void receiveFromMessageQueue(Message msg) {
       ...
    }
    

Comments are closed.