none
Duplicação de registros RRS feed

  • Pergunta

  • Olá estou com uma problema que há dias tento resolver e nada, tenho uma aplicação online, que esporadicamente ao salvar um registro no banco, esse registro é duplicado.

    a conexão com o banco é feita dentro de um TransactionScope, por que é feita a inserção de vários itens e de tabelas diferentes. O problema maior desse erro é que ele não acontece sempre, e não acontece no meu ambiente de teste, somente na aplicação online.

    Alguém tem idéia do que possa estar gerando essa duplicação de dados no banco?

    Se alguém puder me ajudar agradeço muito...

    Kate

    sábado, 31 de março de 2012 02:05

Todas as Respostas

  • Boa tarde Kate,

    Varios fatores podem gerar a duplicação de registros. A inserção ocorre diretamente dentro do sistema ou vc usa uma stored procedure? Que chave vc usa na sua tabela, como vc gera ela?

    At.
    Rafael

    segunda-feira, 2 de abril de 2012 19:08
  • Olá Rafael,

    Eu acredito que o que esta ocorrendo isso seja o TransactionScope, mas é só uma suspeita...Bom é tudo feito em uma classe do sistema, não tem store procedure. São 3 tabelas 2 devem inserir dados e 1 atualizar, tudo esta sendo feito porém 2 vezes. todas as tabelas possuem Id que é a chave as 2 de insercao estão ligadas, logo uma tem a FK da outra, e o Id é identity. Lembrando que não é sempre que ocorre essa duplicação, pensei até que poderia ser um momento de lentidão do servidor... uma especie de timeout, mas não é timeout pq o sistema tem um log de erros e não acontece erro nenhum por trás.                   Obrigada               Kate


    Kate Antunes Analista de Sistemas

    quarta-feira, 4 de abril de 2012 13:56
  • Kate,

        Quando você diz que é IDENTITY, ele também é PK? Ele está duplicando a sua PK?? Ele está duplicando o IDENTITY? Você poderia explicar melhor isso?

        Eu estou achando que a sua tabela pode ter alguma trigger que está disparando junto com o insert e duplicando... Dê uma verificada nas tabelas envolvidas no update e insert...

       


    Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008

    quarta-feira, 4 de abril de 2012 14:02
    Moderador
  • Kate, como voce esta dizendo que ocorre a duplicacao por uma aplicação on-line, ou seja, que roda em um browser, pode ser que o usuario clique em um botao gravar, e acha que nao esta processando e clica no botao gravar novamente e acaba gerendo 2 inserções.
    quinta-feira, 5 de abril de 2012 17:05
  • Não tem trigger nenhum, nao esta duplicando a pk, apenas duplica os dados tipo

    insiro numa tabela nome sobrenome, só de exemplo, passo o nome e o sobrenome o id é identity, se passo, Maria e da Silva, ele me grava 2 marias da silva, uma com pk = 1 e outra com pk = 2...entendeu? Só que é uma coisa que acontece raramente :(

    Não acontece todo os dias...já estou perdendo as esperanças :(

    Como eu tirei o TransactionScope e agora fiz de uma outra forma, esta mais raro de acontecer, mas ainda acontece, acho q tem a ver com lentidão do servidor ou algo do tipo. Porém o servidor não  é lento.


    Kate Antunes Analista de Sistemas

    quinta-feira, 12 de abril de 2012 23:08
  • Também achei q fosse isso e o usuário do sistema me garantiu que não clica 2 vezes no botão de gravar.

    Kate Antunes Analista de Sistemas

    quinta-feira, 12 de abril de 2012 23:09