Excepción de anticipación de E/S al acceder a MySQL

No se si te sonará esta excepción que genera mi programa. La aplicación esta creada en C# 2005 y se accede a una base de datos MySQL utilizando el conector ADO.NET driver for MySQL versión 5.1.4.0
Normalmente funciona de forma correcta, pero de vez en cuando, sin hacer nada especial y al intentar cualquier operación sobre la base de datos genera una excepción con el siguiente mensaje:
Se detectó una posible condición de anticipación de E/S al copiar la memoria. El paquete de E/S no es seguro para subprocesos de forma predeterminada. En las aplicaciones multiproceso se debe tener acceso a la secuencia de forma segura para los subprocesos, como un contenedor seguro para subprocesos devuelto por los métodos sincronizados de TextReader o TextWriter. Esto también se aplica a clases como StreamWriter y StreamReader.
Si le pido el nombre del objeto o aplicación que generó el error me dice que: mscorlib
Y el StackTrace de una de estas excepciones (este en concreto al intentar un UPDATE sobre una tabla) es el siguiente:
En System. Buffer. InternalBlockCopy(Array src, Int32 srcOffset, Array dst, Int32 dstOffset, Int32 count)
en System.IO.BufferedStream.Read(Byte[] array, Int32 offset, Int32 count)
en MySql.Data.MySqlClient.MySqlStream.Read(Byte[] buffer, Int32 offset, Int32 count)
En MySql. Data. MySqlClient. MySqlStream. ReadByte()
En MySql. Data. MySqlClient. MySqlStream. SkipBytes(Int32 len)
En MySql. Data. MySqlClient. MySqlStream. OpenPacket()
En MySql. Data. MySqlClient. NativeDriver.ReadResult(UInt64& affectedRows, Int64& lastInsertId)
En MySql. Data. MySqlClient. MySqlDataReader. GetResultSet()
En MySql. Data. MySqlClient. MySqlDataReader. NextResult()
En MySql. Data. MySqlClient. MySqlCommand. ExecuteReader(CommandBehavior behavior)
En MySql. Data. MySqlClient. MySqlCommand. ExecuteNonQuery()
En MySql. Data. MySqlClient. MySqlConnection. BeginTransaction(IsolationLevel iso)
en Gestion.Source.ModeloBD.ActualizarRegistro(Registro registro) C:\Proyectos\My SQL\Gestion\Gestion\Source\ModeloBD.cs:línea 458

Además, al no ocurrir siempre es más difícil arreglarlo.
Respuesta
1
La verdad no sabría decirte porque yo siempre utilizo drivers que trae .NET incluidos, sea para conectarme a oracle o a SQLServer.
Pienso que de pronto podría llegar a ser el driver, pero la verdad no tengo certeza sobre el asunto.
Andres R.
Hola Andrés, ante todo disculparme por la tardanza en contestar y darte las gracias por tu tiempo.
Tu respuesta me permite confirmar que, efectivamente, el problema debe radicar en el conector.
Muchas gracias de nuevo y un saludo
(xxxxxx)

1 respuesta más de otro experto

Respuesta
1
Algo no típico en la tabla que estas intentando actualizar, tipos de campo, etcétera...
Hola David, ante todo perdona porque he estado out esta temporada y sobre todo darte las gracias porque siempre me contestas rápidamente con valiosa información e ideas.
En las tablas solo hay columnas de texto, numéricas y fechas. Le he estado dando vueltas y ¿te parece que podría ser el conector de MySQL? Utilizo el mysql-connector-net-5.1.4, tal vez tu conozcas otro, podría probarlo y ver si se trata de eso (también probé el ByteFX.MySqlClient. 76, pero tenía sus propias "rarezas").
Bueno, ya sabes que cualquier idea es bien venida y las tuyas suelen ayudarme mucho.
Un saludo y gracias.
(xxxxxx)
Pues solamente que uses las herramientas que están en la misma página de MySQL.com
Hola David, eso mismo haré y a esperar a ver que pasa porque como son errores que ocurren tan pocas veces tendré que realizar un sinfín de pruebas.
Muchas gracias y un saludo
(xxxxxx)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas