Error de Interbloque Nro 1205

07/04/2005 - 17:43 por Hernan Arboleda | Informe spam
Hola grupo !

Akguien sabe como controlo este error o donde puedo encontrar informacion al
respecto

"Server: Msg 1205, Level 13, State 50, Line 1
Transaction (Process ID 55) was deadlocked on {lock} resources with another
process and has been chosen as the deadlock victim. Rerun the transaction. "

La verdad no se que puede ser

Mil gracias por su colaboracion

Preguntas similare

Leer las respuestas

#1 Carlo Sorrel
08/04/2005 - 00:54 | Informe spam
Lo que pasa es que dos procesos trataron acceder o actualizar la misma tabla
o dato al mismo tiempo, y el sistema cayo en un deadlock, lo cual provoco
que el motor de SQL corte uno de ellos para poder continuar con los
procesos. Si este (el motor) no hiciera lo anterior, el bloqueo podria
permanecer en el tiempo, afectando a otros procesos y obviamente a usuarios.
Normalmente el tipo de bloqueo de los datos, tablas etc se deben controlar
desde la aplicación. Esto te pasa muy seguido...???, realiza una traza y ve
cual es el proceso que lo provoca y revisa la programación.
Extraido de los BOL de SQL

Solucionar problemas de interbloqueos
En un interbloqueo, varios subprocesos no pueden seguir, ya que están
esperando un conjunto de recursos bloqueados mutuamente o por otros
subprocesos. Un interbloqueo es una dependencia cíclica cuya mejor solución
consiste en identificar los participantes en la cadena de dependencias y los
recursos implicados y, a continuación, elegir el subproceso que rompe el
interbloqueo de los recursos para el resto de los subprocesos.

Cuando se produce un interbloqueo, el usuario recibe el siguiente error:

Transaction (Process ID xxx) was deadlocked on (xxx) resources with another
process and has been chosen as the deadlock victim. Rerun the transaction.
El error identifica el recurso o recursos en el que la transacción se
encuentra en una situación de interbloqueo. Los recursos pueden ser
bloqueos, paralelismo (o búfer de comunicación), subprocesos en espera o una
combinación de los tres.

Para solucionar el interbloqueo, uno de los participantes del ciclo debe
finalizar. Para elegir la víctima del interbloqueo, Microsoft® SQL ServerT
2000 examina todos los subprocesos participantes y el trabajo que ha
realizado cada uno de ellos. Generalmente, SQL Server elige como víctima del
interbloqueo al subproceso participante que ha realizado la menor cantidad
de trabajo.

Con SQL Server 2000 puede identificar los recursos que participan en un
interbloqueo y solucionar los bloqueos mediante el Analizador de SQL o el
indicador de traza 1204. El Analizador de SQL es una herramienta gráfica
disponible en el Administrador corporativo de SQL Server. El Analizador de
SQL proporciona información para la detección básica de interbloqueos. Para
obtener más información, consulte Supervisar con el Analizador de SQL.

Esta sección de solución de problemas se centra en la utilización del
indicador de traza 1204, que proporciona un informe que permite un análisis
detallado de las situaciones de interbloqueo.

Utilizar el indicador de traza 1204
En una situación de interbloqueo, el indicador de traza 1204 presenta
gráficos del ciclo de dependencias entre subprocesos en espera, los recursos
con subprocesos en espera, y los subprocesos que albergan estos recursos.

Términos de un informe del indicador de traza 1204
Aunque el indicador de traza 1204 devuelve información distinta según los
recursos participantes, el informe suele incluir los términos siguientes:

Node:x

Representa el número de entrada (x) de la cadena de interbloqueos.

Listas

El propietario del bloqueo puede formar parte de una de las listas
siguientes: Grant, Convert, and Wait.

Grant List
Enumera los propietarios actuales del recurso.

Convert List
Enumera los propietarios actuales que intentan convertir sus bloqueos a un
nivel superior.

Wait List
Enumera las peticiones actuales de nuevos bloqueos para el recurso.
SPID: x ECID: x

Identifica el subproceso del Id. de proceso del sistema en casos de procesos
paralelos. La entrada SPID x ECID 0 representa el subproceso principal y
SPID x ECID > 0 representa los subprocesos secundarios para el mismo SPID.

Statement Type

La instrucción SELECT, INSERT, UPDATE o DELETE para la cual los subprocesos
disponen de permisos.

Line #

