[Mono-dev] [PATCH] System.Messaging/AMQP: Receive, Send and Peek implementation

Atsushi Eno atsushi at ximian.com
Sun Dec 7 02:04:22 EST 2008


This is looking great, thanks for the implementation :) I'll try and
checkin the patch in the branch. I'm also thinking to move your code
to trunk.

Atsushi Eno

Michael Barker wrote:
> Hi,
> I have created a bugzilla entry
> (https://bugzilla.novell.com/show_bug.cgi?id=457089) that contains 4
> patches that add a chunk of functionality to the AMQP/System.Messaging
> implementation.  If possible, could someone commit them to the
> messaging-2008 branch.
> The patches add full support Peek, Receive and Send methods in
> MessageQueue, including transactions, selecting by id and correlation
> id, and with timeouts.  AMQP doesn't support all of the this
> functionality natively so some features have a sub-optimal
> implementation.  Specifically the XXXById and XXXByCorrelationId
> methods which pick up the messages from queue and performs the
> matching on the client side.  The main features that are still
> outstanding authentication, permissions, and encryption.
> MessageEnumerators are implemented, but the transactional
> RemoveCurrent methods can't be implemented due to the way transactions
> work with AMQP, however the non-transactional RemoveCurrent works
> fine.
> Another feature not support directly by AMQP is queue discovery.  It
> uses a declare model for getting queues, i.e. if-not-exist-create, and
> there is no mechanism for getting a list of existing queues.  At the
> moment this is implemented with a bit of a hack, the MessagingProvider
> hangs on a hashtable of the queues that have been created.  Therefore
> queues don't "exist" until they have been created with the current
> process and are declared in a whenever a queue is used.  While not
> 100% correct, it will work as long as clients do the following:
> string path = @".\private$\my-queue";
> MessageQueue q;
> if (MessageQueue.Exists(path) {
>     q = MessageQueue.Create(path);
> else
>     q = new MessageQueue(path);
> Which is fairly common pattern for using System.Messaging.
> Mike
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list

More information about the Mono-devel-list mailing list