Artigo: 118552 - Última revisão: quinta-feira, 22 de Fevereiro de 2007 - Revisão: 5.3 Descrição do tratamento de condições de bloqueio no SQL Server
SumárioUm bloqueio é uma condição em que processos 2 (ou mais) tentarem aceder a um recurso que o outro contém um bloqueio. Uma vez que cada processo tem um pedido para do outro recurso, nenhum processo pode ser concluído. Quando é detectado um impasse, SQL Server recupera a transacção que tenha menos tempo e devolve erro de processamento de mensagens 1205 à aplicação. Mensagem de erro 1205 termina a secção actual e recupera a transacção actual. Mais InformaçãoEm alguns casos, uma condição de impasse fará com que um comando de biblioteca de base de dados (biblioteca de base de dados) (tal como dbsqlexec, dbsqlok ou dbresults) para voltar a falhas. Sempre é da responsabilidade do programa para verificar os códigos de retorno de cada comando de biblioteca de base de dados. Se for devolvida falhas por um destes comandos de biblioteca de base de dados, o programa deve cancelar a secção e não tentar continuar. Em alguns casos, é possível continuar a execução de comandos subsequentes no lote. No entanto, uma vez que ocorreu uma situação de impasse e o comando que causou este foi anulado, posteriores comandos na secção de provavelmente irão falhar com um erro mais sério, como um objecto não encontrado. Em outros casos, uma condição de impasse não fará com que um comando de biblioteca de base de dados para devolver falhas. Para processar esta condição, o programa deve verificar mensagem 1205 no processador de mensagens e utilize a função dbsetuserdata para comunicar esta com a aplicação (um exemplo, pode encontrar no capítulo 4 "biblioteca de base de dados funções" no SQL Server "Programmer Reference para C" em dbsetuserdata). O programa tem, em seguida, procure o indicador de impasse depois de cada chamada biblioteca de base de dados e deverá cancelar a secção se for detectado um impasse. Enquanto pode parecer desnecessário cancelar uma secção Depois de receber uma mensagem de impasse 1205, é necessário porque o servidor não abortar sempre a secção de uma situação de impasse. Se a secção não é cancelada, qualquer tentativa para submeter uma nova secção poderá resultar num erro biblioteca de base de dados 10038 "Resultados pendente." Pode encontrar uma descrição do deadlocking e um exemplo de como detectar uma condição de impasse "Apêndice E maximizar consistência e concorrência" no SQL Server para Windows NT "Programmer Reference para C". A informação contida neste artigo aplica-se a:
Tradução automáticaIMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado. Clique aqui para ver a versão em Inglês deste artigo: 118552
(http://support.microsoft.com/kb/118552/en-us/
)
| Outros Recursos Outros Sites de Suporte
ComunidadesObtenha Ajuda AgoraTraduções de Artigos
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Voltar ao topo