Re: Gestión de errores

Rubén Rubio Fidalgo <[email protected]> Thu, 13 May 2010 11:11:08 +0000
Newsgroups gmane.comp.gnome.mono.hispano
Message-ID <[email protected]>
Vamos a ver, te cuento.

Ya hay try..catch por todos los lados. El problema es que el error está saltando dentro del conector mysql (versión 6.2.2) tras rechazar la conexión el servidor (no da timeout, símplemente da connection refused y en otras ocasiones errores de socket o resulset en los datareader, son 5 errores diferentes y siempre del conector de MySql con Mono) capturando el error en el try..catch, pero hace algo más ya que después me cierra el hilo.

Esto pasa solo con Mono y no con Microsoft .NET Framework (con el de Microsoft no da ningún error), y estoy intentando recopilar información para poder documentarlo y pasar el bug. De hecho en Google hay referencias a esto (incluso en el bugzilla de MySql aparace cerrado el bug por no ser problema suyo sino de Mono) pero en ningún sitio aparece una solución.

Estaba intentando implementar el evento UnhandledException del dominio de aplicación actual (dentro de cada hilo secundario) que cierra el hilo pero debería documentar el error previamente, pero no me está recogiendo nada, y no sé si lo tengo bien.

Lo que hago es añadir a la clase del hilo secundario el atributo [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.ControlAppDomain)] para que me permita hacerlo y a continuación declarar el evento AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

No sé si con esto queda todo más claro.

Gracias por todo.

________________________________________
De: Alberto León [[email protected]]
Enviado el: jueves, 13 de mayo de 2010 12:12
Para: Rubén Rubio Fidalgo
CC: [email protected]
Asunto: Re: [Mono-hispano] Gestión de errores

Desde mi punto de vista creo que es tan sencillo como llenar todo de Try y Catch
y cuando captures un error enviártelo por mail o escribirlo a un
archivo de texto.

Es muy fácil capturar la información de un error.

2010/5/13 Rubén Rubio Fidalgo <[email protected]>:
> Hola a todos,
>
> Tengo una aplicación en producción con mono 2.6.4 que funciona correctamente
> mediante mono-service2 (es un servicio).
>
> Se trata de una aplicación multihilo, la cual desde el hilo principal abre
> una serie de hilos "secundarios" que están en ejecución permanentemente
> realizando acciones contra una base de datos mysql. Para estas acciones,
> estos hilos "secundarios" a su vez abren una serie de hilos adicionales,
> llegando a estar actualmente en ciertos momentos hasta 48 hilos en ejecución
> simultánea.
>
> Pues bien, de vez en cuando me saltan errores que no deben estar controlados
> (y no puedo iniciarla con --debug por temas de rendimiento) y me cierra o
> bien todo el servicio o bien uno de los hilos secundarios.
>
> Mi pregunta es si se puede poner algún control de errores global que aunque
> me cierre la aplicación o un hilo secundario (esto segundo sería mejor ya
> que los hilos secundarios los reinicio automáticamente al detectar su caída)
> me permita recopilar información del punto y el motivo del error.
>
> Gracias y un saludo.
> ________________________________
>
> AVISO DE CONFIDENCIALIDAD:
> Este mensaje va dirigido, de manera exclusiva, a su destinatario y contiene
> información confidencial y sujeta al secreto profesional, cuya divulgación
> no está permitida por la ley. En caso de haber recibido este mensaje por
> error, le rogamos que, de forma inmediata, nos lo comunique mediante correo
> electrónico remitido a nuestra atención y proceda a su eliminación, así como
> a la de cualquier documento adjunto al mismo. Asimismo, le comunicamos que
> la distribución, copia o utilización de este mensaje, o de cualquier
> documento adjunto al mismo, cualquiera que fuera su finalidad, están
> prohibidas por la ley.
>
> ________________________________
> _______________________________________________
> Mono-hispano mailing list
> [email protected]
> https://listas.hispalinux.es/mailman/listinfo/mono-hispano
>
________________________________
AVISO DE CONFIDENCIALIDAD:
Este mensaje va dirigido, de manera exclusiva, a su destinatario y contiene información confidencial y sujeta al secreto profesional, cuya divulgación no está permitida por la ley. En caso de haber recibido este mensaje por error, le rogamos que, de forma inmediata, nos lo comunique mediante correo electrónico remitido a nuestra atención y proceda a su eliminación, así como a la de cualquier documento adjunto al mismo. Asimismo, le comunicamos que la distribución, copia o utilización de este mensaje, o de cualquier documento adjunto al mismo, cualquiera que fuera su finalidad, están prohibidas por la ley.
________________________________