Miles, Sorry for taking so long to reply. Somehow I missed your post.
I've run into friction debugging ESENT files in the past too, and I definitely agree it'd be useful to add in hooks to allow debugging without taking the service offline. Corey and I have thrown around the idea of having the queues self-host a small web app that would allow you to view diagnostic information about the queues, similar to the FubuMVC.Diagnostics package in FubuMVC. Corey's actually started work on a new queue project for the next incarnation of FubuTransportation<http://coreykaylor.com/blog/2012/12/01/fubutransportation-first-thoughts/>. It would end up being an alternative messaging solution to Rhino.ServiceBus, and built-in diagnostics has been one of the goals. On Tuesday, April 2, 2013 3:38:03 PM UTC-6, miles wrote: > > Hi Ryan, > > That sounds useful. I wonder if there might be some mileage in making it > possible to hook into purge / history to carry out some action? For > example, dumping the messages to some text file instead of purging > completely (or if the history is disabled). > > Semi-related to this, I was trying to debug an app the other day, I > discovered it can be quite tricky to get to look at the actual message > history when you don't want to stop the service that's running. I stumbled > across this code which I don't know whether you're aware of: > > EsentInteropSamples > DbUtil > http://managedesent.codeplex.com/SourceControl/changeset/view/81201#534393 > > http://managedesent.codeplex.com/SourceControl/changeset/view/81201#749469 > EsentInteropTests > BackupRestoreTests.cs > > for backing up and dumping the esent structures. I don't know whether > easy backups and dumps open up any other avenues? > > Cheers, > > Miles > > > On Friday, March 15, 2013 9:21:18 PM UTC, Ryan wrote: >> >> I've created a pull request to fix issues with purging in Rhino.Queues, >> namely the VersionStoreOutOfMemory exceptions that can be thrown when >> purging a large number of messages from the history. It's now batching the >> ESENT transactions to prevent a long-running transaction that causes that >> exception. >> >> I've also added a QueueManagerConfiguration class so you can configure >> the purge options in your application. I'll next be submitting a pull >> request for RSB to expose the QueueManagerConfiguration in the container so >> it can be modified by the application. It currently has settings to >> specify whether to enable/disable processed and outgoing message history, >> and specify how many/how long messages should be kept in the history. >> >> It uses the same defaults that were already in Rhino.Queues: history is >> enabled for processed and outgoing messages, a minimum of 100 messages are >> kept for both the processed and outgoing histories, and messages are kept >> in the history for a minimum of one day. That last setting is where the >> exceptions were most likely to occur, especially if the application >> processes a lot of messages each day. That was also the major contributor >> to large esent file sizes. You'll likely want to configure that to >> something that makes sense for your application. >> >> Any thoughts? >> -Ryan >> > -- You received this message because you are subscribed to the Google Groups "Rhino Tools Dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/rhino-tools-dev. For more options, visit https://groups.google.com/groups/opt_out.
