https://github.com/hibernating-rhinos/rhino-queues/blob/master/linqpad-query.linq

On Fri, Sep 16, 2011 at 7:52 AM, MichaelK <[email protected]> wrote:

> We are not using the concept of the delayed messages so I don't think
> that is our problem. To provide some background, I think our workflow
> is very basic and I would not mind a sanity check as RQ is new to me.
> We have a Windows Service accepting messages from numerous clients via
> WCF enqueueing messages to RQ . Then another background thread is
> processing those messages. We only have 1 RQ where as in the unit
> tests I have seen a Sender and Receiver.
>
> Here is the main parts of how we wrapped RQ. The key here is that we
> have one instance of my RhinoQueue below and the WCF side just calls
> Enqueue() and the background thread just calls Dequeue().
>
> Now in the Enqueue() method I was originally using EnqueueDirectlyTo()
> vs Send() but noticed I could get the ESENT DB to become corrupt that
> way. Also notice GetCount(). Originally I was using
> GetNumberOfMessages() but you stated that was a bug, so for now I am
> getting collection count.
>
> One last thing, where is that linqpad sample query? I grabbed the
> latest version and don’t see that anywhere. Any guidance would be
> appreciated.
>
> public class RhinoQueue<T> : IQueue<T>
>    {
>        private readonly QueueManager queue;
>        private readonly string queueName;
>        private readonly string uri;
>
>        public RhinoQueue(string queueName, int port)
>        {
>            this.queueName = queueName;
>            this.uri = string.Format("rhino.queues://localhost:{0}/
> {1}", port, queueName);
>            queue = new QueueManager(new
> IPEndPoint(IPAddress.Loopback, port), queueName);
>            queue.CreateQueues(queueName);
>            queue.Start();
>        }
>
>
>        public int GetCount()
>        {
>            return queue.GetAllMessages(queueName, null).Count();
>            //looks to be bug in how below method call gets count.
> Sticking with above call for now
>            //return queue.GetNumberOfMessages(queueName);
>        }
>
>        public void Enqueue(T item)
>        {
>            using (var tx = new TransactionScope())
>            {
>                queue.Send(new Uri(uri), new MessagePayload {Data =
> ObjectToByteArray(item)});
>                tx.Complete();
>            }
>        }
>
>        public T Dequeue()
>        {
>            using (var tx = new TransactionScope())
>            {
>                var msg = queue.Receive(queueName, new TimeSpan(0, 0,
> 30));
>                tx.Complete();
>                return (T) ByteArrayToObject(msg.Data);
>             }
>        }
> }
>
>
> On Sep 15, 9:42 pm, Corey Kaylor <[email protected]> wrote:
> > There is a sample linqpad query that I've used in the past inside the
> > rhino-queues repository when I need to peek into the contents of the
> queues.
> > Curious though, are the alleged missed messages delayed messages? We just
> > found a bug this afternoon that would caused timed messages to not get
> > received under certain conditions.
> >
> >
> >
> >
> >
> >
> >
> > On Thu, Sep 15, 2011 at 1:49 PM, MichaelK <[email protected]> wrote:
> > > I am trying to troubleshoot some alleged missed messages and I wanted
> > > to see what was stored in the RhinoQueue esent DB. My initial thought
> > > was to just copy over the esent files that RQ creates from Test Server
> > > to my machine and write a simple console app to view what has been
> > > processed. I was unable to open up the file using QueueManager
> >
> > > var queue = new QueueManager(new IPEndPoint(IPAddress.Loopback,
> > > 45231), path);
> >
> > > My next though was to use one of the two free viewers I found
> > > regarding esent DBs
> >
> > >http://www.orthogonal.com.au/computers/esent/
> > >http://www.woany.co.uk/news/esedbviewer-v1-0-0/
> >
> > > Both of those applications came back with DirtyShutdownExeptions.
> > > (Note I also had to rename the file and add the .edb extension. I am
> > > assuming RQ is just not creating the esent DB with that extension)
> >
> > > Any ideas on how one can go about troubleshooting RQ. I would like to
> > > be able to review what is in the esent DB. I would assume anyone using
> > > RQ has come accross the same requirements so I am open to any
> > > suggestions. I would think I should be able to copy over the RQ esent
> > > files and view them on another machine
> >
> > > --
> > > You received this message because you are subscribed to the Google
> Groups
> > > "Rhino Tools Dev" group.
> > > To post to this group, send email to [email protected].
> > > To unsubscribe from this group, send email to
> > > [email protected].
> > > For more options, visit this group at
> > >http://groups.google.com/group/rhino-tools-dev?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Rhino Tools Dev" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/rhino-tools-dev?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Rhino Tools Dev" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rhino-tools-dev?hl=en.

Reply via email to