Diferencia entre revisiones de «Prioridad De Mensajes JMS»

De Dos Ideas.
Saltar a: navegación, buscar
 
(No se muestra una edición intermedia de otro usuario)
Línea 1: Línea 1:
 +
[[Categoría: JMS]]
 
Como sabemos una cola de mensajes como su nombre lo indica va encolando mensajes que le van llegando, si agregamos en el envió de un mensaje una Prioridad, el mensaje con mayor prioridad se va a agregar primero en la cola de mensajes, o sea que va a ser el primero en salir.
 
Como sabemos una cola de mensajes como su nombre lo indica va encolando mensajes que le van llegando, si agregamos en el envió de un mensaje una Prioridad, el mensaje con mayor prioridad se va a agregar primero en la cola de mensajes, o sea que va a ser el primero en salir.
  
Línea 5: Línea 6:
 
===Cómo asignarle una Prioridad a un mensaje===
 
===Cómo asignarle una Prioridad a un mensaje===
 
Siguiendo con el ejemplo de Leo (el de las tostadas) ahora vamos a pedir tostadas pero con prioridad:
 
Siguiendo con el ejemplo de Leo (el de las tostadas) ahora vamos a pedir tostadas pero con prioridad:
<pre>
+
<code java>
 
  import javax.jms.*;
 
  import javax.jms.*;
  
Línea 48: Línea 49:
 
     }
 
     }
 
}
 
}
</pre>
+
</code>
 +
 
 
Con esto hicimos que el mensaje de pedir tostadas que colocado primero en la cola, o por lo menos logramos que se ponga último en los mensajes con prioridad 9.
 
Con esto hicimos que el mensaje de pedir tostadas que colocado primero en la cola, o por lo menos logramos que se ponga último en los mensajes con prioridad 9.
  
 
==Ver también==
 
==Ver también==
 
* [[Prioridad De Mensajes En WebLogic]]
 
* [[Prioridad De Mensajes En WebLogic]]

Revisión actual del 11:59 28 ago 2009

Como sabemos una cola de mensajes como su nombre lo indica va encolando mensajes que le van llegando, si agregamos en el envió de un mensaje una Prioridad, el mensaje con mayor prioridad se va a agregar primero en la cola de mensajes, o sea que va a ser el primero en salir.

JMS propone 10 niveles de Prioridad, de 0 a 9, la prioridad por defecto es 4, la mas alta es 9 y la mas baja es 0. O sea que si enviamos mensajes con diferentes números de prioridades estos se van a ir ordenando de mayor a menor

Cómo asignarle una Prioridad a un mensaje

Siguiendo con el ejemplo de Leo (el de las tostadas) ahora vamos a pedir tostadas pero con prioridad:

import javax.jms.*;
public class Dib {
    public final static String JNDI_FACTORY="weblogic.jndi.WLInitialContextFactory";
    public final static String PROVIDER_URL="t3://localhost";
    public final static String JMS_FACTORY="HeladeraCF";
    public final static String QUEUE="HeladeraQueue";
    public void pedirTostadas() {
        //Obtenemos el !InitialContext
        Hashtable env = new Hashtable();

env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);

        env.put(Context.PROVIDER_URL, PROVIDER_URL);
        InitialContext ctx = new InitialContext(env);
         //Buscamos el factory y la conexiona la col
         QueueConnectionFactory qconFactory = (QueueConnectionFactory) ctx.lookup(JMS_FACTORY)
         QueueConnection qcon = qconFactory.createQueueConnection();
          //Buscamos la cola
          QueueSession qsession = qcon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
          Queue queue = (Queue) ctx.lookup(QUEUE);
          //Creamos el mensaje
          TextMessage msg = qsession.createTextMessage();
          msg.setText("Gaz, quiero 4 tostadas");
          QueueSender qsender = qsession.createSender(queue);
          //Asignamos Prioridad
          qsender.setPriority(9);
          //Enviamos el mensaje
          qsender.send(msg);
          //somos prolijos y cerramos todo
          qsender.close();
          qsession.close()
          qcon.close();
    }

}

Con esto hicimos que el mensaje de pedir tostadas que colocado primero en la cola, o por lo menos logramos que se ponga último en los mensajes con prioridad 9.

Ver también