Spid terminado con KILL vuelve a aparecer

29/10/2009 - 23:25 por Javier Leal | Informe spam
Que tal, espero se encuentren bien, tengo un detalle con una base de
datos que no me deja en paz y no se en dónde está el problema, me
explico rápidamente.

Tengo un programa que se comunica a una base de datos y hace una
consulta "x" simple, hasta aquí vamos bien, este .exe está con varios
clientes (cada uno se conecta a su propia base de datos) y funciona
bien.. pero recibimos una llamada de un cliente que dice que cuando se
realiza la consulta "x" todos los demás equipos se quedan congelados,
que solamente cierran la pantalla de la consulta "x" y ya los deja
trabajar en las demás terminales.

Nos conectamos y efectivamente, mientras no hagan la consulta "x" todo
bien, en cuanto uno la haga los demás equipos se quedan en stand by
hasta que cierren la pantalla.

lo que se hizo fue ver que SPID estaban ejecutando, con la siguiente
instrucción:

select * from master..sysprocesses
where status = 'runnable'
AND Program_Name='Mi App'
order by CPU
desc

y este me arroja que el SPID 125 es el que me está bloqueando, teniendo
en el campo de CPU valores muy altos, entonces ejecutamos KILL 125 y
listo, ahora si permite que las demas terminales se puedan conectar.

El problema está que cuando alguien vuelve a abrir la consulta "x" otra
vez se vuelve a bloquear, y hay que correr el script anterior, cosas que
no es nada práctico.

Mi duda es.. como le puedo hacer para que una vez que le de kill no se
vuelva a bloquear, o que mas debo de hacer para que ya no me aparezca el
problema de nuevo???

Esto es lo que me arroja la consulta anterior:

spid 125
kpid 2540
blocked 0
waittime 10062
lastwaittype NETWORKIO
dbid 6
uid 0
cpu 79
physical_io 0
memusage 11
login_time 29-Oct-09 15:50:20
last_batch 29-Oct-09 15:50:20
ecid 0
open_tran 0
status runnable
hostname GAMMA
program_name Mi App
hostprocess 736
cmd SELECT
nt_domain GAMMA
nt_username Administrador
net_address 00192142013C
net_library LPC
loginame GAMMA\Administrador
stmt_start 88
stmt_end -1

Saludos!

Preguntas similare

Leer las respuestas

#1 Carlos Sacristan
30/10/2009 - 09:19 | Informe spam
Kill lo que hace es matar la conexión, pero si la consulta genera bloqueos,
cuando la vuelva a lanzar en la misma situación generará los mismos
bloqueos. Mira a ver qué ejecuta esa consulta y porqué bloquea a los demás
usuarios, algo que en principio no tiene mucho sentido si dices que cada uno
se conecta a una base de datos diferente

"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil, si ambas están congeladas."
Edward V. Berard, ingeniero informático


"Javier Leal" wrote in message
news:e%

Que tal, espero se encuentren bien, tengo un detalle con una base de datos
que no me deja en paz y no se en dónde está el problema, me explico
rápidamente.

Tengo un programa que se comunica a una base de datos y hace una consulta
"x" simple, hasta aquí vamos bien, este .exe está con varios clientes
(cada uno se conecta a su propia base de datos) y funciona bien.. pero
recibimos una llamada de un cliente que dice que cuando se realiza la
consulta "x" todos los demás equipos se quedan congelados, que solamente
cierran la pantalla de la consulta "x" y ya los deja trabajar en las demás
terminales.

Nos conectamos y efectivamente, mientras no hagan la consulta "x" todo
bien, en cuanto uno la haga los demás equipos se quedan en stand by hasta
que cierren la pantalla.

lo que se hizo fue ver que SPID estaban ejecutando, con la siguiente
instrucción:

select * from master..sysprocesses
where status = 'runnable'
AND Program_Name='Mi App'
order by CPU
desc

y este me arroja que el SPID 125 es el que me está bloqueando, teniendo en
el campo de CPU valores muy altos, entonces ejecutamos KILL 125 y listo,
ahora si permite que las demas terminales se puedan conectar.

El problema está que cuando alguien vuelve a abrir la consulta "x" otra
vez se vuelve a bloquear, y hay que correr el script anterior, cosas que
no es nada práctico.

Mi duda es.. como le puedo hacer para que una vez que le de kill no se
vuelva a bloquear, o que mas debo de hacer para que ya no me aparezca el
problema de nuevo???

Esto es lo que me arroja la consulta anterior:

spid 125
kpid 2540
blocked 0
waittime 10062
lastwaittype NETWORKIO
dbid 6
uid 0
cpu 79
physical_io 0
memusage 11
login_time 29-Oct-09 15:50:20
last_batch 29-Oct-09 15:50:20
ecid 0
open_tran 0
status runnable
hostname GAMMA
program_name Mi App
hostprocess 736
cmd SELECT
nt_domain GAMMA
nt_username Administrador
net_address 00192142013C
net_library LPC
loginame GAMMA\Administrador
stmt_start 88
stmt_end -1

Saludos!
Respuesta Responder a este mensaje
#2 Javier Leal
30/10/2009 - 17:22 | Informe spam
Gracias Carlos, voy a verificar lo que me dices porque se me hace raro
que el mismo sistema con otros clientes no presenta problema, gracias
por responder.

Saludos!


Carlos Sacristan escribió:
Kill lo que hace es matar la conexión, pero si la consulta genera
bloqueos, cuando la vuelva a lanzar en la misma situación generará los
mismos bloqueos. Mira a ver qué ejecuta esa consulta y porqué bloquea a
los demás usuarios, algo que en principio no tiene mucho sentido si
dices que cada uno se conecta a una base de datos diferente

Respuesta Responder a este mensaje
#3 juan luis bellido medina
19/11/2009 - 17:11 | Informe spam
On 30 oct, 11:22, Javier Leal wrote:
Gracias Carlos, voy a verificar lo que me dices porque se me hace raro
que el mismo sistema con otros clientes no presenta problema, gracias
por responder.

Saludos!

Carlos Sacristan escribió:



> Kill lo que hace es matar la conexión, pero si la consulta genera
> bloqueos, cuando la vuelva a lanzar en la misma situación generará los
> mismos bloqueos. Mira a ver qué ejecuta esa consulta y porqué bloquea a
> los demás usuarios, algo que en principio no tiene mucho sentido si
> dices que cada uno se conecta a una base de datos diferente- Ocultar texto de la cita -

- Mostrar texto de la cita -



seguro que tienes un store procedute que ejecuta procesos y esta
dentro de una transaccion.
por este motivo se cuelgan las demas compuadoras.
tienes que hacer un seguimiento para que que store esta haciendo
conflicto. puedes usar el profiler para depuarar

saludos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida