But take care with your new session-management-pattern called: "new session per each one need it and hopefully disposed by IoC container"
On Sat, Sep 11, 2010 at 2:12 PM, Daniel Hölbling <[email protected]>wrote: > I think I tracked down the bug. It seems to be the cause of my mappings. > FNH apparently created a joined-subclass mapping. Damn I should have checked > that before. > Now that I removed the joined subclass the UPDATE works reliably.. :( > > Thanks for your help guys! > > > On Sat, Sep 11, 2010 at 6:51 PM, Fabio Maulo <[email protected]> wrote: > >> In your case you hope that Windsor take the responsibility to dispose the >> session. >> >> >> On Sat, Sep 11, 2010 at 1:04 PM, Daniel Hölbling >> <[email protected]>wrote: >> >>> I just checked. This Windsor configuration is very similar to what ayende >>> was using in his Alexandria sample. >>> In my case Windsor is responsible for disposing of the object. >>> >>> Greetings Daniel >>> >>> >>> On 11.09.2010, at 16:48, "José F. Romaniello" <[email protected]> >>> wrote: >>> >>> You can use CurrentSessionContext, inject ISessionFactory in your >>> DAOs/REpositories/QueryObject/Whatever and use sf.GetCurrentSession() (or >>> sf.OpenSession() when you need) >>> >>> >>> >>> 2010/9/11 Daniel Hölbling < <[email protected]>[email protected] >>> > >>> >>>> How would you change that? >>>> >>>> >>>> On 11.09.2010, at 15:22, Fabio Maulo < <[email protected]> >>>> [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]><[email protected]> >>>> [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]><[email protected]> >>>>> [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]><[email protected]> >>>>>> [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]><[email protected]> >>>>>>> [email protected]. >>>>>>> To unsubscribe from this group, send email to >>>>>>> <nhusers%[email protected]><[email protected]> >>>>>>> [email protected]. >>>>>>> For more options, visit this group at >>>>>>> <http://groups.google.com/group/nhusers?hl=en><http://groups.google.com/group/nhusers?hl=en> >>>>>>> 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]><[email protected]> >>>>>> [email protected]. >>>>>> To unsubscribe from this group, send email to >>>>>> <nhusers%[email protected]><[email protected]> >>>>>> [email protected]. >>>>>> For more options, visit this group at >>>>>> <http://groups.google.com/group/nhusers?hl=en><http://groups.google.com/group/nhusers?hl=en> >>>>>> 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]><[email protected]> >>>>> [email protected]. >>>>> To unsubscribe from this group, send email to >>>>> <nhusers%[email protected]><[email protected]> >>>>> [email protected]. >>>>> For more options, visit this group at >>>>> <http://groups.google.com/group/nhusers?hl=en><http://groups.google.com/group/nhusers?hl=en> >>>>> 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]> >>>> [email protected]. >>>> To unsubscribe from this group, send email to >>>> <[email protected]> >>>> [email protected]. >>>> For more options, visit this group at >>>> <http://groups.google.com/group/nhusers?hl=en> >>>> 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]> >>>> [email protected]. >>>> To unsubscribe from this group, send email to >>>> <nhusers%[email protected]> >>>> [email protected]. >>>> For more options, visit this group at >>>> <http://groups.google.com/group/nhusers?hl=en> >>>> 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. >>> >>> -- >>> 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.
