Problema raro con bloqueos

03/03/2004 - 10:10 por Antonio | Informe spam
Hola a todos, os escribo porque tengo un problema
bastante raro con los bloqueos del sql server 2000.
Tengo una base de datos de un cliente que utilizan muchos
usuarios a la vez aproximadamente unos 60 o mas usuarios,
los usuarios entran a la base de datos mediante una
aplicacion hecha en Visual Basic 6.0 conectandose por
ODBC mediante ADO.
El caso es que tengo un proceso bastante critico con
transacciones y por tanto cuando algun usuario lo realiza
hago un BeginTrans y al finalizar hago un Committrans (o
si la transaccion falla hago un rollback). Este proceso
bloquea varios registros de varias tablas mientras dura
el mismo (lo cual es normal), pero lo que me ocurre es
que no solo me bloquea los registros en uso, sino que me
bloquea toda la tabla y a los demas usuarios no les deja
usarla para nada, aunque pretendan entrar a otros
registros que no tienen nada que ver con la transacción.
Ahora aqui viene lo raro, me hice una copia de la base de
datos para hacer pruebas con ella en mi oficina y hago
exactamente el mismo proceso que a ellos les produce el
bloqueo y a mi solo me bloquea la fila, no la tabla como
les ocurre a ellos!!!.
Por que puede ser esto??, puede ser debido a que entran
muchos usuarios a la base de datos a la vez y por eso es
mas restrictivo el sql server???. Yo he probado en mi
oficina con 3 o 4 personas a la vez con su misma base de
datos pero no me bloquea nunca la tabla, solo los
registros que tiene en uso el proceso.

Siento el ladrillo, ojala alguien me pueda explicar a que
se debe a ver si asi puedo atajar el problema porque me
tiene loco.

Gracias.
 

Leer las respuestas

#1 Maximiliano D. A.
03/03/2004 - 14:09 | Informe spam
Hola!! me parece que tenes un TABLOCK por ahi!

Primero yo revisaria este store "sp_tableoption"

por si la tabla esta configurada como para bloqueos de tabla y no de pagina
cuando haces algun bulk!!

Porque tambien no revisas con el admin coorporativo los bloqueos en ese
momento como estan?

Yo te cuento que tengo mas de 100 usuarios y ese problema lo tengo
controlado!!!

Revisate esto y seguimos


Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


"Antonio" escribió en el mensaje
news:645b01c400ff$4fe5feb0$
Hola a todos, os escribo porque tengo un problema
bastante raro con los bloqueos del sql server 2000.
Tengo una base de datos de un cliente que utilizan muchos
usuarios a la vez aproximadamente unos 60 o mas usuarios,
los usuarios entran a la base de datos mediante una
aplicacion hecha en Visual Basic 6.0 conectandose por
ODBC mediante ADO.
El caso es que tengo un proceso bastante critico con
transacciones y por tanto cuando algun usuario lo realiza
hago un BeginTrans y al finalizar hago un Committrans (o
si la transaccion falla hago un rollback). Este proceso
bloquea varios registros de varias tablas mientras dura
el mismo (lo cual es normal), pero lo que me ocurre es
que no solo me bloquea los registros en uso, sino que me
bloquea toda la tabla y a los demas usuarios no les deja
usarla para nada, aunque pretendan entrar a otros
registros que no tienen nada que ver con la transacción.
Ahora aqui viene lo raro, me hice una copia de la base de
datos para hacer pruebas con ella en mi oficina y hago
exactamente el mismo proceso que a ellos les produce el
bloqueo y a mi solo me bloquea la fila, no la tabla como
les ocurre a ellos!!!.
Por que puede ser esto??, puede ser debido a que entran
muchos usuarios a la base de datos a la vez y por eso es
mas restrictivo el sql server???. Yo he probado en mi
oficina con 3 o 4 personas a la vez con su misma base de
datos pero no me bloquea nunca la tabla, solo los
registros que tiene en uso el proceso.

Siento el ladrillo, ojala alguien me pueda explicar a que
se debe a ver si asi puedo atajar el problema porque me
tiene loco.

Gracias.




Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.593 / Virus Database: 376 - Release Date: 21/02/2004

Preguntas similares