Welcome to Sign in | Help
in Search

lock request timeout period exceeded

Last post 12-21-2009, 2:51 AM by rremus. 6 replies.
Sort Posts: Previous Next
  •  12-09-2009, 4:49 PM 7907

    lock request timeout period exceeded

    Se da un Sql Server 2005 cu toate update-urile la zi pe 64 biti :
    select @@version :

    Microsoft SQL Server 2005 - 9.00.4229.00 (X64)   Jul 29 2009 14:59:51   Copyright (c) 1988-2005 Microsoft Corporation  Standard Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2)

    Exista un trigger de insert care pune ceva fisiere pe C: , dupa care vine un programel si insereaza datele in BD.
    Nu am acces la sursa programelului ... dar am acces la erorile lui - se intimpla cam de 2 ori la 10 fisiere puse pe hard
    Erorile sunt de genul :
    Error : 1222
    number : -2147217871
    description : Lock request time out period exceeded
    source : Microsoft OLE DB Provider for Sql Server.

    Cum as putea intercepta asemenea erori si sa vad pe ce tabela (view?altceva?) face lock timeout ?
    Multumesc,





    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  12-09-2009, 6:26 PM 7908 in reply to 7907

    Re: lock request timeout period exceeded

    Incearca http://jmkehayias.blogspot.com/2008/12/troubleshooting-locking-in-database.html.
    Da si o cautare in BOL dupa "1222"
  •  12-09-2009, 8:49 PM 7909 in reply to 7908

    Re: lock request timeout period exceeded

    Diana:
    Incearca http://jmkehayias.blogspot.com/2008/12/troubleshooting-locking-in-database.html. Da si o cautare in BOL dupa "1222"

    Eu as vrea sa aflu "Dupa" ce s-a intimplat ... sau sa fiu cumva avertizat real-time...
    Credeti ca se poate asta?

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  12-09-2009, 9:18 PM 7910 in reply to 7909

    Re: lock request timeout period exceeded

    Ai incercat un trace cu evenimentul Locks ---> Lock : timeout ?
    Vezi daca te ajuta si Errors and warnings ---> Blocked Process Report (bifeaza si coloana TextData)
  •  12-12-2009, 1:15 PM 7912 in reply to 7909

    Re: lock request timeout period exceeded

    Pentru a primi o notificare cand evenimentul are loc, folositi functionalitatea blocked process reports:
    1. Setati o valoare pentru blocked process threshold:
    EXEC sp_configure 'show advanced options', 1 ;
    GO
    RECONFIGURE ;
    GO
    -- use 20 seconds in this case
    EXEC sp_configure 'blocked process threshold', 20 ;
    GO
    RECONFIGURE ;
    GO
    2. Folositi SQL Server Agent pentru a defini o alterta pentru evenimentul blocked process report - una din modalitati este folosirea unei alerte WMI:
    USE [msdb]
    GO
    EXEC msdb.dbo.sp_add_alert @name=N'Blocked Process Report Alert',
            @message_id=0,
            @severity=0,
            @enabled=1,
            @delay_between_responses=0,
            @include_event_description_in=4,
            @category_name=N'[Uncategorized]',
            @wmi_namespace=N'\\.\root\Microsoft\SqlServer\ServerEvents\MSSQLSERVER',
            @wmi_query=N'SELECT * FROM BLOCKED_PROCESS_REPORT',
            @job_id=N'00000000-0000-0000-0000-000000000000'
    GO


    3. Selectati o modalitate de raspuns la alerta: trimitere email, folosire NET SEND etc.



    Cristian Andrei Lefter, SQL Server MVP
    MCT, MCSA, MCDBA, MCAD, MCSD .NET,
    MCTS, MCITP - Database Administrator SQL Server 2005
    http://sqlserver.ro
  •  12-14-2009, 2:15 PM 7915 in reply to 7910

    Re: lock request timeout period exceeded

    Buna Diana

    Am reusit sa prind evenimentul. Problema este ca , din prostie, am pus filtru pe databaseid ... si, daca lock s-a produs si pe tempdb, nu am datele ( probabil data viitoare?)

    Mi-au dat 13 inregistrari, cu acelasi user, acelasi SPID, cu textdata ceva incomprehensibil pentru mine (550168f6c35a), binary data si mai urit ( doar e binary, nu ? ) BigIntData1 este 0 , Mode 3(S), Type = 7 ( Key) , object_id 0 si object_id 72057679015903232 - ceea ce nu l-am gasit pentru object_id in sys.objects nici pe BD, nici pe tempdb. EventClass era 27,189,65529 ...
    Am salvat trace-ul intr-un table.

    Orice idee este bine venita!

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  12-21-2009, 2:51 AM 7920 in reply to 7915

    Re: lock request timeout period exceeded

    72057679015903232 e 'adevaratul' object, nu cel din metadata. Cauta-l in sys.partitions si sys.allocation_units. Este un shared lock pentru un key dintr-o tabela. Un read (SELECT) este in conflict cu un write (INSERt/UPDATE/DELETE) care pastreaza record-ul locked pentru mult timp.

    http://rusanu.com
View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems