Hi everybody,

As you may already know, I am porting Envers to .NET. In doing this I
ran into several issues that need a very good internal knowledge of
how NHibernate works. So I proposed my company to include in the
project's budget costs for NHibernate consultancy for the Envers
porting task.
We need somebody with a good knowledge of how NHibernate functions
internally to help with resolving  issues like the following one, so,
if anyone is interested, please contact me to discuss it more in
detail.

This is the issue that I'm facing presently: on Envers initialization
I do a
transaction.RegisterSynchronization(My_ISynchronization_ImplementingClassInstance)
(on AuditSyncManager.get) but this does not lead to calling the
synchronization methods (Before and AfterCompletion). The problem
seems to be that AdoTransaction's Commit method is not called at all.
As a workaround, I tried to call the BeforeCompletion method manually,
at the end of OnPost... method. This works for OnPostInsert but does
not work on OnPostUpdate as it is called after ActionQueue's
ExecuteActions and Flush throws an error if called.
The test application instantiates NHibvernate through Spring.NET.
Could this be because of Spring.NET?
The Visual Studio 2008 solution can be found on SVN at:
https://nhcontrib.svn.sourceforge.net/svnroot/nhcontrib/trunk/sandbox/simondud/Envers.NET
The unit test that reproduces the problem is HibernateStartedTest in
NHibernate-Envers.tests project.


Looking forward for your answers,
Simon Duduica








Reply via email to