Are you using sessionscope per request? If yes, where is the scope created and disposed. Flushing/writing to the db takes place when the scope is disposed in such a scenario.
2009/5/1 Hexedit <[email protected]>: > > It is not a bi-directional association. The code is not being called > within a try-catch block as well. Here is my action that is calling > the code: > > [AcceptVerbs(HttpVerbs.Post)] > public ActionResult Create(FormCollection form) > { > > RentalProperty model = new RentalProperty(); > TryUpdateModel<Address>(model.Address, "Address", new[] > { "Street", "Town", "State", "ZipCode" }, form.ToValueProvider()); > TryUpdateModel<RentalProperty>(model, new[]{"MLSNumber", > "AllowsPets", "MaxOccupants", "Price", "Beds", "Baths", > "SquareFeet", "IsMultiFamily", > "IsFurnished", "HasPrivateEntrance", "HasDiningRoom", > "HasStove", "Has Refridgerator", "HasDishWasher", > "HasMicrowave", "HasWasherDryer", "GarageType", > "BedSize", "Rentalfloor", "AirConditioning", "Description", "Agent"}, > form.ToValueProvider()); > if (ModelState.IsValid) > { > model.Create(); > TempData["message"] = "Rental with address " + > model.Address.DisplayAddress + " successfully created!"; > return RedirectToAction("AddPictures", new { id = > model.ID }); > } > else > { > SetupList(); > return View(model); > } > } > > I do not know where there would be something calling a VoteRollback. > I've been butting my head against my desk with this problem for the > past day or so, my posting this here was sort of a last resort hoping > someone could help. I too have no idea why it would RollBack as there > is no logged error from NHibernate. I will continue to investigate > this some more but like I said I think I've hit a wall with this one. > > On May 1, 9:08 am, Markus Zywitza <[email protected]> wrote: >> Is this a bidirectional association? If yes, is the other end set to >> inverse=true? >> >> Are you sure that you don't have a hidden try-catch-block somewhere that >> catches an exception and call transactionScope.VoteRollback()? This is a >> more common problem than most people can imagine. >> >> If none of the above is the problems core, please isolate the problem by >> removing all properties except the nullable many-to-one and the entities ID >> to reassure that not one of the other properties causes the rollback. >> >> Please don't misunderstand me as ruse, but I have never heard of spontaneous >> rollbacks of NHibernate before. >> >> -Markus >> >> 2009/5/1 Hexedit <[email protected]> >> >> >> >> > First off I want to say thanks in advance for those who take the time >> > to read this and help out with this problem. >> >> > I am writing an application using Castle ActiveRecord and Asp.NET MVC >> > and I've run into an issue I can't seem to diagnose. >> >> > I have a class with the following property. >> >> > Code: >> >> > [BelongsTo("listing_agent", NotNull = false, NotFoundBehaviour = >> > NotFoundBehaviour.Ignore, >> > Cascade = CascadeEnum.None)] >> > public virtual Employee Agent >> > { >> > get { return _agent; } >> > set { _agent = value; } >> > } >> >> > The business logic behind this is that I have a bunch of sales >> > listings which may or may not have an Agent associated with it. >> > Whenever I try to create a sales listing with the Agent set to null, >> > the insert completes with no exception but is then immediately rolled >> > back by NHibernate. Here is the associated logs with this transaction: >> >> > Quote: >> >> > 16:22:24 [5] DEBUG NHibernate.Impl.SessionImpl - opened session at >> > timestamp: 633767053447 >> > 16:22:24 [5] DEBUG NHibernate.Transaction.AdoTransaction - Begin >> > (Unspecified) >> > 16:22:24 [5] DEBUG NHibernate.Connection.DriverConnectionProvider - >> > Obtaining IDbConnection from Driver >> > 16:22:24 [5] DEBUG >> > NHibernate.Event.Default.DefaultSaveOrUpdateEventListener - saving >> > transient instance >> > 16:22:24 [5] DEBUG NHibernate.Event.Default.AbstractSaveEventListener >> > - saving [Westshore.Models.RentalProperty#<null>] >> > 16:22:24 [5] INFO NHibernate.Engine.Cascade - processing cascade >> > NHibernate.Engine.CascadingAction+SaveUpdateCascadingAction for: >> > Westshore.Models.RentalProperty >> > 16:22:24 [5] INFO NHibernate.Engine.Cascade - done processing cascade >> > NHibernate.Engine.CascadingAction+SaveUpdateCascadingAction for: >> > Westshore.Models.RentalProperty >> > 16:22:24 [5] DEBUG NHibernate.Event.Default.AbstractSaveEventListener >> > - executing insertions >> > 16:22:24 [5] DEBUG NHibernate.Event.Default.WrapVisitor - Wrapped >> > collection in role: Westshore.Models.RentalProperty.Pictures >> > 16:22:24 [5] DEBUG NHibernate.Event.Default.WrapVisitor - Wrapped >> > collection in role: Westshore.Models.RentalProperty.Availability >> > 16:22:24 [5] DEBUG NHibernate.Event.Default.AbstractSaveEventListener >> > - executing identity-insert immediately >> > 16:22:24 [5] DEBUG NHibernate.Persister.Entity.AbstractEntityPersister >> > - Inserting entity: Westshore.Models.RentalProperty (native id) >> > 16:22:24 [5] DEBUG NHibernate.AdoNet.AbstractBatcher - Opened new >> > IDbCommand, open IDbCommands: 1 >> > 16:22:24 [5] DEBUG NHibernate.AdoNet.AbstractBatcher - Building an >> > IDbCommand object for the SqlString: INSERT INTO RentalProperties >> > (mls_number, allows_pets, air_conditioning_type, max_occupants, price, >> > square_feet, beds, baths, multi_family, garage_type, rental_floor, >> > furnished, bed_size, private_entrance, dining_room, floor_type, stove, >> > refridgerator, dishwasher, microwave, washer_dryer, description, >> > listing_agent, street, town, state, zip_code) VALUES >> > (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, >> > ?, ?); >> > select SCOPE_IDENTITY() >> > 16:22:24 [5] DEBUG NHibernate.Persister.Entity.AbstractEntityPersister >> > - Dehydrating entity: [Westshore.Models.RentalProperty#<null>] >> > 16:22:24 [5] DEBUG NHibernate.Type.StringType - binding '' to >> > parameter: 0 >> > 16:22:24 [5] DEBUG NHibernate.Type.BooleanType - binding 'False' to >> > parameter: 1 >> > 16:22:24 [5] DEBUG NHibernate.Type.PersistentEnumType - binding '0' to >> > parameter: 2 >> > 16:22:24 [5] DEBUG NHibernate.Type.Int32Type - binding '0' to >> > parameter: 3 >> > 16:22:24 [5] DEBUG NHibernate.Type.DecimalType - binding '0' to >> > parameter: 4 >> > 16:22:24 [5] DEBUG NHibernate.Type.Int32Type - binding '0' to >> > parameter: 5 >> > 16:22:24 [5] DEBUG NHibernate.Type.DecimalType - binding '0' to >> > parameter: 6 >> > 16:22:24 [5] DEBUG NHibernate.Type.DecimalType - binding '0' to >> > parameter: 7 >> > 16:22:24 [5] DEBUG NHibernate.Type.BooleanType - binding 'False' to >> > parameter: 8 >> > 16:22:24 [5] DEBUG NHibernate.Type.PersistentEnumType - binding '0' to >> > parameter: 9 >> > 16:22:24 [5] DEBUG NHibernate.Type.PersistentEnumType - binding '0' to >> > parameter: 10 >> > 16:22:24 [5] DEBUG NHibernate.Type.BooleanType - binding 'False' to >> > parameter: 11 >> > 16:22:24 [5] DEBUG NHibernate.Type.PersistentEnumType - binding '0' to >> > parameter: 12 >> > 16:22:24 [5] DEBUG NHibernate.Type.BooleanType - binding 'False' to >> > parameter: 13 >> > 16:22:24 [5] DEBUG NHibernate.Type.BooleanType - binding 'False' to >> > parameter: 14 >> > 16:22:24 [5] DEBUG NHibernate.Type.PersistentEnumType - binding '0' to >> > parameter: 15 >> > 16:22:24 [5] DEBUG NHibernate.Type.BooleanType - binding 'False' to >> > parameter: 16 >> > 16:22:24 [5] DEBUG NHibernate.Type.BooleanType - binding 'False' to >> > parameter: 17 >> > 16:22:24 [5] DEBUG NHibernate.Type.BooleanType - binding 'False' to >> > parameter: 18 >> > 16:22:24 [5] DEBUG NHibernate.Type.BooleanType - binding 'False' to >> > parameter: 19 >> > 16:22:24 [5] DEBUG NHibernate.Type.BooleanType - binding 'False' to >> > parameter: 20 >> > 16:22:24 [5] DEBUG NHibernate.Type.StringClobType - binding '' to >> > parameter: 21 >> > 16:22:24 [5] DEBUG NHibernate.Type.Int32Type - binding null to >> > parameter: 22 >> > 16:22:24 [5] DEBUG NHibernate.Type.StringType - binding 'asdfasdf' to >> > parameter: 23 >> > 16:22:24 [5] DEBUG NHibernate.Type.StringType - binding 'asdf' to >> > parameter: 24 >> > 16:22:24 [5] DEBUG NHibernate.Type.StringType - binding 'ws' to >> > parameter: 25 >> > 16:22:24 [5] DEBUG NHibernate.Type.StringType - binding '45444' to >> > parameter: 26 >> > 16:22:24 [5] DEBUG NHibernate.Transaction.AdoTransaction - Enlist >> > Command >> > 16:22:24 [5] DEBUG NHibernate.AdoNet.AbstractBatcher - Opened >> > IDataReader, open IDataReaders: 1 >> > 16:22:24 [5] DEBUG NHibernate.Type.Int32Type - returning '27' as >> > column: >> > 16:22:24 [5] DEBUG NHibernate.Id.IdentifierGeneratorFactory - Natively >> > generated identity: 27 >> > 16:22:24 [5] DEBUG NHibernate.Driver.NHybridDataReader - running >> > NHybridDataReader.Dispose() >> > 16:22:24 [5] DEBUG NHibernate.AdoNet.AbstractBatcher - Closed >> > IDataReader, open IDataReaders :0 >> > 16:22:24 [5] DEBUG NHibernate.AdoNet.AbstractBatcher - Closed >> > IDbCommand, open IDbCommands: 0 >> > 16:22:24 [5] INFO NHibernate.Engine.Cascade - processing cascade >> > NHibernate.Engine.CascadingAction+SaveUpdateCascadingAction for: >> > Westshore.Models.RentalProperty >> > 16:22:24 [5] INFO NHibernate.Engine.Cascade - done processing cascade >> > NHibernate.Engine.CascadingAction+SaveUpdateCascadingAction for: >> > Westshore.Models.RentalProperty >> > 16:22:24 [5] DEBUG >> > NHibernate.Event.Default.AbstractFlushingEventListener - flushing >> > session >> > 16:22:24 [5] DEBUG >> > NHibernate.Event.Default.AbstractFlushingEventListener - processing >> > flush-time cascades >> > 16:22:24 [5] INFO NHibernate.Engine.Cascade - processing cascade >> > NHibernate.Engine.CascadingAction+SaveUpdateCascadingAction for: >> > Westshore.Models.RentalProperty >> > 16:22:24 [5] INFO NHibernate.Engine.Cascade - done processing cascade >> > NHibernate.Engine.CascadingAction+SaveUpdateCascadingAction for: >> > Westshore.Models.RentalProperty >> > 16:22:24 [5] DEBUG >> > NHibernate.Event.Default.AbstractFlushingEventListener - dirty >> > checking collections >> > 16:22:24 [5] DEBUG >> > NHibernate.Event.Default.AbstractFlushingEventListener - Flushing >> > entities and processing referenced collections >> > 16:22:24 [5] DEBUG NHibernate.Engine.Collections - Collection found: >> > [Westshore.Models.RentalProperty.Pictures#27], was: [<unreferenced>] >> > (initialized) >> > 16:22:24 [5] DEBUG NHibernate.Engine.Collections - Collection found: >> > [Westshore.Models.RentalProperty.Availability#27], was: >> > [<unreferenced>] (initialized) >> > 16:22:24 [5] DEBUG >> > NHibernate.Event.Default.AbstractFlushingEventListener - Processing >> > unreferenced collections >> > 16:22:24 [5] DEBUG >> > NHibernate.Event.Default.AbstractFlushingEventListener - Scheduling >> > collection removes/(re)creates/updates >> > 16:22:24 [5] DEBUG >> > NHibernate.Event.Default.AbstractFlushingEventListener - Flushed: 0 >> > insertions, 0 updates, 0 deletions to 1 objects >> > 16:22:24 [5] DEBUG >> > NHibernate.Event.Default.AbstractFlushingEventListener - Flushed: 2 >> > (re)creations, 0 updates, 0 removals to 2 collections >> > 16:22:24 [5] DEBUG NHibernate.Impl.Printer - listing entities: >> > 16:22:24 [5] DEBUG NHibernate.Impl.Printer - >> > Westshore.Models.RentalProperty{'ID'='27', 'MLSNumber'='', >> > 'AllowsPets'='False', 'AirConditionioning'='0', 'MaxOccupants'='0', >> > 'Price'='0', 'SquareFeet'='0', 'Beds'='0', 'Baths'='0', >> > 'IsMultiFamily'='False', 'GarageType'='0', 'Rentalfloor'='0', >> > 'IsFurnished'='False', 'BedSize'='0', 'HasPrivateEntrance'='False', >> > 'HasDiningRoom'='False', 'FloorType'='0', 'HasStove'='False', >> > 'HasRefridgerator'='False', 'HasDishWasher'='False', >> > 'HasMicrowave'='False', 'HasWasherDryer'='False', 'Description'='', >> > 'Agent'='null', 'Pictures'='[]', 'Availability'='[]', >> > 'Address'='component[Street,Town,State,ZipCode]{'Street'='asdfasdf', >> > 'Town'='asdf', 'State'='ws', 'ZipCode'='45444'}'} >> > 16:22:24 [5] DEBUG >> > NHibernate.Event.Default.AbstractFlushingEventListener - executing >> > flush >> > 16:22:24 [5] DEBUG >> >> ... >> >> read more » > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Castle Project Users" 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/castle-project-users?hl=en -~----------~----~----~----~------~----~------~--~---
