How would you change that?
On 11.09.2010, at 15:22, Fabio Maulo <[email protected]> wrote:
mmmmmm
Component.For<ISession>().UsingFactoryMethod(sessionFactory.OpenSession)
.LifeStyle.Is(LifestyleType.Transient)
this is smell a lot
On Sat, Sep 11, 2010 at 10:11 AM, Daniel Hölbling <[email protected]>wrote:
> 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]<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].
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.