NH Prof New FeatureError Detection
The feature for the day is detecting & notifying the user about NHibernate errors, warning messages and other things that require human attention. As a simple example, let us take this common error:
public class ErrorSavingToDatabase : IScenario { public void Execute(ISessionFactory factory) { using(var s = factory.OpenSession()) using(var tx = s.BeginTransaction()) { s.Save(new Blog { Title = "Will error", CreatedAt = DateTime.MinValue// cause error }); tx.Commit(); } } }
Which will give us:
There are quire a few things going on in here.
First, we can see that NH Prof correctly detected the statement that caused an error and marked it as failed. We can also see the next statement, which give us the actual error details about the actual issue. This means that we have direct access to everything, and can usually understand what is going on very easily, by seeing both the error and the statement that caused it.
This isn’t actually limited to issues that are being raised from exceptions executing SQL queries, there are several cases where NHibernate itself needs to let you know about an issue. In those cases, the profiler will detect and display the message and expose it to you in a visible manner.
More posts in "NH Prof New Feature" series:
- (09 Dec 2010) Alert on bad ‘like’ query
- (10 Dec 2009) Filter static files
- (16 Nov 2009) Exporting Reports
- (08 Oct 2009) NHibernate Search Integration
- (19 Aug 2009) Multiple Session Factory Support
- (07 Aug 2009) Diffing Sessions
- (06 Aug 2009) Capturing DDL
- (05 Aug 2009) Detect Cross Thread Session Usage
- (22 May 2009) Detecting 2nd cache collection loads
- (15 May 2009) Error Detection
- (12 May 2009) Queries by Url
- (04 Feb 2009) View Query Results
- (18 Jan 2009) Superfluous <many-to-one> update
- (18 Jan 2009) URL tracking
- (10 Jan 2009) Detecting distributed transactions (System.Transactions)
- (06 Jan 2009) The Query Cache
- (05 Jan 2009) Query Duration
- (24 Dec 2008) Unbounded result sets
- (24 Dec 2008) Row Counts
Comments
Cool feature! Might want to fix the "exeucte", though :)
Cool :)
When these changes will be available ?
I was waiting for this feature to get in there...this will help alot.
This is going to be helpful.
especially considering that NHibernate likes to wrap the SQL exceptions into his own AdoExceptions and put some kind of anemic message like "could not execute query".
You then have to drill down into the inner exception to see what the actual problem was.
Comment preview