IT Builder - Gabriel Oliva C. View Gabriel Oliva Chimal's profile on LinkedIn

Chief Sw. Architect Gabriel Oliva's Blog

Webcast de desarrollo colaborativo y construcción de software de clase mundial en MSDN LATAM

clock October 16, 2008 17:53 by author gabriel.oliva

 listo para construir mejor software que tu competencia ?

MSDN - Microsoft Visual Studio Team System: El hoy y el mañana

URL de Registro para Asistentes (Público):
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032389739&Culture=es-AR

MSDN - Haciendo un mejor software: Sugerencias y Herramientas para mejorar sus aplicaciones

URL de Registro para Asistentes (Público):
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032389766&Culture=es-AR

 

Nota: los eventos han sido pregrabados y estan disponibles para ser vistos bajo demanda.

Currently rated 5.0 by 2 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


NHibernate - Unexpected row count: 31; expected: 1

clock June 19, 2008 07:51 by author gabriel.oliva

Nada mas frustrante que un bug dificil de solucionar y que te aparece justo antes de un roll out a producción, esta demas decirles que estas semanas he estado un poco desconectado debido a las cargas de trabajo, sin embargo me parecio una buena idea comentar algo de lo que acabo de vivir hace unos minutos, resulta que habiamos estado teniendo problemas con una applicacion que usa NHibernate, existen algunas tablas que ocupan referencias unicas a otras tablas y para llevar a cabo uan sincronización adecuada de los datos hacemos uso de cierta configuración en los mappings de NHibernate para salvar los objetos referenciados por otros en una misma transacción o simplemente para borrar la referencia 1:1 cuando ya no se ocupa, algo similar a esto :

         <many-to-one name="_DireccionId" column="direccion_id" class="ITB.Contraloria.Business.Genericos.Entities.GenDireccion,ITB.Contraloria.Business.Genericos" cascade="all-delete-orphan"/>
 

el caso es que todos los módulos donde hacemos uso de esta técnica de salvado(multiple) funcionaban a la perfección , sin embargo desde ayer empezamos a tener comportamiento raro en uno de ellos el cual enviaba un error solo en la actualización cuya descripción era esta (Unexpected row count: 31; expected: 1), no existe mucha documentación al respecto asi que haciendo uso del profiler me percate de que no era ningún problema con la referencia hacia la tabla de actualización por cascada, el problema no se presentaba cuando habia una inserción de cero sino solamente cuando se hacia una actualización por lo que buscamos algún trigger que pudiera estar causando esto y efectivamente se trataba de esto, es decir, el problema no se debe a alguna actualizacioó en cascada que pudiera estar haciendo nhibernate de forma automática (dado que esta configurado asi y algunos objetos podrian tener los mismos identificadores) sino que el ROW COUNT manda una 'señal' erronea a nhibernate haciendole creer que se trata de un problema con la unicidad del registro lo cual es falso pues mas bien el ROW COUNT regresa el número de registros afectados por la ejecución de trigger y no el número de registros afectados por el update.

 

SOLUCION: desabilitar el trigger cuando se ejecute la sentecia de actulizacion proveniente de NHibernate.

 

IF EXISTS (SELECT * FROM sys.triggers
WHERE parent_class = 0 AND name = 'safety')
DROP TRIGGER safety ON DATABASE;
GO
CREATE TRIGGER safety 
ON DATABASE 
FOR DROP_TABLE, ALTER_TABLE 
AS 
PRINT 'You must disable Trigger "safety" to drop or alter tables!' 
ROLLBACK;
GO
DISABLE TRIGGER safety ON DATABASE;
GO

Espero que esto les sea de ayuda y les ahorre algunas hrs de frustración. 

 

PS, aqui pueden encontrar un post de un error similar en donde el trigger de una tabla evita la ejecucion de la sentencia de nhibernate.

http://community.countersoft.com/forums/thread/4167.aspx  

Currently rated 5.0 by 3 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


IT Builder - Fomentando la calidad en el desarrollo de software en México

clock March 12, 2008 00:12 by author gabriel.oliva

Estimado lector, durante los ultimos años ha existido un gran movimiento de empresas relacionadas a la creación de software en nuestro país, el cual ha estado orientado principalmente a la adopción de modelos y metodologías de desarrollo que mejoren la calidad del software que producimos a la par de hacernos mas eficientes en la administración de recursos, todo esto con el afán de ser mas competitivos en mercados nacionales y por supuesto en mercados de exportación, a lo largo de estos años han proliferado de manera significativa aquellos modelos orientados hacia la documentacion y a la forma de evaluar la madurez en los procesos, CMM y CMMI han sido el estandar recomendado y considerado en marcos de trabajo como RUP y MSF 3.0, mas alla de las metologías ágiles y de modelos de ultima generación como EssUP o MSF 4.0 for agile dev., los estandares orientados hacia la documentación de evidencias han probado ser el mejor acercamiento hacia la optimización y mejora en la calidad de la industria de software (por lo menos en nuestro país), es por eso que en México desde hace algunos años se le ha dado impulso a algo que en nuestros dias es ya a la norma MoProsoft.

IT Builder a llevado a cabo con éxito la implantación de modelos y metodologías para la mejora en el desarrollo de software usando diversas tendencias, sin embargo, dada la orientación del mercado Mexicano y Latinoamericano hemos desarrollado de manera conjunta con clientes y socios de negocios, estratégias de implementación de MoProsoft teniendo como prioridad el tiempo de adopción y el valor agregado a las areas de desarrollo, durante este año IT Builder México y TI Baja (uno de los cluster de TI mas importantes de nuestro país) implantarán Moprosoft en uno de los proyectos más ambiciosos relacionados con esta norma usando las plantillas de rápido despliegue las cuales han sido desarrolladas por IT Builder para lograr la adopción en tiempos record.

Noticia publicada en el boletín electrónico del CETYS

Para mas información: contacto@itbuilder.com.mx

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Quien dijo que Visual Studio no es divertido ?????

clock September 21, 2007 05:39 by author gabriel.oliva

Visita www.defyallchallenges.com y diviertete un poco mientras aprendes mas de las herramientas de desarrollo que Micorosoft tiene para ti.

  Have Fun !!!! :)

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Search

Calendar

<<  January 2009  >>
SuMoTuWeThFrSa
28293031123
45678910
11121314151617
18192021222324
25262728293031
1234567

Archive

Tags

Categories


Blogroll

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2009

Sign in