locked
Error : 1222 RRS feed

  • Pergunta

  • Boa tarde!

    Trabalho com um software ERP e está com problema em uma rotina apresentando o seguinte erro:

    -Error : 1222 (37000) (RC=-1) - [Microsoft][SQL Server Native Client 11.0][SQL Server]Tempo limite da solicitação de bloqueio excedido.

    È possível aumentar o Timeout do Sql Server 2016

    Att

    Jorge

    quarta-feira, 20 de novembro de 2019 17:11

Respostas

  • JorgeChing,

    Tendo como base o error id: 1222 provavelmente sua aplicação esta deparando com deadlock, ainda mais a mensagem:

    "Tempo limite da solicitação de bloqueio excedido."

    Antes de pensarmos em qualquer alteração de configuração, ainda mais relacionada a timeout, é recomendável monitorar estes eventos e ocorrências de deadlock, existem diversas possibilidades, vou indicar inicialmente este link:

    https://www.sqlshack.com/monitoring-sql-server-deadlocks-using-the-system_health-extended-event/

    Bem como, este código de exemplo, obtido através de documentação oficial, que vai justamente lhe ajudar a obter a relação de deadlocks: Finding and Extracting deadlock information using Extended Events


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]


    quarta-feira, 20 de novembro de 2019 17:26
    Moderador
  • Jorge, o processo em que ocorreu o timeout é normalmente de execução demorada? Há como aumentar o timeout, se for necessário. Entretanto, se esse erro ocorre com frequência na mesma rotina então é o caso de avaliá-la com atenção, procurando otimizá-la.

    No artigo a seguir você encontra roteiro completo de como diagnosticar os casos de query timeout:

    •    Troubleshooting Query timeouts in SQL Server 
      While working with SQL Server, one of the common issue application teams encounter is timeouts. In this article, we are covering approach to troubleshoot SQL Command/Query timeouts, data collection and data analysis steps to isolate further.

      


    José Diz     Belo Horizonte, MG - Brasil     [query performance tuning: Porto SQL]


    Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
    quarta-feira, 20 de novembro de 2019 19:31
  • Olá amigos, 

    Queries 'mal' desenhadas podem ser a causa . As vezes uma falta de commit faz a transação ficar presa. Mas, ai já caso para os desenvolvedores analisar. 

    Como o José disse, de uma olhada na ocorrencia repetida de processo e mesmo sem muito conhecimento de 'desenv' poderá dar o caminho para a equipe de DEV. 


    Se esta resposta lhe ajudou, marque-a como útil para que outra pessoa com dúvida ou problema semelhante possa encontrar resposta ou ajuda mais facilmente. * Jefferson Clyton Pereira da Silva - [ MCSA | MCP | MCTS | MTA | Analista de Banco de Dados - Sql Server e Oracle ]

    quinta-feira, 21 de novembro de 2019 12:31

Todas as Respostas

  • JorgeChing,

    Tendo como base o error id: 1222 provavelmente sua aplicação esta deparando com deadlock, ainda mais a mensagem:

    "Tempo limite da solicitação de bloqueio excedido."

    Antes de pensarmos em qualquer alteração de configuração, ainda mais relacionada a timeout, é recomendável monitorar estes eventos e ocorrências de deadlock, existem diversas possibilidades, vou indicar inicialmente este link:

    https://www.sqlshack.com/monitoring-sql-server-deadlocks-using-the-system_health-extended-event/

    Bem como, este código de exemplo, obtido através de documentação oficial, que vai justamente lhe ajudar a obter a relação de deadlocks: Finding and Extracting deadlock information using Extended Events


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]


    quarta-feira, 20 de novembro de 2019 17:26
    Moderador
  • Olá amigo, 

    Sigo a linha do que o Junior Galvão falou sobre você fazer o monitoramento com tracers para entender o problema que esta ocorrendo , só penso diferente em relação ao DeadLock . Na minha visão seria somente um LOCK. Após algum tempo de LOCK a aplicação apresenta o ERRO e o sistema fica 'travado'. 

    Verifique primeira como ele falou em quais processos que estão ocorrendo estes locks. 

    Locks devem ser tratados normalmente de forma isolada , mas, algumas configuraçoes de Banco / Instancia também podem resolver (ou ajudar).  


    Se esta resposta lhe ajudou, marque-a como útil para que outra pessoa com dúvida ou problema semelhante possa encontrar resposta ou ajuda mais facilmente. * Jefferson Clyton Pereira da Silva - [ MCSA | MCP | MCTS | MTA | Analista de Banco de Dados - Sql Server e Oracle ]

    quarta-feira, 20 de novembro de 2019 17:52
  • Jorge, o processo em que ocorreu o timeout é normalmente de execução demorada? Há como aumentar o timeout, se for necessário. Entretanto, se esse erro ocorre com frequência na mesma rotina então é o caso de avaliá-la com atenção, procurando otimizá-la.

    No artigo a seguir você encontra roteiro completo de como diagnosticar os casos de query timeout:

    •    Troubleshooting Query timeouts in SQL Server 
      While working with SQL Server, one of the common issue application teams encounter is timeouts. In this article, we are covering approach to troubleshoot SQL Command/Query timeouts, data collection and data analysis steps to isolate further.

      


    José Diz     Belo Horizonte, MG - Brasil     [query performance tuning: Porto SQL]


    Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
    quarta-feira, 20 de novembro de 2019 19:31
  • Olá amigos, 

    Queries 'mal' desenhadas podem ser a causa . As vezes uma falta de commit faz a transação ficar presa. Mas, ai já caso para os desenvolvedores analisar. 

    Como o José disse, de uma olhada na ocorrencia repetida de processo e mesmo sem muito conhecimento de 'desenv' poderá dar o caminho para a equipe de DEV. 


    Se esta resposta lhe ajudou, marque-a como útil para que outra pessoa com dúvida ou problema semelhante possa encontrar resposta ou ajuda mais facilmente. * Jefferson Clyton Pereira da Silva - [ MCSA | MCP | MCTS | MTA | Analista de Banco de Dados - Sql Server e Oracle ]

    quinta-feira, 21 de novembro de 2019 12:31