Enumera la línea del lote actual de instrucciones que se ejecutaba al
producirse el interbloqueo.

Input Buf

Enumera todas las instrucciones del lote actual.

Mode

Especifica el tipo de bloqueo para un recurso en concreto solicitado,
otorgado o esperado por un subproceso. El modo puede ser IS (con intención
compartido), S (compartido), U (actualización), IX (con intención
exclusivo), SIX (compartido con intención exclusivo) y X (exclusivo). Para
obtener más información, consulte Comprender los bloqueos en SQL Server.

RID

Identifica la fila de una tabla en la que se mantiene o se solicita un
bloqueo.

RID aparece en el indicador de traza 1204 como RID:
db_id:file_id:page_no:row_no; por ejemplo, RID: 1:1:1253:0.

TAB

Identifica la tabla en la que se mantiene o se solicita un bloqueo.

TAB aparece en el indicador de traza 1204 como TAB: db_id:object_id; por
ejemplo, TAB: 2:2009058193.

CLAVE

Identifica el intervalo de clave en un índice en el que se mantiene o se
solicita un bloqueo.

KEY aparece en el indicador de traza 1204 como KEY:
db_id:object_id:index_id; por ejemplo, KEY: 2:1977058079:1.

PAG

Identifica el recurso de página en el que se mantiene o se solicita un
bloqueo.

PAG aparece en el indicador de traza 1204 como PAG: db_id:file_id:page_no;
por ejemplo, PAG: 7:1:168.

EXT

Identifica la estructura de extensión.

EXT aparece en el indicador de traza 1204 como EXT: db_id:file_id:extent_no;
por ejemplo, EXT: 7:1:9.

BD

Identifica el bloqueo de base de datos.

BD aparece en el indicador de traza 1024 de una de las siguientes maneras:

a.. DB: db_id


b.. DB:db_id[BULK-OP-DB], que identifica el bloqueo de base de datos
tomado por la copia de seguridad de la base de datos.


c.. DB:db_id[BULK-OP-LOG], que identifica el bloqueo tomado por la base de
datos.
IND

Identifica el bloqueo efectuado por el índice creado en recursos de índice.

IND aparece en el indicador de traza 1024 de una de las siguientes maneras:

a.. IND: db_id:object_id:index_id


b.. IND: db_id:object_id:index_id[INDEX_ID], que indica que el bloqueo
está en el Id. del índice.


c.. IND: db_id:object_id:index_id[INDEX_NAME], que indica que el bloqueo
está en el nombre del índice.
APP

Identifica el bloqueo tomado por un recurso de aplicación.

APP aparece en el indicador de traza 1204 como APP: bloqueo_recurso; por
ejemplo, APP: Formf370f478.

Cuando SQL Server elige un recurso de aplicación como víctima del
interbloqueo, el propietario del recurso de aplicación no recibirá el
mensaje de error descrito anteriormente. En su lugar, el propietario de la
aplicación obtendrá un código de retorno "-3" cuando el procedimiento
almacenado sp_getapplock se ejecute en el recurso de dicha aplicación. Para
obtener información, consulte sp_getapplock.

Victim Resource Owner

Especifica el subproceso participante que SQL Server elige como víctima para
romper el ciclo de interbloqueo. El subproceso elegido (identificado
mediante SPID x ECID 0 ) y todos los subprocesos secundarios (identificados
mediante SPID x ECID > 0) finalizarán.

Next Branch

Representa los dos o más subprocesos secundarios del mismo SPID que
participan en el ciclo de interbloqueo.

Cuando el interbloqueo supone paralelismo, los subprocesos secundarios
podrían bloquearse en búferes de comunicación y un subproceso acaba
esperando al resto de los subprocesos secundarios. Esta situación es de
interbloqueo sólo si todos los demás subprocesos también participan en un
interbloqueo. La rama siguiente representa la cadena de interbloqueos que
traza rutas alternativas.

Saludos.

Atte.,
Carlo Sorrel

"Hernan Arboleda" escribió en el mensaje
news:#

Hola grupo !

Akguien sabe como controlo este error o donde puedo encontrar informacion


al
respecto

"Server: Msg 1205, Level 13, State 50, Line 1
Transaction (Process ID 55) was deadlocked on {lock} resources with


another
process and has been chosen as the deadlock victim. Rerun the transaction.


"

La verdad no se que puede ser

Mil gracias por su colaboracion



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