This is my Windsor configuration:

public void Install(IWindsorContainer container, IConfigurationStore store)
{
    container.Kernel.AddFacility("factory", new FactorySupportFacility());
    container.Kernel.AddFacility("logging", new
LoggingFacility(LoggerImplementation.Log4net, "log4net.config"));
    container.Register(
        Component.For<ISessionFactory>().Instance(sessionFactory),

 Component.For<ISession>().UsingFactoryMethod(sessionFactory.OpenSession)
            .LifeStyle.Is(LifestyleType.Transient)
        );
}

I agree Fabio, this has to be some sort of problem in my configuration. By I
seriously can't find anything that's wrong. I open a session at the
beginning of a message handler, wrapped in a distributed transaction and
when the transaction commits the changes to my entity should persist to the
Database.
They just don't and I have no reasonable explanation for it.

This is btw the Fluent NH code that configures NH:

public ISessionFactory CreateSessionFactory(bool buildSchema = false)
{
    var persistenceConfigurer = configuration.GetDatabase();
    var autoPersistenceModel =
        AutoMap.AssemblyOf<AggregateRoot>(new AutomappingConfig());

    return Fluently.Configure()
        .Database(persistenceConfigurer)
        .Mappings(m =>
                        {
                            m.AutoMappings.Add(autoPersistenceModel);
                        })
        .ExposeConfiguration(SetEventListeners)
        .ExposeConfiguration((cfg) => { if (buildSchema) BuildSchema(cfg);
})
        .ExposeConfiguration(UpdateSchema)
        .BuildSessionFactory();
}

greetings Daniel

On Sat, Sep 11, 2010 at 2:28 PM, Fabio Maulo <[email protected]> wrote:

> If you write that code in a pure-100%-NH-based-test you will see an update.
>
> On Fri, Sep 10, 2010 at 9:34 PM, Daniel Hölbling <[email protected]>wrote:
>
>> I've just spent almost 3 hours debugging and still can't find a fault with
>> my code.
>>
>> The reproduction looks like this:
>>
>> using (var tx = session.BeginTransaction())
>> {
>>     var product = session.Get<Product>(message.ProductDto.Id);
>>     product.Name = message.ProductDto.Name;
>>     product.PartNumber = message.ProductDto.PartNumber;
>>     product.Price = message.ProductDto.Price;
>>     session.Update(product);
>>     tx.Commit();
>>     Logger.InfoFormat("Updated Product {0}", product.Id);
>> }
>>
>> I change some value of the entity in the UI, this code is run (over the
>> wire) and the IsDirty() Method is set to False and no Update is generated.
>> (Checked with NHProf..)
>> I just re-checked and upon changing the value of product.PartNumber for 8
>> times it didn't generate a UPDATE once.
>>
>> It gets significantly worse once I run this with distributed transactions
>> from NServiceBus where I loose every second UPDATE to the database without
>> any error or anything.. It just doesn't update the DB since it doesn't think
>> the session is dirty.
>>
>> Is there anything I should be aware of?
>>
>> greetings Daniel
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "nhusers" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected]<nhusers%[email protected]>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/nhusers?hl=en.
>>
>
>
>
> --
> Fabio Maulo
>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "nhusers" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<nhusers%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/nhusers?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" 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/nhusers?hl=en.

Reply via email to