LA TEORIA :
La tecnología de Message Queue Server permite que aquellas aplicaciones que se ejecutan en momentos diferentes se puedan comunicar a través de redes y sistemas heterogéneos, que podrían perder la conexión temporalmente. Las aplicaciones envían, reciben o realizan búsquedas peek (leen sin quitar) los mensajes de la cola. Message Queue Server es un componente opcional de Windows 2000 y Windows NT, y debe instalarse por separado.
La clase MessageQueue es un contenedor de Message Queue Server. Existen múltiples versiones de Message Queue Server, y la clase MessageQueue puede tener un comportamiento ligeramente diferente en función del sistema operativo que se utilice. Para obtener información sobre características específicas de cada versión de Message Queue Server, vea el tema "Lo nuevo en Message Queue Server" en Platform SDK en MSDN.
La clase MessageQueue proporciona una referencia a una cola de Message Queue Server. Se puede especificar una ruta de acceso en el constructor MessageQueue para establecer una conexión con un recurso existente o se puede crear una cola nueva en el servidor. Para poder llamar a Send(Object), Peek o Receive, es necesario asociar la nueva instancia de la clase MessageQueue a una cola existente. Después, es posible manipular propiedades de la cola tales como Category y Label.
MessageQueue admite dos tipos de recuperación de mensajes: sincrónica y asincrónica. Con los métodos sincrónicos, Peek y Receive, el subproceso debe esperar a que llegue un nuevo mensaje a la cola durante un período de tiempo específico. Los métodos asincrónicos, BeginPeek y BeginReceive, permiten que las tareas de la aplicación principal continúen realizándose en un subproceso independiente hasta que llegue un mensaje a la cola. Estos métodos utilizan objetos de devolución de llamada y objetos de estado para transmitir información entre los subprocesos.
El hecho de crear una nueva instancia de la clase MessageQueue no significa que se esté creando una nueva cola de Message Queue Server. En su lugar, es posible utilizar los métodos Create(String), Delete y Purge para administrar las colas en el servidor.
A diferencia de Purge, Create(String) y Delete son miembros static, por lo que se les puede llamar sin crear una nueva instancia de la clase MessageQueue.
Se puede establecer la propiedad Path del objeto MessageQueue con uno de estos tres nombres: un nombre descriptivo, FormatName o Label. El nombre descriptivo, que se define mediante las propiedades MachineName y QueueName de la cola, es MachineName \ QueueName para una cola pública y MachineName \ Private$ \ QueueName para una cola privada. La propiedad FormatName concede acceso sin conexión a las colas de mensajes. Por último, se puede utilizar la propiedad Label de la cola para establecer la propiedad Path.
Para obtener una lista con los valores de propiedad iniciales de una instancia de MessageQueue, vea el constructor MessageQueue.
CASO REAL
mi primera experiencia con el MessageQueue fue algo simple por la necesidad de comunicar 2 aplicaciones diferentes en una misma pc (waaa es cierto algo tan simple pero por ai entre jeje).
pero ahora ya disfrutando de todo su poder del MessageQueue como por ejem
enviar objetos y recibir los mismo.
el soporte de transaciones usadas en el MessageQueue.
el poder enviar mensajes de una pc a otra o a todas !!!! con esto hize un aplicativo de progresivos la cual recibia el mensaje desde una pagina aspx. lo encolaba a mi servicio (procesaba) y enviaba el mensaje a las pc que estaban en mi red. y en dichas pc habian un aplicativo que procesaba el mensaje y hacia el procesos correspondiente.
lo bueno de esto fue que en mi caso yo tengo un alta concurrencia (19.500 mensajes por minuto)
y el MessageQueue se comporto muy bien !!! nada de WCF. TCP. senmessage, y otas hierbas NO INVENTE LA RUEDA jejeje ufff un gran alivio.
usando el fra
les dejo los link de codeproject para que los puedan chekear son muy buenos ejemplos.
http://www.codeproject.com/info/search.aspx?artkw=messagequeue
saludos
ReDsKULLS

0 comentarios:
Publicar un comentario