Hola Nuevamente. Por fin encontramos el problema del porqué no nos estaba permitiendo guardar los registros en la BD. Hicimos lo que aqui me sugirieron, como por ejemplo comparar esquemas , cambiar la cadena de conexion de Produccion a desarrollo, Verificar HBM's, Verificar versiones de BD etc. Cuando se hizo el cambio de la Cadena de Conexion de Producción a desarrollo, Guaaaalá.. Funcionó la aplicación. Entonces la gente de IT inició con el proceso de verificar que configuración estaba impidiendo el acceso a la BD para efectos de Inserción y actualización de registros. Estando en ello, encontraron que en Producción el Parametro NO COUNT definido sobre la Instancia, estaba Habilitado y en Desarrollo dicho parámetro se encuentra Deshabilitado. Pues en desarrollo lo habilitaron y efectivamente no se pudo modificar el registro. Ahora el problema que se viene es que la gente de IT no va a Cambiar ese valor. Se esta pensando en la posibilidad de crear una nueva instancia, pero el problema es que la aplicación utiliza dos BD para realizar todos sus procesos, y una BD quedaria en la Nueva Instancia y la otra en la actual. Esto implicaría hacer bastantes cambios y modificaciones, cosa que no es muy agradable. Despues de todo este rollo, quiero preguntarles cual creen ustedes que sea la mejor opción para salir sin contratiempos de este embrollo? O si hay alguna forma de configurar a NHibernate para que trabaje sin problemas cuando el NO COUNT este activo??
Bueno, no siendo más me despido agradeciendo nuevamente los aportes hechos hasta el momento y los nuevos aportes que me puedan ofrecer de aqui en adelante. Saludos a todos y Mil gracias.!!!!! On 23 mayo, 08:44, Nestor Rodriguez <[email protected]> wrote: > Te sugeriria que usaras el Schema > Validator<http://nhforge.org/blogs/nhibernate/archive/2008/11/22/nhibernate-sch...>con > tu base de datos que tiene problemas para que idientifiques si algo > puede estar faltando. > > 2011/5/23 Marcos Mellibovsky <[email protected]> > > > > > Hace poco me paso algo parecido y era porque alguien habia agregado un > > trigger en produccion que no funcionaba bien. Te sugeriria que uses alguna > > herramienta de comparacion de esquemas de las bases y ya que esta te > > generas script de comparacion para poder ejecutarlo periodicamente. > > > Saludos > > > Ing. Marcos Mellibovsky > > ARSoft Consultoría Informática > > [email protected] > > 0351 155630801 > > msn:[email protected] > > > 2011/5/21 Walter Molano <[email protected]> > > >> Hola nelo, Nuevamente gracias por tus aportes. Las preguntas que me haces > >> las debo resolver el lunes a primera hora. La verdad el problema se > >> desencadeno ayer viernes y no pudimos hacerle un seguimiento detallado. > >> Pero > >> el lunes debo darle alguna solucion a ese problema, espero poder contar con > >> la colaboracion de la gente de IT de esa empresa.. cualquier cosa te estare > >> comentando. Muchas Gracias y tendre muy encuenta tus sugerencias. > > >> Bye. > > >> El 21 de mayo de 2011 11:26, [email protected] < > >> [email protected]> escribió: > > >> También les podés pedir que te generen un script con la estructura de > >>> las tablas y crear vos una db con ese script. > > >>> ¿chequeaste que los archivos de configuración de nh sean iguales? > >>> ¿tenés la misma versión de base de datos en los distintos ambientes? > >>> ¿en producción tenés alguna diferencia como por ejemplo una granja de > >>> bases de datos? > > >>> saludos. > >>> nelo > > >>> 2011/5/21 Walter Molano <[email protected]>: > >>> > Hola, Gracias por responder a mi correo, Te comento que los metodos > >>> que > >>> > consultan la informacion y que renderizan los datos en Grillas por > >>> ejemplo, > >>> > Funconan perfectamente. El inconveniente ocurre cuando modifico un > >>> registro > >>> > y lo intento guardar en la BD. De hecho, el metodo > >>> > LoadById(id) funciona perfectamente, ese metodo es capaz de recuperer > >>> el > >>> > registro desde la BD y cargar el objeto. Despues de cargarlo y > >>> modificar > >>> > algunas de las propiedades y quererlo persistir nuevamente en la BD, es > >>> > cuando ocurre el error. La verdad ese error me tiene desconsertado y > >>> me > >>> > siento Impotente, ya que la aplicación es para una empresa Super > >>> Importante > >>> > y el acceso a los servidores esta super restringido por politicas > >>> internas. > >>> > Es un problema para que le actualicen una dll o un aspx. > >>> > De todas formas muchas gracias por tu aporte, tataré de hacer lo que me > >>> > comentas para descartar el problema en la BD. > >>> > Estamos en contacto. > >>> > Bye > > >>> > El 21 de mayo de 2011 10:39, [email protected] < > >>> [email protected]> > >>> > escribió: > > >>> >> Walter, si podés apuntar por unos instantes la aplicación de > >>> >> producción a la base de datos de desarrollo, te diría que lo hagas y > >>> >> pruebes, si funciona de esta manera entonces tenés que buscar tu > >>> >> "problema" en la base de datos (o en la conexión a esta). ¿o ya lo > >>> >> probaste? > > >>> >> saludos. > >>> >> nelo > > >>> >> 2011/5/21 Nestor Rodriguez <[email protected]>: > >>> >> > antes de llamar este metodo la entidad entity que datos tiene, mas > >>> >> > precisamente que Id tiene ? > >>> >> > public bool Save(PlantillasExcelCargue entity) > > >>> >> > 2011/5/20 Walter Molano <[email protected]> > > >>> >> >> Hola, de antemano mucha gracias por responder a mi solicitud de > >>> ayuda. > >>> >> >> Como comente en el correo inicial, Es muy raro que la aplicaión > >>> >> >> funcione sin > >>> >> >> problemas en el ambiente de desarrollo. > >>> >> >> El error ocurre cuando intento guardar o actualizar un registro en > >>> la > >>> >> >> base > >>> >> >> de datos. La capa de persistencia la genero por medio de Visual > >>> >> >> Paradigm > >>> >> >> utilizando el mecanismo de generación del modelo de Objetos DAO. > >>> Lo > >>> >> >> que > >>> >> >> hago es utilizar las clases que genera esta herramienta para hacer > >>> >> >> persistir > >>> >> >> los objetos en la BD, Por ejemplo para el caso de la entidad > >>> Empleado, > >>> >> >> la > >>> >> >> herramienta me genera una clase DAO, llamada EmpleadoDao, y es a > >>> trevez > >>> >> >> de > >>> >> >> esta clase que se manipulan los registros, bien sea para > >>> eliminarlos, > >>> >> >> actualozarlos o insertarlos. Los metodos serían entonces > >>> >> >> EmpleadosDao.Save(objEmpleado); > >>> >> >> EmpleadosDao.Delete(objEmpleado); > > >>> >> >> Adjunto un fragmento de código para una de las clases y el > >>> .hbn.xml > >>> >> >> asociado a ver si depronto se amplia el panorama. > > >>> >> >> Nuevamente Muchas gracias por su amable colaboración. > > >>> >> >> public bool Save(PlantillasExcelCargue entity) > >>> >> >> { > > >>> >> >> var beginTransaction = > > >>> PlanificacionFinanzasOrmPersistentManager.Instance().GetSession().BeginTransaction(); > >>> >> >> try > >>> >> >> { > >>> >> >> var isSaved = > >>> PlantillasExcelCargueDAO.Save(entity); > >>> >> >> beginTransaction.Commit(); // Cuando llega aqui se > >>> >> >> produce la escepcion... !!!!!! > >>> >> >> return isSaved; > >>> >> >> } > >>> >> >> catch (Exception ex) > >>> >> >> { > >>> >> >> Log.Error(" Clase: [PlantillasExcelCargueDaos] --- > >>> >> >> Metodo: > >>> >> >> [Save] --- Error: ", ex); > >>> >> >> beginTransaction.RollBack(); > >>> >> >> } > >>> >> >> return false; > >>> >> >> } > > >>> >> >> /////////////////////////////// > > >>> >> >> <?xml version="1.0" encoding="utf-8" ?> > >>> >> >> <!-- > >>> >> >> Licensee: DuKe TeAm > >>> >> >> License Type: Purchased > >>> >> >> --> > >>> >> >> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> > >>> >> >> <class name="Planificacion.PlantillasExcelCargue, > >>> >> >> PlanificacionFinanzas.Orm" tablePlantillasExcelCargue" schema="dbo" > >>> >> >> lazy="false"> > >>> >> >> <id name="IdPlantilla" column="IdPlantilla" type="Int32" > >>> >> >> unsaved-value="0"> > >>> >> >> <generator class="identity"> > >>> >> >> </generator> > >>> >> >> </id> > >>> >> >> <property name="IdPais" type="Int32" not-null="true"/> > >>> >> >> <property name="NombrePais" type="String" length="100" > >>> >> >> not-null="false"/> > >>> >> >> <property name="Plantilla" type="BinaryBlob" not-null="true"/> > >>> >> >> <property name="NombrePlantilla" type="String" length="50" > >>> >> >> not-null="true"/> > >>> >> >> <property name="Vigente" type="Boolean" not-null="true"/> > >>> >> >> <property name="Tipo" type="String" length="20" not-null="true"/> > >>> >> >> <property name="FechaCreacion" type="Timestamp" > >>> not-null="false"/> > >>> >> >> <property name="FechaActualizacion" type="Timestamp" > >>> >> >> not-null="false"/> > >>> >> >> <property name="UsuarioCreacion" type="String" length="20" > >>> >> >> not-null="false"/> > >>> >> >> <property name="UsuarioActualizacion" type="String" length="20" > >>> >> >> not-null="false"/> > >>> >> >> </class> > >>> >> >> </hibernate-mapping> > > >>> >> >> El 20 de mayo de 2011 20:20, Nestor Rodriguez <[email protected] > > >>> >> >> escribió: > > >>> >> >>> Unexpected row count: -1 ?? usualmente este error sale con un > >>> >> >>> rowcount:0 > >>> >> >>> pero no negativo. > >>> >> >>> 2011/5/20 José F. Romaniello <[email protected]> > > >>> >> >>>> Es como si al querer actualizar o eliminar un registro con > >>> >> >>>> determinado > >>> >> >>>> ID ya no existiera en la base de datos. > >>> >> >>>> Mostra un poco más de código, mappings etc..es muy difícil ayudar > >>> >> >>>> así. > > >>> >> >>>> El 20 de mayo de 2011 18:57, Wallas <[email protected]> escribió: > > >>> >> >>>>> Hola Grupo, Necesito pedirles un favor especial y es el > >>> relacionado > >>> >> >>>>> con un error con NHIBERNATE. Lo mas curioso de todo esto es que > >>> en > >>> >> >>>>> el > >>> >> >>>>> servidor de desarrollo y en otras máquinas todo funciona a la > >>> >> >>>>> perfeccion, pero en producción esta arrojando el siguiente > >>> error: > > >>> >> >>>>> ERROR NHibernate.Impl.SessionImpl [(null)] <(null)> - could not > >>> >> >>>>> synchronize database state with session > >>> >> >>>>> NHibernate.StaleStateException: Unexpected row count: -1; > >>> expected: > >>> >> >>>>> 1 at > > >>> NHibernate.AdoNet.Expectations.BasicExpectation.VerifyOutcomeNonBatched(Int32 > >>> >> >>>>> rowCount, IDbCommand statement) at > >>> >> >>>>> NHibernate.Impl.NonBatchingBatcher.AddToBatch(IExpectation > >>> >> >>>>> expectation) > >>> >> >>>>> at > > >>> NHibernate.Persister.Entity.AbstractEntityPersister.Update(Object > >>> >> >>>>> id, > >>> >> >>>>> Object[] fields, Object[] oldFields, Boolean[] includeProperty, > >>> >> >>>>> Int32 > >>> >> >>>>> j, Object oldVersion, Object obj, SqlCommandInfo sql, > >>> >> >>>>> ISessionImplementor session) > >>> >> >>>>> at > > >>> NHibernate.Persister.Entity.AbstractEntityPersister.Update(Object > >>> >> >>>>> id, > >>> >> >>>>> Object[] fields, Int32[] dirtyFields, Boolean > >>> hasDirtyCollection, > >>> >> >>>>> Object[] oldFields, Object oldVersion, Object obj, > >>> >> >>>>> ISessionImplementor > >>> >> >>>>> session) > >>> >> >>>>> at NHibernate.Impl.ScheduledUpdate.Execute() at > >>> >> >>>>> NHibernate.Impl.SessionImpl.Execute(IExecutable executable) at > >>> >> >>>>> NHibernate.Impl.SessionImpl.ExecuteAll(IList list) at > >>> >> >>>>> NHibernate.Impl.SessionImpl.Execute() > > >>> >> >>>>> SI ALGUNO DE USTEDES ME PUDIERA HECHAR UNA MANO, LES ESTARÍA > >>> SUPER > >>> >> >>>>> AGRADECIDO. > > >>> >> >>>>> -- > >>> >> >>>>> Para escribir al Grupo, > > ... > > leer más »- Ocultar texto de la cita - > > - Mostrar texto de la cita - -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano
