Error 2147467259

ismael
31 de Octubre del 2003
Mi problema es el siguiente, tengo una página asp dividida en 4 frames. Cuando se carga el frame principal, los 4 frames se cargan y cada uno de ellos hacen consultas sobre tablas de una base de datos SQL Server 2000, el problema es que de vez en cuando, no siempre, alguna de las páginas de los frames me da el error 2147467259, sin especificar nada más. Las consultas son SELECT y no demasiados pesados. Sabe alguien por qué puede producirse ese error, gracias

ilco26
31 de Octubre del 2003
chungo, lo he mirao en un librito que tengo y la descripcion para ese error es: "Error no especifico". La unica pista que te puedo dar es que ese error esta especificado dentro de errores extendidos de ADO.

Juan Pablo Villanueva V
31 de Octubre del 2003
Que tal!
Me encontre con ese error recientemente y lo investigé, encontre dos versiones, una asociada al timeout de la conexión y otra relacionada con el número de transacciones que se envian a SQL al mismo tiempo (esto lo revisé en el sitio de microsoft).

En mi caso la segunda no tiene por si sola sentido ya que proceso en batch miles de transacciones diariamente y este error aparece muy, pero muy esporádicamente. Repecto al tiempo de espera, en el momento que efectuo el proceso el servidor está dedicado a él, asi que a menos que sea el mismo proceso el que genera problemas en el performance no tiene mucho sentido.

Lo que si tiene sentido es si en algún momento por el mismo envio de transacciones el performance del servidor se reduce (se genera lo que algunos ven como problema de tiemout) y se "encolan" varias transacciones al momento qne que el servidor intenta efectuarlas, se genera el error por que se efectúan varias transacciones al mismo tiempo.

En mi caso creo haberlo resuelto con algunas lineas en el control de errores:

ElseIf Err.Number = -2147467259 Then
'seteo una bandera para saber que ocurrió
gbolErr2147467259 = True
'rescato el registro en que se dió
gintErr2147467259 = intVcont
'ignoro el error
Err.Clear
Resume Next

J Pablo Villanueva
31 de Octubre del 2003
perdón olvide mencionar que además incrementeo el tiempo de espera de la siguiente forma:

gconDbSAL.CommandTimeout = gconDbSAL.CommandTimeout * 2